)]}'
{
  "log": [
    {
      "commit": "66583c9fa63d05d5580e409f9a58d3cad6d76d17",
      "tree": "c84f755b8e15e164d631ec155d5ec7d532485311",
      "parents": [
        "6b4b8fc87dc5cbfcfb5c749dc200906471fb854c"
      ],
      "author": {
        "name": "Brian Norris",
        "email": "computersforpeace@gmail.com",
        "time": "Tue Feb 21 10:38:42 2012 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Mar 13 16:35:37 2012 -0400"
      },
      "message": "ahci: add AHCI_HFLAG_DELAY_ENGINE host flag\n\nThe following commit was intended to fix problems with specific AHCI\ncontroller(s) that would become bricks if the AHCI specification was not\nfollowed strictly (that is, if ahci_start_engine() was called while the\ncontroller was in the wrong state):\n\n    commit 7faa33da9b7add01db9f1ad92c6a5d9145e940a7\n    ahci: start engine only during soft/hard resets\n\nHowever, some devices currently have issues with that fix, so we must\nimplement a flag that delays the ahci_start_engine() call only for specific\ncontrollers.\n\nThis commit simply introduces the flag, without enabling it in any driver.\n\nNote that even when AHCI_HFLAG_DELAY_ENGINE is not enabled, this patch does\nnot constitue a full revert to commit 7faa33da; there is still a change in\nbehavior to the ahci_port_suspend() failure path.\n\nSigned-off-by: Brian Norris \u003ccomputersforpeace@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "7faa33da9b7add01db9f1ad92c6a5d9145e940a7",
      "tree": "13b91e9292ff56f7dc67b14a9cf93f30889be13f",
      "parents": [
        "805a6af8dba5dfdd35ec35dc52ec0122400b2610"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jul 22 11:41:26 2011 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Sun Jan 08 19:14:57 2012 -0500"
      },
      "message": "ahci: start engine only during soft/hard resets\n\nThis is another attempt at fixing the same problem that 270dac35c2\n(libata: ahci_start_engine compliant to AHCI spec) tried to solve.\nUnfortunately, 270dac35c2 created regressions for a lot more common\ncontrollers and got reverted.\n\nThis specific AHCI IP block becomes a brick if the DMA engine is\nstarted while DRQ is set.  It is not possible to avoid the condition\ncompletely but the most common occurrence is caused by spurious use of\nahci_start_engine() from ahci_start_port() during init sequence.\n\nDMA engine is started after both soft and hard resets and\nahci_start_port() is always followed by resets, so there is no reason\nto start DMA engine from ahci_start_port().\n\nThis patch removes ahci_start_engine() invocation from\nahci_start_port().  This change makes failure path of\nahci_port_suspend() leave engine stopped without following resets.\nThis is resolved by replacing ahci_start_port() call with\nata_port_freeze() which forces resets afterwards, which is the better\nbehavior anyway.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Brian Norris \u003ccomputersforpeace@gmail.com\u003e\nReported-by: Jian Peng \u003cjipeng2005@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "345347c5d767332d7352f220808fe9b5e4af8c6b",
      "tree": "7168a49db28e6fa13f938e21d6d661ff2b0be7ae",
      "parents": [
        "8ea7645c5a949f9d0ea86edc0778713b5e63ab74"
      ],
      "author": {
        "name": "Yuan-Hsin Chen",
        "email": "yhchen@faraday-tech.com",
        "time": "Tue Jun 21 17:17:38 2011 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sat Jul 23 17:57:36 2011 -0400"
      },
      "message": "ahci: move ahci_sb600_softreset to libahci.c and rename it\n\nahci_sb600_softreset was in ahci.c. This function is used\nto fix soft reset failure and renames as ahci_pmp_retry_softreset\nin libahci.c.\n\nSigned-off-by: Yuan-Hsin Chen \u003cyhchen@faraday-tech.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "a9a79dfec239568bdbf778242f8fcd10bcc5b9e2",
      "tree": "620648585f89cdb589d1625431f8c21ef70a9258",
      "parents": [
        "a44fec1fce5d5d14cc3ac4545b8da346394de666"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Apr 15 15:51:59 2011 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sat Jul 23 17:57:36 2011 -0400"
      },
      "message": "ata: Convert ata_\u003cfoo\u003e_printk(KERN_\u003cLEVEL\u003e to ata_\u003cfoo\u003e_\u003clevel\u003e\n\nSaves text by removing nearly duplicated text format strings by\ncreating ata_\u003cfoo\u003e_printk functions and printf extension %pV.\n\nata defconfig size shrinks ~5% (~8KB), allyesconfig ~2.5% (~13KB)\n\nFormat string duplication comes from:\n\n #define ata_link_printk(link, lv, fmt, args...) do { \\\n       if (sata_pmp_attached((link)-\u003eap) || (link)-\u003eap-\u003eslave_link)    \\\n               printk(\"%sata%u.%02u: \"fmt, lv, (link)-\u003eap-\u003eprint_id,   \\\n                      (link)-\u003epmp , ##args); \\\n       else \\\n               printk(\"%sata%u: \"fmt, lv, (link)-\u003eap-\u003eprint_id , ##args); \\\n       } while(0)\n\nCoalesce long formats.\n\n$ size drivers/ata/built-in.*\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n 544969\t  73893\t 116584\t 735446\t  b38d6\tdrivers/ata/built-in.allyesconfig.ata.o\n 558429\t  73893\t 117864\t 750186\t  b726a\tdrivers/ata/built-in.allyesconfig.dev_level.o\n 141328\t  14689\t   4220\t 160237\t  271ed\tdrivers/ata/built-in.defconfig.ata.o\n 149567\t  14689\t   4220\t 168476\t  2921c\tdrivers/ata/built-in.defconfig.dev_level.o\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "a44fec1fce5d5d14cc3ac4545b8da346394de666",
      "tree": "fa3d16a4c8f1a6a7e9af867f16f7201a5b5442f9",
      "parents": [
        "02f8c6aee8df3cdc935e9bdd4f2d020306035dbe"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Apr 15 15:51:58 2011 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sat Jul 23 17:57:36 2011 -0400"
      },
      "message": "ata: Convert dev_printk(KERN_\u003cLEVEL\u003e to dev_\u003clevel\u003e(\n\nSaves a bit of text as the call takes fewer args.\n\nCoalesce a few formats.\nConvert a few bare printks to pr_cont.\n\n$ size drivers/ata/built-in.o*\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n 558429\t  73893\t 117864\t 750186\t  b726a\tdrivers/ata/built-in.o.allyesconfig.new\n 559574\t  73893\t 117888\t 751355\t  b76fb\tdrivers/ata/built-in.o.allyesconfig.old\n 149567\t  14689\t   4220\t 168476\t  2921c\tdrivers/ata/built-in.o.defconfig.new\n 149851\t  14689\t   4220\t 168760\t  29338\tdrivers/ata/built-in.o.defconfig.old\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "49743170556e13156a64f8f20fa412805771b4e1",
      "tree": "6289b5daebd02f3b87c71c88e0ac76a4a802252f",
      "parents": [
        "0d72c6fcb5cd215eeab824fac216ea42c5b574aa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 29 10:10:07 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 29 10:10:07 2011 -0700"
      },
      "message": "ahci: change \u0027masking port_map\u0027 printk to KERN_WARNING level\n\nIt\u0027s not so much an error as a warning about normal Marvell crazines.\nSo don\u0027t use KERN_ERR that ends up spamming the console even in quiet\nmode, it\u0027s not _that_ critical.\n\nExplained by Jeff:\n\n \"Long explanation, it\u0027s a mess:\n\n  Marvell took standard AHCI, and bastardized it to include a weird mode\n  whereby PATA devices appear inside the AHCI DMA and interrupt\n  infrastructure you\u0027re familiar with.\n\n  So, PATA devices appear via pata_marvell driver, using basic legacy\n  IDE programming interface.  But SATA devices, which might also be\n  attached to this chip, either work in under-performing mode or\n  simply don\u0027t work at all (e.g.  newer 6 Gbps devices or port\n  multiplier attachments, NCQ, ...)\n\n  On the other hand, \u0027ahci\u0027 driver loads and works with the chip\u0027s\n  attached SATA devices quite beautifully, but is completely unable to\n  drive any attached PATA devices, due to the Marvell-specific\n  PATA-under-AHCI interface.\n\n  The \"masking port_map 0x7 -\u003e 0x3\" message is the ahci driver \"hiding\"\n  the PATA port(s) from itself, making sure it will only drive the SATA\n  ports it knows how to drive.\"\n\nAcked-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "22fe9446e82f1fe4b59900db4599061384efb0ad",
      "tree": "f5ad2181f1c9bcd8987b6f5b36c24e1f6b8d4140",
      "parents": [
        "ddb503b42960792f3be580f98959add669241a04"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat May 14 12:28:04 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 14 10:45:59 2011 -0700"
      },
      "message": "Revert \"libata: ahci_start_engine compliant to AHCI spec\"\n\nThis reverts commit 270dac35c26433d06a89150c51e75ca0181ca7e4.\n\nThe commits causes command timeouts on AC plug/unplug.  It isn\u0027t yet\nclear why.  As the commit was for a single rather obscure controller,\nrevert the change for now.\n\nThe problem was reported and bisected by Gu Rui in bug#34692.\n\n https://bugzilla.kernel.org/show_bug.cgi?id\u003d34692\n\nAlso, reported by Rafael and Michael in the following thread.\n\n http://thread.gmane.org/gmane.linux.kernel/1138771\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Gu Rui \u003cchaos.proton@gmail.com\u003e\nReported-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReported-by: Michael Leun \u003clkml20100708@newton.leun.net\u003e\nCc: Jian Peng \u003cjipeng2005@gmail.com\u003e\nCc: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "270dac35c26433d06a89150c51e75ca0181ca7e4",
      "tree": "187f95b21867318d77b768e1e8be27b0894c239b",
      "parents": [
        "792d37af35386466cf5dda51d6b710fa1dd9aad1"
      ],
      "author": {
        "name": "Jian Peng",
        "email": "jipeng2005@gmail.com",
        "time": "Fri Apr 22 23:58:10 2011 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sun Apr 24 11:35:40 2011 -0400"
      },
      "message": "libata: ahci_start_engine compliant to AHCI spec\n\nAt the end of section 10.1 of AHCI spec (rev 1.3), it states\n\nSoftware shall not set PxCMD.ST to 1 until it is determined that\na functoinal device is present on the port as determined by\nPxTFD.STS.BSY\u003d0, PxTFD.STS.DRQ\u003d0 and PxSSTS.DET\u003d3h\n\nEven though most AHCI host controller works without this check,\nspecific controller will fail under this condition.\n\nSigned-off-by: Jian Peng \u003cjipeng2005@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "7b3a24c57d2eeda8dba9c205342b12689c4679f9",
      "tree": "f4be496d3c0008c6b601b75616383bb735bc9fd2",
      "parents": [
        "ae01b2493c3bf03c504c32ac4ebb01d528508db3"
      ],
      "author": {
        "name": "Maxime Bizon",
        "email": "mbizon@freebox.fr",
        "time": "Wed Mar 16 14:58:32 2011 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sun Apr 24 11:34:05 2011 -0400"
      },
      "message": "ahci: don\u0027t enable port irq before handler is registered\n\nThe ahci_pmp_attach() \u0026 ahci_pmp_detach() unmask port irqs, but they\nare also called during port initialization, before ahci host irq\nhandler is registered. On ce4100 platform, this sometimes triggers\n\"irq 4: nobody cared\" message when loading driver.\n\nFixed this by not touching the register if the port is in frozen\nstate, and mark all uninitialized port as frozen.\n\nSigned-off-by: Maxime Bizon \u003cmbizon@freebox.fr\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: stable@kernel.org\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "6e5fe5b12cfcd9ed4303c9a4f4a22a694104d28f",
      "tree": "96ccfacbf812e6ddbad8e3c1f90b466f3a3458e2",
      "parents": [
        "686c4cbb10fc0e75b29b097290b4f7fc3f010b9e"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Fri Mar 04 09:54:52 2011 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sun Apr 24 11:31:31 2011 -0400"
      },
      "message": "ahci: EM supported message type sysfs attribute\n\nThis patch adds an sysfs attribute \u0027em_message_supported\u0027 to the\nahci host device which prints out the supported enclosure management\nmessage types.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "02cdfcf043c5c6ebcbbaba1c35130b5fbcb10867",
      "tree": "1430ddb5236adbcc1fbfaa67b225efd0dbe3e80c",
      "parents": [
        "3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5"
      ],
      "author": {
        "name": "David Milburn",
        "email": "dmilburn@redhat.com",
        "time": "Fri Nov 12 15:38:21 2010 -0600"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Jan 05 19:43:22 2011 -0500"
      },
      "message": "[libata] new driver acard_ahci, for ATP8620 host controller\n\nAdd support for Acard ATP8620 host controller.\n\nBased upon initial version by Jeff Garzik.\n\nSigned-off-by: David Milburn \u003cdmilburn@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "6ad601955315b010a117306b994f2204fae85fdc",
      "tree": "d10eadcbb064c463a413823b9cccd018ae1a94e8",
      "parents": [
        "f7a437dda2b5c104a897405cbff678aa1eb37897"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Oct 15 11:00:08 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Oct 21 21:17:00 2010 -0400"
      },
      "message": "libahci: fix result_tf handling after an ATA PIO data-in command\n\nATA devices don\u0027t send D2H Reg FIS after an successful ATA PIO data-in\ncommand.  The host is supposed to take the TF and E_Status of the\npreceding PIO Setup FIS.  Update ahci_qc_fill_rtf() such that it takes\nTF + E_Status from PIO Setup FIS after a successful ATA PIO data-in\ncommand.\n\nWithout this patch, result_tf for such a command is filled with the\ncontent of the previous D2H Reg FIS which belongs to a previous\ncommand, which can make the command incorrectly seen as failed.\n\n* Patch updated to grab the whole TF + E_Status from PIO Setup FIS\n  instead of just E_Status as suggested by Robert Hancock.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Mark Lord \u003ckernel@teksavvy.com\u003e\nCc: Robert Hancock \u003chancockrwd@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "97750cebb3000a9cc08f8ce8dc8c7143be7d7201",
      "tree": "04220b8a8ed3f353e3e0023805b32e7d746dc6f3",
      "parents": [
        "a97c40068fab5d85c4241451fc312cb9025d7e6c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Sep 06 17:56:29 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Oct 21 20:21:05 2010 -0400"
      },
      "message": "libata: add @ap to ata_wait_register() and introduce ata_msleep()\n\nAdd optional @ap argument to ata_wait_register() and replace msleep()\ncalls with ata_msleep() which take optional @ap in addition to the\nduration.  These will be used to implement EH exclusion.\n\nThis patch doesn\u0027t cause any behavior difference.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "6b7ae9545ad9875a289f4191c0216b473e313cb9",
      "tree": "216b4db276202d727ba134d256144a6670497180",
      "parents": [
        "1152b2617a6e1943b6b82e07c962950e56f1000c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 01 17:50:06 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Oct 21 20:21:04 2010 -0400"
      },
      "message": "libata: reimplement link power management\n\nThe current LPM implementation has the following issues.\n\n* Operation order isn\u0027t well thought-out.  e.g. HIPM should be\n  configured after IPM in SControl is properly configured.  Not the\n  other way around.\n\n* Suspend/resume paths call ata_lpm_enable/disable() which must only\n  be called from EH context directly.  Also, ata_lpm_enable/disable()\n  were called whether LPM was in use or not.\n\n* Implementation is per-port when it should be per-link.  As a result,\n  it can\u0027t be used for controllers with slave links or PMP.\n\n* LPM state isn\u0027t managed consistently.  After a link reset for\n  whatever reason including suspend/resume the actual LPM state would\n  be reset leaving ap-\u003elpm_policy inconsistent.\n\n* Generic/driver-specific logic boundary isn\u0027t clear.  Currently,\n  libahci has to mangle stuff which libata EH proper should be\n  handling.  This makes the implementation unnecessarily complex and\n  fragile.\n\n* Tied to ALPM.  Doesn\u0027t consider DIPM only cases and doesn\u0027t check\n  whether the device allows HIPM.\n\n* Error handling isn\u0027t implemented.\n\nGiven the extent of mismatch with the rest of libata, I don\u0027t think\ntrying to fix it piecewise makes much sense.  This patch reimplements\nLPM support.\n\n* The new implementation is per-link.  The target policy is still\n  port-wide (ap-\u003etarget_lpm_policy) but all the mechanisms and states\n  are per-link and integrate well with the rest of link abstraction\n  and can work with slave and PMP links.\n\n* Core EH has proper control of LPM state.  LPM state is reconfigured\n  when and only when reconfiguration is necessary.  It makes sure that\n  LPM state is reset when probing for new device on the link.\n  Controller agnostic logic is now implemented in libata EH proper and\n  driver implementation only has to deal with controller specifics.\n\n* Proper error handling.  LPM config failure is attributed to the\n  device on the link and LPM is disabled for the link if it fails\n  repeatedly.\n\n* ops-\u003eenable/disable_pm() are replaced with single ops-\u003eset_lpm()\n  which takes @policy and @hints.  This simplifies driver specific\n  implementation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "c93b263e0d4fa8ce5fec0142a98196d1a127e845",
      "tree": "6495053b65f7a79d1e5c11aaea77dd25e4082a84",
      "parents": [
        "c43d559f0423816bb2918d892131d21c51816c3d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Sep 01 17:50:04 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Oct 21 20:21:04 2010 -0400"
      },
      "message": "libata: clean up lpm related symbols and sysfs show/store functions\n\nLink power management related symbols are in confusing state w/ mixed\nusages of lpm, ipm and pm.  This patch cleans up lpm related symbols\nand sysfs show/store functions as follows.\n\n* lpm states - NOT_AVAILABLE, MIN_POWER, MAX_PERFORMANCE and\n  MEDIUM_POWER are renamed to ATA_LPM_UNKNOWN and\n  ATA_LPM_{MIN|MAX|MED}_POWER.\n\n* Pre/postfixes are unified to lpm.\n\n* sysfs show/store functions for link_power_management_policy were\n  curiously named get/put and unnecessarily complex.  Renamed to\n  show/store and simplified.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "fad16e7a7f67eef8d33f8ad58850db89382b09ce",
      "tree": "09afb3e939cd4cc85e6aec76965c16fcc03c5798",
      "parents": [
        "050026feae5bd4fe2db4096b63b15abce7c47faa"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Sep 21 09:25:48 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Sep 28 15:14:51 2010 -0400"
      },
      "message": "ahci: fix module refcount breakage introduced by libahci split\n\nlibata depends on scsi_host_template for module reference counting and\nsht\u0027s should be owned by each low level driver.  During libahci split,\nthe sht was left with libahci.ko leaving the actual low level drivers\nnot reference counted.  This made ahci and ahci_platform always\nunloadable even while they\u0027re being actively used.\n\nFix it by defining AHCI_SHT() macro in ahci.h and defining a sht for\neach low level ahci driver.\n\nstable: only applicable to 2.6.35.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Pedro Francisco \u003cpedrogfrancisco@gmail.com\u003e\nTested-by: Michael Tokarev \u003cmjt@tls.msk.ru\u003e\nCc: stable@kernel.org\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "f1f5a807b051eddd3f302e503d39214e5bde0ef2",
      "tree": "e953579992d5127dda716c84d64d8d2a733d9b33",
      "parents": [
        "673424c0890a00e22398017c9adf999577526220"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 27 11:09:15 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Sep 09 14:19:18 2010 -0400"
      },
      "message": "ahci: fix hang on failed softreset\n\nahci_do_softreset() compared the current time and deadline in reverse\nwhen calculating timeout for SRST issue.  The result is that if\n@deadline is in future, SRST is issued with 0 timeout, which hasn\u0027t\ncaused any problem because it later waits for DRDY with the correct\ntimeout.  If deadline is already exceeded by the time SRST is about to\nbe issued, the timeout calculation underflows and if the device\ndoesn\u0027t respond, timeout doesn\u0027t trigger for a _very_ long time.\n\nReverse the incorrect comparison order.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Anssi Hannula \u003canssi.hannula@iki.fi\u003e\nTested-by: Gwendal Grignou \u003cgwendal@google.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "5f173107ecad83a50fc297f5a99bcda961501fc9",
      "tree": "02b2ef16c50af54dcffd009233a8cd9767115e2e",
      "parents": [
        "6d981b9a91be29c0deae5ac794a4fe885027032f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Jul 24 16:53:48 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Aug 25 19:24:16 2010 -0400"
      },
      "message": "ahci: add HFLAG_YES_FBS and apply it to 88SE9128\n\n88SE9128 can do FBS and sets it in HOST_CAP but forgets to set FBSCP\nin PORT_CMD.  Implement AHCI_HFLAG_YES_FBS and apply it to 88SE9128.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "f9ce889b8f8384ee29e1be4b34091a932e6e40f3",
      "tree": "ed9b189cf639e2dcfa144cd840c0e0efa55f838a",
      "parents": [
        "984bc9601f64fd341b8573021d7c999f1f1499a9"
      ],
      "author": {
        "name": "Harry Zhang",
        "email": "harry.zhang@amd.com",
        "time": "Thu Jun 24 11:34:23 2010 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Jul 01 15:34:15 2010 -0400"
      },
      "message": "libahci: Fix bug in storing EM messages\n\nIn function ahci_store_em_buffer(), if the input (signed char*) buffer\ncontains negative data, the constructed 32-bit long message data may\nbe wrong.\n\nSigned-off-by: Harry Zhang \u003charry.zhang@amd.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "0ee719527229fa86ace8e3abccae3c2a8bbfd6db",
      "tree": "7c9e76554f55af8101f38b8e3338529b66b4d275",
      "parents": [
        "7a4f876b876afb13856a79a0402f71b9dfbe86a8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Jun 07 15:15:08 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Jun 07 16:03:15 2010 -0400"
      },
      "message": "ahci: redo stopping DMA engines on empty ports\n\nCommit 96d60303fd (ahci: Turn off DMA engines when there\u0027s no device)\nimplemented stopping DMA engines on empty ports but it used single\nsampling of status registers to determine device presence which led to\ndisabling of DMA engines on occupied ports.  Do it after all EH\nactions are complete using device presence state determined by EH.\nThis avoids spurious disabling of DMA engines and simplifies the code.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nTested-by: Marc Dionne \u003cmarc.c.dionne@gmail.com\u003e\nCc: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: Robert Hancock \u003chancockrwd@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "c06231661e4fb5f2f50c73ff33702937a11764cf",
      "tree": "e82300639ad09429fb3a6881bb6985363dd9ddbe",
      "parents": [
        "008dbd61ebee3e647f63bbe8315192e1331cd75f"
      ],
      "author": {
        "name": "Harry Zhang",
        "email": "harry.zhang@amd.com",
        "time": "Fri Apr 23 17:28:38 2010 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 14 17:35:51 2010 -0400"
      },
      "message": "ahci: add \"em_buffer\" attribute for AHCI hosts\n\nAdd \"em_buffer\" attribute for SATA AHCI hosts to provide a way for\nuserland to access AHCI EM (enclosure management) buffer directly if the\nhost supports EM.\n\nAHCI driver should support SGPIO EM messages. However the SATA/AHCI\nspecs did not define the SGPIO message format filled in EM buffer.\nDifferent HW vendors may have different definitions. The mainly purpose\nof this attribute is to solve this issue by allowing HW vendors to\nprovide userland drivers and tools for their SGPIO initiators.\n\nSigned-off-by: Harry Zhang \u003charry.zhang@amd.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "008dbd61ebee3e647f63bbe8315192e1331cd75f",
      "tree": "2848b7364622cceb29b596c95c7c2681a40adcfc",
      "parents": [
        "ec86c81dfcc52e313920621b1d1e92343a842afe"
      ],
      "author": {
        "name": "Harry Zhang",
        "email": "harry.zhang@amd.com",
        "time": "Fri Apr 23 17:27:19 2010 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 14 17:35:51 2010 -0400"
      },
      "message": "ahci: EM message type auto detect\n\nDetect enclosure management message type automatically at driver\ninitialization, instead of using module parameter \"ahci_em_messages\".\n\nSigned-off-by: Harry Zhang \u003charry.zhang@amd.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "fbaf666b854c04b2d8ebca17114ee409ddea08b5",
      "tree": "8e4db33f928eb3554b1539d9745fedb01391df6a",
      "parents": [
        "83f2b9630c5875ee872c11d98a0e26888514c1b3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 02:52:43 2010 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 14 17:08:02 2010 -0400"
      },
      "message": "libata: update gfp/slab.h includes\n\nImplicit slab.h inclusion via percpu.h is about to go away.  Make sure\ngfp.h or slab.h is included as necessary.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "96d60303fd3336893a93565d58c4f1805a327061",
      "tree": "e6534dabeceb4a0a0b511c17dbffe47639fff0ac",
      "parents": [
        "1c2a49f61785ebbcbfb481a2aab659020f0457f7"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Sun Mar 28 00:37:21 2010 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 14 17:08:01 2010 -0400"
      },
      "message": "ahci: Turn off DMA engines when there\u0027s no device attached\n\nAccording to section 10.3.1 of the AHCI spec, PxCMD.ST must not be set\nunless there\u0027s a device attached. Following this saves us a measurable\nquantity of power and does not impair hotplug support. Based on a patch\nby Kristen Carlson Accardi.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: Kristen Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "365cfa1ed5a36f9bcb9f64c9f0f52155af2e9fef",
      "tree": "dcafbc73e4232ac9cfd65d25c2c7da8fa5390976",
      "parents": [
        "0cbb0e774b0ea0547ec1b9e795637e309327ae27"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "avorontsov@ru.mvista.com",
        "time": "Sun Mar 28 00:22:14 2010 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 14 17:08:01 2010 -0400"
      },
      "message": "ahci: Move generic code into libahci\n\nThis patch should contain no functional changes, just moves code\naround.\n\nSigned-off-by: Anton Vorontsov \u003cavorontsov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    }
  ]
}
