)]}'
{
  "log": [
    {
      "commit": "e52dcc4899cf1b7601379c31542bd91cd2997a64",
      "tree": "40bce50f8f912bbd2d988526f3f5c5763f67af62",
      "parents": [
        "436d34b36202ef724778ded1e9cb10f8c37b32bc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Apr 02 17:35:19 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Apr 04 02:43:36 2008 -0400"
      },
      "message": "libata: ATA_12/16 doesn\u0027t fall into ATAPI_MISC\n\nSAT passthrus don\u0027t really fit into ATAPI_MISC class.  SAT passthru\ncommands always transfer multiple of 512 bytes and variable length\nresponse is not allowed.  This patch creates a separate category -\nATAPI_PASS_THRU - for these.\n\nThis fixes HSM violation on \"hdparm -I\".\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "436d34b36202ef724778ded1e9cb10f8c37b32bc",
      "tree": "45671994cf049263a25e7f540ae488b97bb7d01f",
      "parents": [
        "a4ba7fe2a6c2b61419b290035bff398ab2591c54"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Apr 02 17:28:46 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Apr 04 02:43:35 2008 -0400"
      },
      "message": "libata: uninline atapi_cmd_type()\n\nUninline atapi_cmd_type().  It doesn\u0027t really have to be inline and\nmore case will be added which need to access unexported libata\nvariable.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3ec25ebd69dc120d0590e64caaf1477aa88c8a93",
      "tree": "e0ea13a1f1e1fb5b2fa158fdd2f5122d09ae1d7f",
      "parents": [
        "0f436eff54f90419ac1b8accfb3e6e17c4b49a4e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Mar 27 18:37:14 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Mar 29 12:21:31 2008 -0400"
      },
      "message": "libata: ATA_EHI_LPM should be ATA_EH_LPM\n\nEH actions are ATA_EH_* not ATA_EHI_*.  Rename ATA_EHI_LPM to\nATA_EH_LPM.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Kristen Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "aacda37538e7f9cf2148eedf3766239829e51ba4",
      "tree": "0206d2db8ce636aadabf8e3effd1ee3114ccff2a",
      "parents": [
        "cc7feea39bed2951cc29af3ad642f39a99dfe8d3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Mar 18 17:47:43 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Mar 24 22:09:12 2008 -0400"
      },
      "message": "libata: implement ata_qc_raw_nbytes()\n\nImplement ata_qc_raw_nbytes() which determines the raw user-requested\nsize of a PC command.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9116300634c5c76cfcd0d2af689846e04d172256",
      "tree": "dfc527d28af35f19dcb9c4092757d6eabb8afb1d",
      "parents": [
        "559bbe6cbd0d8c68d40076a5f7dc98e3bf5864b2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Feb 21 13:25:50 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Feb 24 00:27:33 2008 -0500"
      },
      "message": "libata: automatically use DMADIR if drive/bridge requires it\n\nBack in 2.6.17-rc2, a libata module parameter was added for atapi_dmadir.\n\nThat\u0027s nice, but most SATA devices which need it will tell us about it\nin their IDENTIFY PACKET response, as bit-15 of word-62 of the\nreturned data (as per ATA7, ATA8 specifications).\n\nSo for those which specify it, we should automatically use the DMADIR bit.\nOtherwise, disc writing will fail by default on many SATA-ATAPI drives.\n\nThis patch adds ATA_DFLAG_DMADIR and make ata_dev_configure() set it\nif atapi_dmadir is set or identify data indicates DMADIR is necessary.\natapi_xlat() is converted to check ATA_DFLAG_DMADIR before setting\nDMADIR.\n\nOriginal patch is from Mark Lord.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Mark Lord \u003cmlord@pobox.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "5d44b414daa8c1d8551aed6130d86d54175db43f",
      "tree": "8d43b2f5fcdd228ecbf5c7e3fc550d49649ba84d",
      "parents": [
        "332673257056d8be8a69d759eda90a799af5472d"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Feb 15 13:41:32 2008 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 20 12:12:47 2008 -0500"
      },
      "message": "ata: fix sparse warning in libata.h\n\nAvoids lots of these, also is more readable.\ninclude/linux/libata.h:1210:13: warning: potentially expensive pointer subtraction\n\nChange the subtraction to addition on the other side of the comparison.\n\nThanks to Christer Weinigel for the suggestion.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nAcked-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "dde2020754aeb14e17052d61784dcb37f252aac2",
      "tree": "1b6d57c6eff2024fd13e4b3b115d0a6770d8cb80",
      "parents": [
        "db0a2e0099be3a1cff55879225881465f16c67d3"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Feb 19 11:36:56 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Feb 19 11:36:56 2008 +0100"
      },
      "message": "libata: eliminate the home grown dma padding in favour of\n\nthat provided by the block layer\n\nATA requires that all DMA transfers begin and end on word boundaries.\nBecause of this, a large amount of machinery grew up in ide to adjust\nscatterlists on this basis.  However, as of 2.5, the block layer has a\ndma_alignment variable which ensures both the beginning and length of a\nDMA transfer are aligned on the dma_alignment boundary.  Although the\nblock layer does adjust the beginning of the transfer to ensure this\nhappens, it doesn\u0027t actually adjust the length, it merely makes sure\nthat space is allocated for transfers beyond the declared length.  The\nupshot of this is that scatterlists may be padded to any size between\nthe actual length and the length adjusted to the dma_alignment safely\nknowing that memory is allocated in this region.\n\nRight at the moment, SCSI takes the default dma_aligment which is on a\n512 byte boundary.  Note that this aligment only applies to transfers\ncoming in from user space.  However, since all kernel allocations are\nautomatically aligned on a minimum of 32 byte boundaries, it is safe to\nadjust them in this manner as well.\n\ntj: * Adjusting sg after padding is done in block layer.  Make libata\n      set queue alignment correctly for ATAPI devices and drop broken\n      sg mangling from ata_sg_setup().\n    * Use request-\u003eraw_data_len for ATAPI transfer chunk size.\n    * Killed qc-\u003eraw_nbytes.\n    * Separated out killing qc-\u003en_iter.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "37198e3051b63d3184886e9bb8235e7578e82628",
      "tree": "3ecd4e8b6b7c710b808909adbd2bf643a10e85b0",
      "parents": [
        "837f5f8fb98d4357d49e9631c9ee2815f3c328ca"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Tue Feb 05 14:06:27 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 06 06:59:32 2008 -0500"
      },
      "message": "libata: kill now unused n_iter and fix sata_fsl\n\nqc-\u003en_iter was used for libata\u0027s own sg walking before sg chaining\nreplaced it.  During conversion, the field and its usage in sata_fsl\nwere left behind.  Kill the filed and update sata_fsl.\n\ntj: This was part of James\u0027s libata-use-block-layer-padding patch.\n    Separated out by me.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "4e6b79fa61091a0ed9b0af0f573cc257772cd88d",
      "tree": "cd3e9dca0355741713d038b0068cd4ba32f87b56",
      "parents": [
        "cadb7345d92628d46cccd3765cc15cb9cd6abccf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Jan 18 18:36:28 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:16 2008 -0500"
      },
      "message": "libata: factor out ata_pci_activate_sff_host() from ata_pci_one()\n\nFactor out ata_pci_activate_sff_host() from ata_pci_one().  This does\nabout the same thing as ata_host_activate() but needs to be separate\nbecause SFF controllers use different and multiple IRQs in legacy\nmode.\n\nThis will be used to make SFF LLD initialization more flexible.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "442eacc362c2576aac8ebfd41b99252e28e0f49c",
      "tree": "4a40c47cb1c9d87830a04027323a26fe99541927",
      "parents": [
        "d7b174500e5750099537c7f0bc4873f06b6c1b9a"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Dec 19 04:25:10 2007 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:15 2008 -0500"
      },
      "message": "libata: make ata_port_queue_task() an internal function\n\nata_port_queue_task() served a single user:  ata_pio_task()\n\nRename to ata_pio_queue_task() and un-export it, as nobody outside of\nlibata-core.c uses it.\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "0bcc65ad78ae517de16b2ca07a2891f49d44d156",
      "tree": "87eecc4aec56500f3e29a1e82b631093f950ac85",
      "parents": [
        "ff2aeb1eb64c8a4770a6304f9addbae9f9828646"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Dec 05 16:43:12 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:15 2008 -0500"
      },
      "message": "libata: make qc-\u003enbytes include extra buffers\n\nqc-\u003enbytes didn\u0027t use to include extra buffers setup by libata core\nlayer and my be odd.  This patch makes qc-\u003enbytes include any extra\nbuffers setup by libata core layer and guaranteed to be aligned on 4\nbyte boundary.\n\nThis value is to be used to program the host controller.  As this\nrepresents the actual length of buffer available to the controller and\nthe controller must be able to deal with short transfers for ATAPI\ncommands which can transfer variable length, this shouldn\u0027t break any\ncontrollers while making problems like rounding-down and controllers\nchoking up on odd transfer bytes much less likely.\n\nThe unmodified value is stored in new field qc-\u003eraw_nbytes.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "ff2aeb1eb64c8a4770a6304f9addbae9f9828646",
      "tree": "c6febbec290ec6c40bf3abc7bcdb7188f5039443",
      "parents": [
        "f92a26365a72333f418abe82700c6030d4a1a807"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Dec 05 16:43:11 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:14 2008 -0500"
      },
      "message": "libata: convert to chained sg\n\nlibata used private sg iterator to handle padding sg.  Now that sg can\nbe chained, padding can be handled using standard sg ops.  Convert to\nchained sg.\n\n* s/qc-\u003e__sg/qc-\u003esg/\n\n* s/qc-\u003epad_sgent/qc-\u003eextra_sg[]/.  Because chaining consumes one sg\n  entry.  There need to be two extra sg entries.  The renaming is also\n  for future addition of other extra sg entries.\n\n* Padding setup is moved into ata_sg_setup_extra() which is organized\n  in a way that future addition of other extra sg entries is easy.\n\n* qc-\u003eorig_n_elem is unused and removed.\n\n* qc-\u003en_elem now contains the number of sg entries that LLDs should\n  map.  qc-\u003emapped_n_elem is added to carry the original number of\n  mapped sgs for unmapping.\n\n* The last sg of the original sg list is used to chain to extra sg\n  list.  The original last sg is pointed to by qc-\u003elast_sg and the\n  content is stored in qc-\u003esaved_last_sg.  It\u0027s restored during\n  ata_sg_clean().\n\n* All sg walking code has been updated.  Unnecessary assertions and\n  checks for conditions the core layer already guarantees are removed.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "001102d7859be0e7f7b9f2d62b841f2c0f9c2640",
      "tree": "3ba29a129314307bafc5ac4e6cab49ee98eb8698",
      "parents": [
        "55dba3120fbcbea6800f9a18503d25f73212a347"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Dec 05 16:43:09 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:14 2008 -0500"
      },
      "message": "libata: kill non-sg DMA interface\n\nWith atapi_request_sense() converted to use sg, there\u0027s no user of\nnon-sg interface.  Kill non-sg interface.\n\n* ATA_QCFLAG_SINGLE and ATA_QCFLAG_SG are removed.  ATA_QCFLAG_DMAMAP\n  is used instead.  (this way no LLD change is necessary)\n\n* qc-\u003ebuf_virt is removed.\n\n* ata_sg_init_one() and ata_sg_setup_one() are removed.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Rusty Russel \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "55dba3120fbcbea6800f9a18503d25f73212a347",
      "tree": "1b23e606aad8bc58dbe68ca905c0658625fb176e",
      "parents": [
        "ceb0c642624f634c5b4f46b0e22df19be87a2e53"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Dec 05 16:43:07 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:14 2008 -0500"
      },
      "message": "libata: update -\u003edata_xfer hook for ATAPI\n\nDepending on how many bytes are transferred as a unit, PIO data\ntransfer may consume more bytes than requested.  Knowing how much\ndata is consumed is necessary to determine how much is left for\ndraining.  This patch update -\u003edata_xfer such that it returns the\nnumber of consumed bytes.\n\nWhile at it, it also makes the following changes.\n\n* s/adev/dev/\n* use READ/WRITE constants for rw indication\n* misc clean ups\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "ceb0c642624f634c5b4f46b0e22df19be87a2e53",
      "tree": "a55adf01b6c00b4724a468a52fce03704bf5109f",
      "parents": [
        "0dc36888d4422140f9eaf50f24953ec109f750a3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Dec 05 16:43:06 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:14 2008 -0500"
      },
      "message": "libata: add ATAPI_* cmd types and implement atapi_cmd_type()\n\nAdd ATAPI command types - ATAPI_READ, WRITE, RW_BUF, READ_CD and MISC,\nand implement atapi_cmd_type() which takes SCSI opcode and returns to\nwhich class the opcode belongs.  This will be used later to improve\nATAPI handling.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "021ee9a6da1cfc57f6a6c769c3c898bdd4753108",
      "tree": "bb8c0246ded5a1d99320055343c7d277208fadd8",
      "parents": [
        "a0f79b929acaba10d4780acd2543eff20bf4b5b0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Dec 18 16:33:06 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:12 2008 -0500"
      },
      "message": "libata: reimplement ata_acpi_cbl_80wire() using ata_acpi_gtm_xfermask()\n\nReimplement ata_acpi_cbl_80wire() using ata_acpi_gtm_xfermask() and\nwhile at it relocate the function below ata_acpi_gtm_xfermask().\n\nNew ata_acpi_cbl_80wire() implementation takes @gtm, in both pata_via\nand pata_amd, use the initial GTM value.  Both are trying to peek\ninitial BIOS configuration, so using initial caching value makes\nsense.  This fixes ACPI part of cable detection in pata_amd which\npreviously always returned 0 because configuring PIO0 during reset\nclears DMA configuration.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "a0f79b929acaba10d4780acd2543eff20bf4b5b0",
      "tree": "e637c1d9388a3991cd71c5be339c2ead59c460a2",
      "parents": [
        "5df91a25df08d85700fef5fd59bb1873273e5ef5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Dec 18 16:33:05 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:12 2008 -0500"
      },
      "message": "libata: implement ata_timing_cycle2mode() and use it in libata-acpi and pata_acpi\n\nlibata-acpi is using separate timing tables for transfer modes\nalthough libata-core has the complete ata_timing table.  Implement\nata_timing_cycle2mode() to look for matching mode given transfer type\nand cycle duration and use it in libata-acpi and pata_acpi to replace\nprivate timing tables.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7c77fa4d51b1480bcec2e898c94d6912fe063c16",
      "tree": "d7d18fb22c8df2425878d02f4b415c06efa56457",
      "parents": [
        "9cde9ed151e170f2e2a530f7ec0032dfbe9f443b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Dec 18 16:33:03 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:12 2008 -0500"
      },
      "message": "libata: separate out ata_acpi_gtm_xfermask() from pacpi_discover_modes()\n\nFinding out matching transfer mode from ACPI GTM values is useful for\nother purposes too.  Separate out the function and timing tables from\npata_acpi::pacpi_discover_modes().\n\nOther than checking shared-configuration bit after doing\nata_acpi_gtm() in pacpi_discover_modes() which should be safe, this\npatch doesn\u0027t introduce any behavior change.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c88f90c3779cd5e710f2acdf59ad2bd0380de98d",
      "tree": "7b3d7464f03d2abdc105d07728cab0df67262a25",
      "parents": [
        "7dc951aefdc1dc20228691b04867fb6195864d67"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 27 19:43:48 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:12 2008 -0500"
      },
      "message": "libata: add ATA_CBL_PATA_IGN\n\nATA_CBL_PATA_UNK indicates that the cable type can\u0027t be determined\nfrom the host side and might be either 80c or 40c.  libata applies\ndrive or other generic limit in this case.  However, there are\ncontrollers where both host and drive side detections are\nmisimplemented and the driver has to rely solely on private method -\npeeking BIOS or ACPI configuration or using some other private\nmechanism.\n\nThis patch adds ATA_CBL_PATA_IGN which tells libata to ignore the\ncable type completely and just let the LLD determine the transfer mode\nvia host transfer mode masks and -\u003emode_filter().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7dc951aefdc1dc20228691b04867fb6195864d67",
      "tree": "b2c3c1213831593feaf16c9fdc0c88f26d3c10f2",
      "parents": [
        "9d3501ab962b1506d93974faf8509251b4a85fbc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 27 19:43:42 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:12 2008 -0500"
      },
      "message": "libata: xfer_mask is unsigned long not unsigned int\n\nJeff says xfer_mask is unsigned long not unsigned int.  Convert all\nxfermask fields and handling functions to deal with unsigned longs.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9d3501ab962b1506d93974faf8509251b4a85fbc",
      "tree": "a4785ca835e1b0ca5551167cf0ecf484eed8b71b",
      "parents": [
        "70cd071e4ecc06c985189665af75c108601fd5a3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 27 19:43:41 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:11 2008 -0500"
      },
      "message": "libata: kill ata_id_to_dma_mode()\n\nata_id_to_dma_mode() isn\u0027t quite generic.  The function is basically\nprivately implemented ata_id_xfermask() combined with hardcoded mode\nprinting and configuration which are specific to ata_generic.\n\nKill the function and open code it in generic_set_mode() using generic\nxfermode handling functions.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "70cd071e4ecc06c985189665af75c108601fd5a3",
      "tree": "f28aae811d01f8ef44f27e5d469fe330ff834980",
      "parents": [
        "6357357cae7794dcb89cace758108dec612e7ed5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 27 19:43:40 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:11 2008 -0500"
      },
      "message": "libata: clean up xfermode / PATA timing related stuff\n\n* s/ATA_BITS_(PIO|MWDMA|UDMA)/ATA_NR_\\1_MODES/g\n\n* Consistently use 0xff to indicate invalid transfer mode (0x00 is\n  valid for PIO_SLOW).\n\n* Make ata_xfer_mode2mask() return proper mode mask instead of just\n  the highest bit.\n\n* Sort ata_timing table in increasing xfermode order and update\n  ata_timing_find_mode() accordingly.\n\nThis patch doesn\u0027t introduce any behavior change.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6357357cae7794dcb89cace758108dec612e7ed5",
      "tree": "6fc39d16ff795f34b4f8a987966fd5195b1d9039",
      "parents": [
        "f8ab6d8e15a9b978f79aee794c263014c2959dfc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 27 19:43:39 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:11 2008 -0500"
      },
      "message": "libata: export xfermode / PATA timing related functions\n\nExport the following xfermode related functions.\n\n* ata_pack_xfermask()\n* ata_unpack_xfermask()\n* ata_xfer_mask2mode()\n* ata_xfer_mode2mask()\n* ata_xfer_mode2shift()\n* ata_mode_string()\n* ata_id_xfermask()\n* ata_timing_find_mode()\n\nThese functions will be used later by LLD updates.  While at it,\nchange unsigned short @speed to u8 @xfer_mode in\nata_timing_find_mode() for consistency.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "00115e0f5bc3bfdf3f3855ad89c8895f10458f92",
      "tree": "5f174c1d68e1ec0770fefdb40b813f321a838095",
      "parents": [
        "663f99b86ac7d4c0eed8c239638da0ea8849288b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 27 19:28:58 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:11 2008 -0500"
      },
      "message": "libata: implement ATA_DFLAG_DUBIOUS_XFER\n\nATA_DFLAG_DUBIOUS_XFER is set whenever data transfer speed or method\nchanges and gets cleared when data transfer command succeeds in the\nnewly configured transfer mode.\n\nThis will be used to improve speed down logic.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003c\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3884f7b0a8382b89d8ca5da23bd98e3e15fc805b",
      "tree": "a62ec936db81b3018d072cb03a28dc1d4337dd4a",
      "parents": [
        "6f1d1e3a03fd04a9d9c82fd3cf414020097bb142"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 27 19:28:56 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:10 2008 -0500"
      },
      "message": "libata: clean up EH speed down implementation\n\nClean up EH speed down implementation.\n\n* is_io boolean variable is replaced eflags.  is_io is ATA_EFLAG_IS_IO.\n\n* Error categories now have names.\n\n* Better comments.\n\n* Reorder 5min and 10min rules in ata_eh_speed_down_verdict()\n\n* Use local variable @link to cache @dev-\u003elink in ata_eh_speed_down()\n\nThese changes are to improve readability and ease further changes.\nThis patch doesn\u0027t introduce any behavior change.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f20ded38aa54b92dd0af32578b8916d0aa2d9e05",
      "tree": "26ab6752bf8318a8ea3b30356ac055f5f30cc31e",
      "parents": [
        "11b7becca9425aab50807503c8102b2db9e5ecf0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 27 19:28:52 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:10 2008 -0500"
      },
      "message": "libata: rearrange ATA_DFLAG_*\n\nArea for DFLAGs which are cleared on INIT is full.  Extend it by 8\nbits.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "140b5e59119a172a91b5fa13d54ca4f79bbefee1",
      "tree": "ebc04fbd143756d7ef80e870cd9ae214d2607047",
      "parents": [
        "f2dfc1a12bb1a029df62b018a8e1882e91041025"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Dec 12 12:21:52 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Dec 17 20:43:28 2007 -0500"
      },
      "message": "libata: fix ATAPI draining\n\nWith ATAPI transfer chunk size properly programmed, libata PIO HSM\nshould be able to handle full spurious data chunks.  Also, it\u0027s a good\nidea to suppress trailing data warning for misc ATAPI commands as\nthere can be many of them per command - for example, if the chunk size\nis 16 and the drive tries to transfer 510 bytes, there can be 31\ntrailing data messages.\n\nThis patch makes the following updates to libata ATAPI PIO HSM\nimplementation.\n\n* Make it drain full spurious chunks.\n\n* Suppress trailing data warning message for misc commands.\n\n* Put limit on how many bytes can be drained.\n\n* If odd, round up consumed bytes and the number of bytes to be\n  drained.  This gets the number of bytes to drain right for drivers\n  which do 16bit PIO.\n\nThis patch is partial backport of improve-ATAPI-data-xfer patchset\npending for #upstream.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "398e07826b24cbeb5ff2f0a178367fc9d24cd475",
      "tree": "78191583f2e1e5bb0aba9fbee8016e72285f4b31",
      "parents": [
        "c05e6ff035c1b25d17364a685432b33937d3dc23"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Dec 15 15:05:03 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Dec 17 20:33:14 2007 -0500"
      },
      "message": "libata-acpi: implement dev-\u003egtf_cache and evaluate _GTF right after _STM during resume\n\nOn certain implementations, _GTF evaluation depends on preceding _STM\nand both can be pretty picky about the configuration.  Using _GTM\nresult cached during controller initialization satisfies the most\nneurotic _STM implementation.  However, libata evaluates _GTF after\nreset during device configuration and the hardware state can be\ndifferent from what _GTF expects and can cause evaluation failure.\n\nThis patch adds dev-\u003egtf_cache and updates ata_dev_get_GTF() such that\nit uses the cached value if available.  Cache is cleared with a call\nto ata_acpi_clear_gtf().\n\nBecause for SATA ACPI nodes _GTF must be evaluated after _SDD which\ncan\u0027t be done till IDENTIFY is complete, _GTF caching from\nata_acpi_on_resume() is used only for IDE ACPI nodes.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c05e6ff035c1b25d17364a685432b33937d3dc23",
      "tree": "08c9171d024b6659b29a4f9f7d95318430b75b6a",
      "parents": [
        "562f0c2d771ee7be6b37fe015f94a929f8056120"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Dec 15 15:05:02 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Dec 17 20:33:14 2007 -0500"
      },
      "message": "libata-acpi: implement and use ata_acpi_init_gtm()\n\n_GTM fetches currently configured transfer mode while _STM configures\ncontroller according to _GTM parameter and prepares transfer mode\nconfiguration TFs for _GTF.  In many cases _GTM and _STM\nimplementations are quite brittle and can\u0027t cope with configuration\nchanged by libata.\n\nlibata does not depend on ATA ACPI to configure devices.  The only\nreason libata performs _GTM and _STM are to make _GTF evaluation\nsucceed and libata also doesn\u0027t care about how _GTF TFs configure\ntransfer mode.  It overrides that configuration anyway, so from\nlibata\u0027s POV, it doesn\u0027t matter what value is feeded to _STM as long\nas evaluation succeeds for _STM and following _GTF.\n\nThis patch adds dev-\u003e__acpi_init_gtm and store initial _GTM values on\nhost initialization before modified by reset and mode configuration.\nIf the field is valid, ata_acpi_init_gtm() returns pointer to the\nsaved _GTM structure; otherwise, NULL.\n\nThis saved value is used for _STM during resume and peek at\nBIOS/firmware programmed initial timing for later use.  The accessor\nis there to make building w/o ACPI easy as dev-\u003e__acpi_init doesn\u0027t\nexist if ACPI is not enabled.\n\nOn driver detach, the initial BIOS configuration is restored by\nexecuting _STM with the initial _GTM values such that the next driver\ncan also use the initial BIOS configured values.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c2e366a107e511ad00c2181c52e4150fc086ec0f",
      "tree": "1697b064e0e4c08680fa47daec8b7618ceb425f5",
      "parents": [
        "0d02f0b22b678b9d6c8ac8cad7b4cfbbdf6fab18"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Dec 15 15:04:58 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Dec 17 20:33:12 2007 -0500"
      },
      "message": "libata: update ata_*_printk() macros such that level can be a variable\n\nMake prink helpers format @lv together rather than prepending to the\nformat string as constant.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "0d02f0b22b678b9d6c8ac8cad7b4cfbbdf6fab18",
      "tree": "27b5f5afcff7450f37432f30661e56337313c5e9",
      "parents": [
        "4e5200334e03e5620aa19d538300c13db270a063"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Dec 15 15:04:57 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Dec 17 20:33:12 2007 -0500"
      },
      "message": "libata-acpi: adjust constness in ata_acpi_gtm/stm() parameters\n\n* No internal function uses const ata_port.  Drop const from @ap.\n\n* Make ata_acpi_stm() copy @stm before using it and change @stm to\n  const.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2d3b8eea7f2fbafd5d779cc92f7aedbd1ef575e9",
      "tree": "292cd6197c457defc3e07d02a663cabb3dceb253",
      "parents": [
        "21bef6dd2b419f28c8096a8e30ad86dcbff44c02"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Thu Nov 15 10:35:46 2007 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Nov 19 12:28:11 2007 +0900"
      },
      "message": "libata: workaround DRQ\u003d1 ERR\u003d1 for ATAPI tape drives\n\nAfter an error condition, some ATAPI tape drives set DRQ\u003d1 together\nwith ERR\u003d1 when asking the host to transfer the CDB of the next packet\ncommand (i.e. request sense).  This patch, a revised version of\nAlan/Mark\u0027s previous patch, adds ATA_HORKAGE_STUCK_ERR to workaround\nthe problem by ignoring the ERR bit and proceed sending the CDB.\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Mark Lord \u003climl@rtr.ca\u003e\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "21bef6dd2b419f28c8096a8e30ad86dcbff44c02",
      "tree": "704912dbb4c28fd1a49d9256193762c19255d7a4",
      "parents": [
        "de753e5e8678d9674de0a3bda9ead9e770fdbf53"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Thu Nov 15 10:35:45 2007 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Nov 19 12:28:09 2007 +0900"
      },
      "message": "libata: remove unused functions\n\nThis patch removes the following obsolete functions:\n- libata-core.c: __sata_phy_reset()\n- libata-core.c: sata_phy_reset()\n- libata-eh.c: ata_qc_timeout()\n- libata-eh.c: ata_eng_timeout()\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "6bbfd53d47abd1fb20d7c93a9b19a75970b66f49",
      "tree": "9c28b3b033e32dd5a03c08b61bdddcd79283791f",
      "parents": [
        "73946f9fc5be1433f1e182d11303188390ff242f"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Nov 05 22:58:58 2007 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Nov 05 18:10:28 2007 -0500"
      },
      "message": "libata: handle broken cable reporting\n\nOne or two ancient drives predated the cable spec and didn\u0027t sent the\nvalid bits for the field. I had hoped to leave this out of libata as a\npiece of historical annoyance but a recent CD drive shows the same bug so\nwe have to import support for it.\n\nSame concept as Bartlomiej\u0027s changes old IDE except that as we have\ncentralised blacklists we can avoid keeping another private table of stuff\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e027bd36c146582cef382364e5c826db93d4427b",
      "tree": "45f3d3db848a5bd44bcb2191db17cbfd30f4911a",
      "parents": [
        "f90f0828e57e97cb1ff19520d252882cfc6fb3c0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Oct 26 16:19:26 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Oct 30 09:59:43 2007 -0400"
      },
      "message": "libata: implement and use ATA_QCFLAG_QUIET\n\nImplement ATA_QCFLAG_QUIET which indicates that there\u0027s no need to\nreport if the command fails with AC_ERR_DEV and set it for passthrough\ncommands.\n\nCombined with previous changes, this now makes device errors for all\ndirect commands reported directly to the issuer without going through\nEH actions and reporting.\n\nNote that EH is still invoked after non-IO device errors to determine\nthe nature of the error and resume command execution (some controller\nrequires special care after error to continue).  It just performs\ndefault maintenance after error, examines what\u0027s going on, realizes\nthat it\u0027s none of its business and reports the command failure without\nlogging any error messages.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "ca77329fb713b7fea6a307068e0dd0248e7aa640",
      "tree": "6a1b987f489d7c3f0bbe81647b4ee2b0216afe8a",
      "parents": [
        "ab6fc95f609b372a19e18ea689986846ab1ba29c"
      ],
      "author": {
        "name": "Kristen Carlson Accardi",
        "email": "kristen.c.accardi@intel.com",
        "time": "Thu Oct 25 00:58:59 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Oct 29 11:00:35 2007 -0400"
      },
      "message": "[libata] Link power management infrastructure\n\nDevice Initiated Power Management, which is defined\nin SATA 2.5 can be enabled for disks which support it.\nThis patch enables DIPM when the user sets the link\npower management policy to \"min_power\".\n\nAdditionally, libata drivers can define a function\n(enable_pm) that will perform hardware specific actions to\nenable whatever power management policy the user set up\nfor Host Initiated Power management (HIPM).\nThis power management policy will be activated after all\ndisks have been enumerated and intialized.  Drivers should\nalso define disable_pm, which will turn off link power\nmanagement, but not change link power management policy.\n\nDocumentation/scsi/link_power_management_policy.txt has additional\ninformation.\n\nSigned-off-by:  Kristen Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "88ff6eafbb2a1c55f0f0e2e16d72e7b10d8ae8a5",
      "tree": "ad6ab294a4f725540bfa24b7a451273b99fa71c1",
      "parents": [
        "054a5fbaceb2eb3a31ea843c1cf0b8e10b91478c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Oct 16 14:21:24 2007 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Oct 29 06:15:27 2007 -0400"
      },
      "message": "libata: implement ata_wait_after_reset()\n\nOn certain device/controller combination, 0xff status is asserted\nafter reset and doesn\u0027t get cleared during 150ms post-reset wait.  As\n0xff status is interpreted as no device (for good reasons), this can\nlead to misdetection on such cases.\n\nThis patch implements ata_wait_after_reset() which replaces the 150ms\nsleep and waits upto ATA_TMOUT_FF_WAIT if status is 0xff.\nATA_TMOUT_FF_WAIT is currently 800ms which is enough for\nHHD424020F7SV00 to get detected but not enough for Quantum GoVault\ndrive which is known to take upto 2s.\n\nWithout parallel probing, spending 2s on 0xff port would incur too\nmuch delay on ata_piix\u0027s which use 0xff to indicate empty port and\ndoesn\u0027t have SCR register, so GoVault needs to wait till parallel\nprobing.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "054a5fbaceb2eb3a31ea843c1cf0b8e10b91478c",
      "tree": "cbf21985f3894b11fe00666cef8ac33bae4f007d",
      "parents": [
        "4dbfa39b6c95eb9d0aedb5bd00bb552b91c31e3d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Oct 25 18:30:36 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Oct 29 06:15:25 2007 -0400"
      },
      "message": "libata: track SLEEP state and issue SRST to wake it up\n\nATA devices in SLEEP mode don\u0027t respond to any commands.  SRST is\nnecessary to wake it up.  Till now, when a command is issued to a\ndevice in SLEEP mode, the command times out, which makes EH reset the\ndevice and retry the command after that, causing a long delay.\n\nThis patch makes libata track SLEEP state and issue SRST automatically\nif a command is about to be issued to a device in SLEEP.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Bruce Allen \u003cballen@gravity.phys.uwm.edu\u003e\nCc: Andrew Paprocki \u003candrew@ishiboo.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2dcb407e61458ded17503d6bd12b8c064965368b",
      "tree": "6044e032197b84f9943a385b0c9dbb6656c3f97f",
      "parents": [
        "01e7ae8c13bb06a2ce622ebace33bb7e28ef596c"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 19 06:42:56 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Oct 23 20:59:42 2007 -0400"
      },
      "message": "[libata] checkpatch-inspired cleanups\n\nTackle the relatively sane complaints of checkpatch --file.\n\nThe vast majority is indentation and whitespace changes, the rest are\n\n* #include fixes\n* printk KERN_xxx prefix addition\n* BSS/initializer cleanups\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "3be6cbd73f74b4a3da82cc7d6e1688a4ae595fc7",
      "tree": "a077cf70d1cd438db34f5def23dd8f72f42b5a8c",
      "parents": [
        "858c9c406688bc7244986b5836265071edfd1d3f"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Oct 18 16:21:18 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Oct 18 16:21:18 2007 -0400"
      },
      "message": "[libata] kill ata_sg_is_last()\n\nShort term, this works around a bug introduced by early sg-chaining\nwork.\n\nLong term, removing this function eliminates a branch from a hot\npath loop in each scatter/gather table build.  Also, as this code\ndemonstrates, we don\u0027t need to _track_ the end of the s/g list, as\nlong as we mark it in some way.  And doing so programatically is nice.\nSo its a useful cleanup, regardless of its short term effects.\n\nBased conceptually on a quick patch by Jens Axboe.\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "8726021626780a73e795c9b939e1ee49ac8c9136",
      "tree": "7f42d69578ab8f286a4b66180c95864a60e95690",
      "parents": [
        "a8474ce23a73185dd2bae4c884b1716474032d31"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 16 11:14:12 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 16 11:14:12 2007 +0200"
      },
      "message": "libata: convert to using sg helpers\n\nThis converts libata to using the sg helpers for looking up sg\nelements, instead of doing it manually.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2855568b1ee4f58ef2c0a13ddfceb4b0b216b7ed",
      "tree": "79262af301c2386c2c391942991742653bc7935e",
      "parents": [
        "b06ce3e51e3df4394a584c234f11240b1c6f8d5b"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Oct 11 17:12:35 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:47 2007 -0400"
      },
      "message": "[libata] struct pci_dev related cleanups\n\n* remove pointless pci_dev_to_dev() wrapper.  Just directly reference\n  the embedded struct device like everyone else does.\n\n* pata_cs5520: delete cs5520_remove_one(), it was a duplicate of\n  ata_pci_remove_one()\n\n* linux/libata.h: don\u0027t bother including linux/pci.h, we don\u0027t need it.\n  Simply declare \u0027struct pci_dev\u0027 and assume interested parties will\n  include the header, as they should be doing anyway.\n\n* linux/libata.h: consolidate all CONFIG_PCI declarations into a\n  single location in the header.\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "b06ce3e51e3df4394a584c234f11240b1c6f8d5b",
      "tree": "6a6f5a1cccdc2972b236d376afeba4fd296d5400",
      "parents": [
        "afaa5c373d2c49ee4865847031b82f1377f609d0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Oct 09 15:06:48 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:47 2007 -0400"
      },
      "message": "libata: use ata_exec_internal() for PMP register access\n\nPMP registers used to be accessed with dedicated accessors -\u003epmp_read\nand -\u003epmp_write.  During reset, those callbacks are called with the\nport frozen so they should be able to run without depending on\ninterrupt delivery.  To achieve this, they were implemented polling.\n\nHowever, as resetting the host port makes the PMP to isolate fan-out\nports until SError.X is cleared, resetting fan-out ports while port is\nfrozen doesn\u0027t buy much additional safety.\n\nThis patch updates libata PMP support such that PMP registers are\naccessed using regular ata_exec_internal() mechanism and kills\n-\u003epmp_read/write() callbacks.  The following changes are made.\n\n* PMP access helpers - sata_pmp_read_init_tf(), sata_pmp_read_val(),\n  sata_pmp_write_init_tf() are folded into sata_pmp_read/write() which\n  are now standalone PMP register access functions.\n\n* sata_pmp_read/write() returns err_mask instead of rc.  This is\n  consistent with other functions which issue internal commands and\n  allows more detailed error reporting.\n\n* ahci interrupt handler is modified to ignore BAD_PMP and\n  spurious/illegal completion IRQs while reset is in progress.  These\n  conditions are expected during reset.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "afaa5c373d2c49ee4865847031b82f1377f609d0",
      "tree": "785203bd4538d2e3c36622ebc2eac93652c7e19e",
      "parents": [
        "2b789108fc1dcba22050a7e6e29ae5ebaea427dd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Oct 09 15:06:10 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:47 2007 -0400"
      },
      "message": "libata: implement ATA_PFLAG_RESETTING\n\nImplement ATA_PFLAG_RESETTING.  This flag is set while reset is in\nprogress.  It\u0027s set before prereset is called and cleared after reset\nfails or postreset is finished.\n\nThis flag itself doesn\u0027t have any function.  It will be used by LLDs\nto tell whether reset is in progress if it needs to behave differently\nduring reset.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "badff03df7a005d13ea2ae8ddc2f5ec0cfc049e8",
      "tree": "11f661e29c5991a9baf33382749ce9f8347da5cf",
      "parents": [
        "70edb185dbaa8a9ec0d6f3e50bb5698a4e85ded6"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Oct 04 21:28:18 2007 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:46 2007 -0400"
      },
      "message": "libata-core: Expose gtm methods for driver use\n\nTalk to the dark side our driver has to, yes. Much misleading is the\ndata. Store it in a structure we do so that it may be parsed.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\n--\nWhats small, old and shouts phrases out of order across mountains ?\nYodla..\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "b3a706014e56b1356e7b275fd25b833c63175bf0",
      "tree": "1595a67c8b09f9222c4d59f466acca681a56a02c",
      "parents": [
        "7100819f5f9b99eb7c7dd5597f293388a405bf7b"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Tue Oct 02 12:38:26 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:45 2007 -0400"
      },
      "message": "libata: Add a drivers/ide style DMA disable\n\nThis is useful when debugging, handling problem systems, or for\ndistributions just to get the system installed so it can be sorted\nout later.\n\nThis is a bit smarter than the old IDE one and lets you do\n\nlibata.dma\u003d0\tDisable all PATA DMA like old IDE\nlibata.dma\u003d1\tDisk DMA only\nlibata.dma\u003d2\tATAPI DMA only\nlibata.dma\u003d4\tCF DMA only\n\n(or combinations thereof - 0,1,3 being the useful ones I suspect)\n\n(I\u0027ve split CF as it seems to be a seperate case of pain and suffering\ndifferent to the others and caused by assorted PIO wired adapters etc)\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\n\n[edited to work on SATA too, changing name from \u0027pata_dma\u0027 to \u0027dma\u0027]\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "31f88384443b3e0d7e2c9d36a96647b7e82edad3",
      "tree": "7bd6321d668f86adbf266513b83a75ae8d568772",
      "parents": [
        "d0df8b5d0fb547a3351c2a4b1ded7f7cde5d713a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:19:54 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:44 2007 -0400"
      },
      "message": "libata-pmp: implement qc_defer for command switching PMP support\n\nImplement sata_pmp_qc_defer_cmd_switch() - standard qc_defer for\ncommand switching PMP support.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3af9a77af9e2b72366363864bfcd3d51465ff98a",
      "tree": "f6a311a56353cf81d34d64cf1a3f86aa6f659246",
      "parents": [
        "3495de733633d24ee97852080b737b436c110d6e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:19:54 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:44 2007 -0400"
      },
      "message": "libata-pmp: implement Port Multiplier support\n\nImplement Port Multiplier support.  To support PMP, a LLDD has to\nsupply ops-\u003epmp_read() and pmp_write().  If non-null, -\u003epmp_attach and\n-\u003epmp_detach are called on PMP attach and detach, respectively.\n\n-\u003epmp_read/write() can be called while the port is frozen, so they\nmust be implemented by polling.  This patch supplies several helpers\nto ease -\u003epmp_read/write() implementation.\n\nAlso, irq_handler and error_handler must be PMP aware.  Most of PMP\naware EH can be done by calling ata_pmp_do_eh() with appropriate\nmethods.  PMP EH uses separate set of reset methods and this patch\nimplements standard prereset, hardreset and postreset methods.\n\nThis patch only implements PMP support.  The next patch will integrate\nPMP into the reset of libata and thus enable PMP support.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "93328e1145c1989d1a214d34ac4e968dea7f7ed7",
      "tree": "3b22b8453c9c3526abeb68efcc45eacff4e6574b",
      "parents": [
        "54174db300ee1bac632d62e4ac37fe02e47d1f18"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Sat Sep 29 04:06:48 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:43 2007 -0400"
      },
      "message": "[PATCH] libata: Fix HPA handling regression\n\nRestore the support for handling drives that report one sector too many\n(ie SCSI not ATA style). This worked before the HPA update but was\nremoved in that process.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7d77b247088fb360aa74bfdd9e19bce1e1987668",
      "tree": "add1b03309dd6fa82eb0f47e1a88766695f38f28",
      "parents": [
        "e31e8531d668c9c4dc7883054788f89805188003"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:13 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:42 2007 -0400"
      },
      "message": "libata-pmp-prep: implement sata_async_notification()\n\nAN serves multiple purposes.  For ATAPI, it\u0027s used for media change\nnotification.  For PMP, for downstream PHY status change notification.\nImplement sata_async_notification() which demultiplexes AN.\n\nTo avoid unnecessary port events, ATAPI AN is not enabled if PMP is\nattached but SNTF is not available.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Kriten Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e31e8531d668c9c4dc7883054788f89805188003",
      "tree": "9c3762792344d24c996d6459409456664a2e381b",
      "parents": [
        "668108d73bbb1ae85f01db38d6be822fd28ece1f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:13 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:41 2007 -0400"
      },
      "message": "libata-pmp-prep: implement ATA_HORKAGE_SKIP_PM\n\nSome pseudo devices fail PM commands unnecessarily aborting system\nsuspend.  Implement ATA_HORKAGE_SKIP_PM which makes libata skip PM\ncommands for these devices.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f9df58cb27dfd605eced643bb3aa599fe4feeee8",
      "tree": "23b5151855d07f3b25c081e29d14f5d353367248",
      "parents": [
        "fd995f7039f1955ccc6b43e1e2d168060b31e4b2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:13 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:41 2007 -0400"
      },
      "message": "libata-pmp-prep: implement ATA_LFLAG_DISABLED\n\nImplement ATA_LFLAG_DISABLED.  The flag indicates the link is disabled\ndue to EH recovery failure.  While a link is disabled, no EH action is\ntaken on the link and suspend/resume become noop too.\n\nThis will be used by PMP links to manage failed links.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "fd995f7039f1955ccc6b43e1e2d168060b31e4b2",
      "tree": "1aac318f211493183508a97aa6c8b2b6cb41d0b6",
      "parents": [
        "ae791c05694d7391ee9261a0450a50f7e95aedfd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:12 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:41 2007 -0400"
      },
      "message": "libata-pmp-prep: implement ATA_LFLAG_NO_RETRY\n\nSome PMP links are connected to internal pseudo devices which may come\nand go depending on situation.  There\u0027s no reason to try hard to\nrecover them.  ATA_LFLAG_NO_RETRY tells EH to not retry if the device\nattached to the link fails.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "ae791c05694d7391ee9261a0450a50f7e95aedfd",
      "tree": "73e3fbcd6cdfe667b5dcc512daaec7fb5941a132",
      "parents": [
        "da917d69d0ea63f5390716cba6e77f490ce96df9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:12 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:41 2007 -0400"
      },
      "message": "libata-pmp-prep: implement ATA_LFLAG_NO_SRST, ASSUME_ATA and ASSUME_SEMB\n\nSome links on some PMPs locks up on SRST and/or report incorrect\ndevice signature.  Implement ATA_LFLAG_NO_SRST, ASSUME_ATA and\nASSUME_SEMB to handle these quirky links.  NO_SRST makes EH avoid\nSRST.  ASSUME_ATA and SEMB forces class code to ATA and SEMB_UNSUP\nrespectively.  Note that SEMB isn\u0027t currently supported yet so the\n_UNSUP variant is used.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "da917d69d0ea63f5390716cba6e77f490ce96df9",
      "tree": "214670f42be4c140bbd05226adc8f86db51ee725",
      "parents": [
        "31cc23b34913bc173680bdc87af79e551bf8cc0d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:12 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:41 2007 -0400"
      },
      "message": "libata-pmp-prep: implement qc_defer helpers\n\nImplement ap-\u003enr_active_links (the number of links with active qcs),\nap-\u003eexcl_link (pointer to link which can be used by -\u003eqc_defer and is\ncleared when a qc with ATA_QCFLAG_CLEAR_EXCL completes), and\nata_link_active().\n\nThese can be used by -\u003eqc_defer() to implement proper command\nexclusion.  This set of helpers seem enough for both sil24 (ATAPI\nexclusion needed) and cmd-switching PMP.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "31cc23b34913bc173680bdc87af79e551bf8cc0d",
      "tree": "ec64421ead9259174f0de8b22c36449ece6d69a4",
      "parents": [
        "fb7fd61454c8681cd2621051a710b78a00369203"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:12 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:41 2007 -0400"
      },
      "message": "libata-pmp-prep: implement ops-\u003eqc_defer()\n\nControllers which support PMP have various restrictions on which\ncombinations of commands are allowed to what number of devices\nconcurrently.  This patch implements ops-\u003eqc_defer() which determines\nwhether a qc can be issued at the moment or should be deferred.\n\nIf the function returns ATA_DEFER_LINK, the qc will be deferred until\na qc completes on the link.  If ATA_DEFER_PORT, until a qc completes\non any link.  The defer conditions are advisory and in general\nATA_DEFER_LINK can be considered as lower priority deferring than\nATA_DEFER_PORT.\n\nops-\u003eqc_defer() replaces fixed ata_scmd_need_defer().  For standard\nNCQ/non-NCQ exclusion, ata_std_qc_defer() is implemented.  ahci and\nsata_sil24 are converted to use ata_std_qc_defer().\n\nops-\u003eqc_defer() is heavier than the original mechanism because full qc\nis prepped before determining to defer it, but various information is\nneeded to determine defer conditinos and fully translating a qc is the\nonly way to supply such information in generic manner.\n\nIMHO, this shouldn\u0027t cause any noticeable performance issues as\n\n* for most cases deferring occurs rarely (except for NCQ-aware\n  cmd-switching PMP)\n* translation itself isn\u0027t that expensive\n* once deferred the command won\u0027t be repeated until another command\n  completes which usually is a very long time cpu-wise.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e0a7175263db4a226558883a51a88a5d2bc5d9fe",
      "tree": "f9d23742df7f8a461ff63ad5be190f6a17742dd8",
      "parents": [
        "854c73a2f1c3bcc4aa88c25e208dc597e8efb795"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:12 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "libata-pmp-prep: add PMP related constants, fields, ops and update helpers\n\nAdd PMP related constants, fields and ops.  Also, update\nata_class_enabled/disabled() such that PMP classes are considered.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3f19859ee95a38c066a0420eb8a30c76ecd67a42",
      "tree": "0ad611a48ddb18be3b8ec35e4dc318e2fd344961",
      "parents": [
        "7a234aff3d83728fd83cf19df32d3df52566d2ac"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 02 23:23:57 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:39 2007 -0400"
      },
      "message": "libata: update ata_dev_try_classify() arguments\n\nMake ata_dev_try_classify() take a pointer to ata_device instead of\nata_port/port_number combination for consistency and add @present\nargument.  @present indicates whether the device seems present during\nreset.  It\u0027s the result of TF access during softreset and link\nonlineness during hardreset.  @present will be used to improve\ndiagnostic failure handling.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2557164e0b18e78a7772632a2a90832f56181fc5",
      "tree": "f8c9830e65393be8eb470d6300e1c2bc26399b08",
      "parents": [
        "e2d352af6d8f1734394bc1bcf0afe345cc3ef235"
      ],
      "author": {
        "name": "Kristen Carlson Accardi",
        "email": "kristen.c.accardi@intel.com",
        "time": "Tue Sep 11 11:41:59 2007 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:39 2007 -0400"
      },
      "message": "ata: increase allowed config flags\n\nIn anticipation of more features, increase number of config flags\nallowed, and move the init flags.\n\nSigned-off-by:  Kristen Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nCc: Hugh Dickens \u003chugh@veritas.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "a1e10f7e68a544c80081fee4fa550dc28389f44a",
      "tree": "cf6673989f360e0b12b2a658a7042d30420c14eb",
      "parents": [
        "cbcdd87593a1d85c5c4b259945a3a09eee12814d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Aug 18 13:28:49 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:37 2007 -0400"
      },
      "message": "libata: move EH repeat reporting into ata_eh_report()\n\nEH is sometimes repeated without any error or action.  For example,\nthis happens when probing IDENTIFY fails because of a phantom device.\nIn these cases, all the repeated EH does is making sure there is no\nunhandled error or pending action and return.  This repeation is\nnecessary to avoid losing any event which occurred while EH was in\nprogress.\n\nUnfortunately, this dry run causes annonying \"EH pending after\ncompletion\" message.  This patch moves the repeat reporting into\nata_eh_report() such that it\u0027s more compact and skipped on dry runs.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Mikael Pettersson \u003cmikep@it.uu.se\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "cbcdd87593a1d85c5c4b259945a3a09eee12814d",
      "tree": "ee03df963a12ec7f30f6c3a8742421daf2c34f50",
      "parents": [
        "e923090ddd9fef1d4e06dc6c5295e29baced19f3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Aug 18 13:14:55 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:37 2007 -0400"
      },
      "message": "libata: implement and use ata_port_desc() to report port configuration\n\nCurrently, port configuration reporting has the following problems.\n\n* iomapped address is reported instead of raw address\n* report contains irrelevant fields or lacks necessary fields for\n  non-SFF controllers.\n* host-\u003eirq/irq2 are there just for reporting and hacky.\n\nThis patch implements and uses ata_port_desc() and\nata_port_pbar_desc().  ata_port_desc() is almost identical to\nata_ehi_push_desc() except that it takes @ap instead of @ehi, has no\nlocking requirement, can only be used during host initialization and \"\n\" is used as separator instead of \", \".  ata_port_pbar_desc() is a\nhelper to ease reporting of a PCI BAR or an offsetted address into it.\n\nLLD pushes whatever description it wants using the above two\nfunctions.  The accumulated description is printed on host\nregistration after \"[S/P]ATA max MAX_XFERMODE \".\n\nSFF init helpers and ata_host_activate() automatically add\ndescriptions for addresses and irq respectively, so only LLDs which\nisn\u0027t standard SFF need to add custom descriptions.  In many cases,\nsuch controllers need to report different things anyway.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "ac8869d56d95a8c74403e6f7a47d74fcfcc1b988",
      "tree": "2f812aff4c6e559f3c093f9933960d09631375c8",
      "parents": [
        "7d73a363dea186a864f6295bbe842da8044d42cd"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 16 03:17:03 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:35 2007 -0400"
      },
      "message": "[libata] Remove -\u003eport_disable() hook\n\nIt was always set to ata_port_disable().  Removed the hook, and replaced\nthe very few ap-\u003eops-\u003eport_disable() callsites with direct calls to\nata_port_disable().\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e1ddb4b6a2c9b2c72991eb8640ef2f50691ac502",
      "tree": "fd9d0f14c5a5e329f4c1d2ee737177c5caf24b02",
      "parents": [
        "6d32d30f55020d766388df7515f771f68c973033"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Aug 16 02:33:36 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:34 2007 -0400"
      },
      "message": "[libata] add ACPI cable detect API\n\nCombined from two Alan Cox patches:\n\n1) libata: ACPI checks for 80wire cable\n\nWe can use the ACPI mode information with several drivers as a hint to\ncable type. If the ACPI mode set by the BIOS is faster than UDMA33 then\nwe know the BIOS thinks there are 80wire cables. If it doesn\u0027t set such a\nmode or it has no ACPI method then we get no further information and can\nrely on existing approaches\n\nIntroduce the function headers needed. Null it out for non ACPI boxes\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\n\n2) libata: ACPI checks for 80wire cable\n\nProvide actual methods for checking if the ACPI support thinks the cable\nis 80wire, or doesn\u0027t know\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\n\nCombined into a single changeset and\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6d32d30f55020d766388df7515f771f68c973033",
      "tree": "ec0efe48460b5b3f177fed2698ccd04b7964359b",
      "parents": [
        "cb94c1cf5a6beffbd8935eb91227df0dd1987644"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Aug 15 05:38:46 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:34 2007 -0400"
      },
      "message": "[libata] Remove -\u003eirq_ack() hook, and ata_dummy_irq_on()\n\n* -\u003eirq_ack() is redundant to what the irq handler already\n  performs... chk-status + irq-clear.  Furthermore, it is only\n  called in one place, when screaming-irq-debugging is enabled,\n  so we don\u0027t want to bother with a hook just for that.\n\n* ata_dummy_irq_on() is only ever used in drivers that have\n  no callpath reaching -\u003eirq_on().  Remove .irq_on hook from\n  those drivers, and the now-unused ata_dummy_irq_on()\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "cb94c1cf5a6beffbd8935eb91227df0dd1987644",
      "tree": "2466729967ea54b176f966b0c08a762a0f8a5c10",
      "parents": [
        "1552945669b4fb23bff8d3b30221bfe3ade63515"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 30 14:24:15 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:34 2007 -0400"
      },
      "message": "libata: add printf format attribute to ehi desc functions\n\nTell the compiler that [__]ata_ehi_push_desc() functions take printf\nstyle format string and arguments.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "1552945669b4fb23bff8d3b30221bfe3ade63515",
      "tree": "843dc8ad2a108a1fcea95bf503cc4cb1abd848ca",
      "parents": [
        "b8773531cc54c1ed10c8ec301353ee6b53b601a5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 30 14:23:03 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:34 2007 -0400"
      },
      "message": "libata: use ata_port_printk() in ata_wait_idle()\n\nata_wait_idle() identified controller by printing out the address of\nthe Status register.  This is bogus because 1. it\u0027s iomapped address\n2. some controllers don\u0027t have Status register and don\u0027t initialize\nthe field.  Use ata_port_printk() instead.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2f2949680ad89d606db838340b17c30216c0bb0f",
      "tree": "25d7918c7b846d151776bbdf6a111a1d241d6b05",
      "parents": [
        "9f45cbd3f0fc597530aaf85cad7fe52cd63f1fd8"
      ],
      "author": {
        "name": "Kristen Carlson Accardi",
        "email": "kristen.c.accardi@intel.com",
        "time": "Wed Aug 15 04:11:25 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:33 2007 -0400"
      },
      "message": "[libata] ahci: send event when AN received\n\nWhen we get an SDB FIS with the \u0027N\u0027 bit set, we should send\nan event to user space to indicate that there has been a\nmedia change.  This will be done via the scsi device.\n\nSigned-off-by: Kristen Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9f45cbd3f0fc597530aaf85cad7fe52cd63f1fd8",
      "tree": "44f9f11250f7629e7091b1532489d7a6539f758a",
      "parents": [
        "05d1efffdc9bf84311bb1a3c2e3db55b544ca119"
      ],
      "author": {
        "name": "Kristen Carlson Accardi",
        "email": "kristen.c.accardi@intel.com",
        "time": "Wed Aug 15 03:57:11 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:33 2007 -0400"
      },
      "message": "[libata] check for SATA async notify support\n\nCheck to see if an ATAPI device supports Asynchronous Notification.\nIf so, enable it, if the host controller supports AN.\n\nSigned-off-by: Kristen Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "8989805d6d176aa32c0e9a68a536aa4c8ef5231c",
      "tree": "9111bf6a881ab6c90aac9953b678ab62bb6c2d3b",
      "parents": [
        "dbd826168d6267a26cf20cd233f6730f8d8047d6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:23 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:31 2007 -0400"
      },
      "message": "libata-link: add PMP links\n\nAdd link-\u003epmp, ap-\u003enr_pmp_links, ap-\u003epmp_link[], and implement/update\nlink helpers.\n\nprintk helpers are updated such that port and link are identifed as\n\u0027ataP:\u0027 if no PMP is attached, while device is identified as\n\u0027ataP.DD:\u0027.  If PMP is attached, they become \u0027ataP:\u0027, \u0027ataP.LL:\u0027 and\n\u0027ataP.LL\u0027 - ie. link and device are identified their PMP number.\n\nIf PPM is attached (ap-\u003enr_pmp_links !\u003d 0), ata_for_each_link()\niterates over PMP links, while __ata_for_each_link() iterates over the\nhost link + PMP links.  If PMP is not attached (ap-\u003enr_pmp_links \u003d\u003d\n0), both iterate over only the host link.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "dbd826168d6267a26cf20cd233f6730f8d8047d6",
      "tree": "961486fededf27561a2d790ecab6dc50f94617a9",
      "parents": [
        "4fb37a25b976e8d1b34461330b3f2c6d9b94c133"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:23 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:31 2007 -0400"
      },
      "message": "libata-link: implement ata_link_abort()\n\nImplement ata_link_abort().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "0c88758b5a6325428aaadab619886242db20ceae",
      "tree": "bf84abbce984fa45c4ce927b65695f30a8ea3a43",
      "parents": [
        "0260731f0187840e272bfa10d3ba0f3e417976f5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:23 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:31 2007 -0400"
      },
      "message": "libata-link: make two port flags HRST_TO_RESUME and SKIP_D2H_BSY link flags\n\nHRST_TO_RESUME and SKIP_D2H_BSY are link attributes.  Move them to\nata_link-\u003eflags.  This will allow host and PMP links to have different\nattributes.  ata_port_info-\u003elink_flags is added and used by LLDs to\nspecify these flags during initialization.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "0260731f0187840e272bfa10d3ba0f3e417976f5",
      "tree": "d39219275e89ce782f3151b5ac47726957a81e24",
      "parents": [
        "cc0680a580b5be81a1ca321b58f8e9b80b5c1052"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:23 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:31 2007 -0400"
      },
      "message": "libata-link: linkify config/EH related functions\n\nMake the following functions deal with ata_link instead of ata_port.\n\n* ata_set_mode()\n* ata_eh_autopsy() and related functions\n* ata_eh_report() and related functions\n* suspend/resume related functions\n* ata_eh_recover() and related functions\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "cc0680a580b5be81a1ca321b58f8e9b80b5c1052",
      "tree": "57454cdfdc9890f4e8d9f532e9cd240c7361951f",
      "parents": [
        "955e57dfde4ff75e4d7329ac7a3d645b16015309"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:23 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:31 2007 -0400"
      },
      "message": "libata-link: linkify reset\n\nMake reset methods and related functions deal with ata_link instead of\nata_port.\n\n* ata_do_reset()\n* ata_eh_reset()\n* all prereset/reset/postreset methods and related functions\n\nThis patch introduces no behavior change.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "936fd7328657884d5a69a55666c74a55aa83ca27",
      "tree": "83a78a02d2c65ce835fe33882dfe5043d3240bff",
      "parents": [
        "f58229f8060055b08b34008ea08f31de1e2f003c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:23 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:30 2007 -0400"
      },
      "message": "libata-link: linkify PHY-related functions\n\nMake the following PHY-related functions to deal with ata_link instead\nof ata_port.\n\n* sata_print_link_status()\n* sata_down_spd_limit()\n* ata_set_sata_spd_limit() and friends\n* sata_link_debounce/resume()\n* sata_scr_valid/read/write/write_flush()\n* ata_link_on/offline()\n\nThis patch introduces no behavior change.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f58229f8060055b08b34008ea08f31de1e2f003c",
      "tree": "6ca5ef546671cb975ef3632fb032c238eaf1bb4c",
      "parents": [
        "9af5c9c97dc9d599281778864c72b385f0c63341"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:23 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:30 2007 -0400"
      },
      "message": "libata-link: implement and use link/device iterators\n\nMultiple links and different number of devices per link should be\nconsidered to iterate over links and devices.  This patch implements\nand uses link and device iterators - ata_port_for_each_link() and\nata_link_for_each_dev() - and ata_link_max_devices().\n\nThis change makes a lot of functions iterate over only possible\ndevices instead of from dev 0 to dev ATA_MAX_DEVICES.  All such\nchanges have been examined and nothing should be broken.\n\nWhile at it, add a separating comment before device helpers to\ndistinguish them better from link helpers and others.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9af5c9c97dc9d599281778864c72b385f0c63341",
      "tree": "8359986bd42c4a9a5b1993078aa9ee4c7971ac3d",
      "parents": [
        "640fdb504941fa2b9f6f274716fc9f97f2bf6bff"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:22 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:30 2007 -0400"
      },
      "message": "libata-link: introduce ata_link\n\nIntroduce ata_link.  It abstracts PHY and sits between ata_port and\nata_device.  This new level of abstraction is necessary to support\nSATA Port Multiplier, which basically adds a bunch of links (PHYs) to\na ATA host port.  Fields related to command execution, spd_limit and\nEH are per-link and thus moved to ata_link.\n\nThis patch only defines the host link.  Multiple link handling will be\nadded later.  Also, a lot of ap-\u003elink derefences are added but many of\nthem will be removed as each part is converted to deal directly with\nata_link instead of ata_port.\n\nThis patch introduces no behavior change.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "16c55b038033d8f6f7601996dfae44399666d9ab",
      "tree": "22fb45fb599455cadc29b0f8ac18dd4695eae8b5",
      "parents": [
        "7f9992a23190418592f0810900e4f91546ec41da"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Aug 29 11:58:33 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Aug 31 04:21:13 2007 -0400"
      },
      "message": "libata: implement BROKEN_HPA horkage and apply it to affected drives\n\nSome drives choke on READ_NATIVE_MAX_ADDRESS[_EXT].  Implement\nATA_HORKAGE_BROKEN_HPA and apply it to affected drives.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "b8b275efc28e34f9b1d1e382d0b02dfa381b2a79",
      "tree": "81eea69b15307e96afb63d676f9027268a67cca8",
      "parents": [
        "f0a664bbd1839fbe9f57564983f39bfc6c6f931d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Jul 10 15:55:43 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Jul 24 16:55:01 2007 -0400"
      },
      "message": "ata_piix: fix suspend/resume for some TOSHIBA laptops\n\nACPI implementations in several TOSHIBA laptops are weird and burn cpu\ncycles for tens of seconds while trying to suspend if the PCI device\nfor the ATA controller is disabled when the ACPI suspend is called.\n\nThis patch uses DMI to match those machines and bypass device disable\non those machines during suspend.  As the device needs to be put into\nenabled state on resume without affecting PCI enable count, matching\nresume callback uses __pci_reenable_device().\n\nThis bug is reported in bugzilla bug 7780.\n\n  http://bugzilla.kernel.org/show_bug.cgi?id\u003d7780\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e6f194d8f6f50da6837af637b2fd839c34185f7a",
      "tree": "f3c479a2bc24d49a150ff183e2614ee0f76cb366",
      "parents": [
        "7578634990fb47cc30083fbd812689aa6deacfc0",
        "b91421749a1840148d8c81637c03c0ace3f35269"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 22 11:36:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 22 11:36:49 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (60 commits)\n  [SCSI] libsas: make ATA functions selectable by a config option\n  [SCSI] bsg: unexport sg v3 helper functions\n  [SCSI] bsg: fix bsg_unregister_queue\n  [SCSI] bsg: make class backlinks\n  [SCSI] 3w-9xxx: add support for 9690SA\n  [SCSI] bsg: fix bsg_register_queue error path\n  [SCSI] ESP: Increase ESP_BUS_TIMEOUT to 275.\n  [SCSI] libsas: fix scr_read/write users and update the libata documentation\n  [SCSI] mpt fusion: update Kconfig help\n  [SCSI] scsi_transport_sas: add destructor for bsg\n  [SCSI] iscsi_tcp: buggered kmalloc()\n  [SCSI] qla2xxx: Update version number to 8.02.00-k2.\n  [SCSI] qla2xxx: Add ISP25XX support.\n  [SCSI] qla2xxx: Use pci_try_set_mwi().\n  [SCSI] qla2xxx: Use PCI-X/PCI-Express read control interfaces.\n  [SCSI] qla2xxx: Re-factor isp_operations to static structures.\n  [SCSI] qla2xxx: Validate mid-layer \u0027underflow\u0027 during check-condition handling.\n  [SCSI] qla2xxx: Correct setting of \u0027current\u0027 and \u0027supported\u0027 speeds during FDMI registration.\n  [SCSI] qla2xxx: Generalize iIDMA support.\n  [SCSI] qla2xxx: Generalize FW-Interface-2 support.\n  ...\n"
    },
    {
      "commit": "5ddf24c5ea9d715dc4f5d5d5dd1c9337d90466dc",
      "tree": "6ba89094decfada468fba1f4670b9395c6f66e42",
      "parents": [
        "4e57c517b3cbaceb7438eeec879ca129fc17442c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:41 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:26:26 2007 -0400"
      },
      "message": "libata: implement EH fast drain\n\nIn most cases, when EH is scheduled, all in-flight commands are\naborted causing EH to kick in immediately.  However, in some cases\n(especially with PMP), it\u0027s unclear which commands are affected by the\nerror condition and although aborting all in-flight commands work, it\nisn\u0027t optimal and may cause unnecessary disruption.  On the other\nhand, waiting for in-flight commands to drain themselves can take up\nto 30seconds.\n\nThis patch implements EH fast drain to handle such situations.  It\ngives in-flight commands some time to finish up but doesn\u0027t wait for\ntoo long.  After EH is scheduled, fast drain timer is started and if\nno other completion occurs in ATA_EH_FASTDRAIN_INTERVAL all in-flight\ncommands are aborted.  If any completion occurred in the interval, the\nport is given another interval to finish up itself.\n\nCurrently ATA_EH_FASTDRAIN_INTERVAL is 3 secs which should be enough\nfor finishing up most commands.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f8f1e1cc0cd4d75c73e9a55a0ede8958e4fa14f1",
      "tree": "91eaf4895b09923dc4830fa874de25d9eef105d9",
      "parents": [
        "1ae463171cc1b1ea6dad7bcb298e96c073e7373e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:40 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:26:25 2007 -0400"
      },
      "message": "libata: reorganize ata_ehi_hotplugged()\n\n__ata_ehi_hotplugged() now has no users.  Regorganize\nata_ehi_hotplugged() such that a new function ata_ehi_schedule_probe()\ndeals with scheduling probing.  ata_ehi_hotplugged() calls it and\nadditionally marks hotplug specific flags.  ata_ehi_schedule_probe()\nwill be used laster.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "008a78961ec72990d09d7625ef9499d7317d040d",
      "tree": "aa356bbd961b7425017a3037fec509ffb761d332",
      "parents": [
        "badc2341579511a247f5993865aa68379e283c5c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:40 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:19:05 2007 -0400"
      },
      "message": "libata: improve SATA PHY speed down logic\n\nsata_down_spd_limit() first reads the current SPD from SStatus and\nlimit the speed to the lower one of one below the current limit or one\nbelow the current SPD in SStatus.  SPD may not be accessible or valid\nwhen SPD down is requested making sata_down_spd_limit() fail when it\u0027s\nmost needed.\n\nThis patch makes the current SPD cached after each successful reset\nand forces GEN I speed (1.5Gbps) if neither of SStatus or the cached\nvalue is valid, so sata_down_spd_limit() is now guaranteed to lower\nthe speed limit if lower speed is available.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "da3dbb17a0e9a9ec7f5aed95f1fddadb790edc9d",
      "tree": "289239e1eb60168321e905c545aa2e2f3a2b5475",
      "parents": [
        "5335b729064e03319cd2d5219770451dbb1d7f67"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:40 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:02:11 2007 -0400"
      },
      "message": "libata: make -\u003escr_read/write callbacks return error code\n\nConvert -\u003escr_read/write callbacks to return error code to better\nindicate failure.  This will help handling of SCR_NOTIFICATION.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "5335b729064e03319cd2d5219770451dbb1d7f67",
      "tree": "72bd078bd714d06d55c555edcf183f2bdf30c9e8",
      "parents": [
        "b64bbc39f2122a2276578e40144af69ef01decd4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:40 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:02:11 2007 -0400"
      },
      "message": "libata: implement AC_ERR_NCQ\n\nWhen an NCQ command fails, all commands in flight are aborted and the\noffending one is reported using log page 10h.  Depending on controller\ncharacteristics and LLD implementation, all commands may appear as\nhaving a device error due to shared TF status making it hard to\ndetermine what\u0027s actually going on.\n\nThis patch adds AC_ERR_NCQ, marks the command reported by log page 10h\nwith it and print extra \"\u003cF\u003e\" after the error report for the command\nto help distinguishing the offending command.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "b64bbc39f2122a2276578e40144af69ef01decd4",
      "tree": "bd760da68bc785490ecd31060d892eeb7123782d",
      "parents": [
        "975530e8a33fdeb1ad80d82fde11d56bf9ed2760"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:39 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:02:11 2007 -0400"
      },
      "message": "libata: improve EH report formatting\n\nRequiring LLDs to format multiple error description messages properly\ndoesn\u0027t work too well.  Help LLDs a bit by making ata_ehi_push_desc()\ninsert \", \" on each invocation.  __ata_ehi_push_desc() is the raw\nversion without the automatic separator.\n\nWhile at it, make ehi_desc interface proper functions instead of\nmacros.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9977126c4b65c1396b665f7a0eeb8c7dede336f9",
      "tree": "91901f1356a57ba311bc5c95c4825504642f7d04",
      "parents": [
        "fe36cb53cfd82f3c0796a0826e1c9caf198c8f97"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:38 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:02:10 2007 -0400"
      },
      "message": "libata: add @is_cmd to ata_tf_to_fis()\n\nAdd @is_cmd to ata_tf_to_fis().  This controls bit 7 of the second\nbyte which tells the device whether this H2D FIS is for a command or\nnot.  This cleans up ahci a bit and will be used by PMP.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "1c50dc83f9ca752b1e1b985f1ce33d2695103ffa",
      "tree": "fba4621565a87272d1232281b9457c297d53ea04",
      "parents": [
        "35a7f2f698d309cc50d98e56312dd907427b7ba4"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Tue Jan 30 01:18:41 2007 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "jejb@mulgrave.localdomain",
        "time": "Wed Jul 18 11:15:13 2007 -0500"
      },
      "message": "[SCSI] sas_ata: ata_post_internal should abort the sas_task\n\nThis patch adds a new field, lldd_task, to ata_queued_cmd so that libata\nusers such as libsas can associate some data with a qc.  The particular\nambition with this patch is to associate a sas_task with a qc; that way,\nif libata decides to timeout a command, we can come back (in\nsas_ata_post_internal) and abort the sas task.\n\nOne question remains: Is it necessary to reset the phy on error, or will\nthe libata error handler take care of it?  (Assuming that one is written,\nof course.)  This patch, as it is today, works well enough to clean\nthings up when an ATA device probe attempt fails halfway through the probe,\nthough I\u0027m not sure this is always the right thing to do.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\n"
    },
    {
      "commit": "75683fe7153c3817bb4fd4491e2a5913af6c463e",
      "tree": "5c7bb12e577a328b41df16d036c7060309493f44",
      "parents": [
        "39ce7128066f2ac5954bcda9f07f429f28166da3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jul 05 13:31:27 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Jul 10 21:30:33 2007 -0400"
      },
      "message": "libata: clean up horkage handling\n\nHorkage handling had the following problems.\n\n* dev-\u003ehorkage was positioned after ATA_DEVICE_CLEAR_OFFSET, so it was\n  cleared before the device is configured.  This broke\n  HORKAGE_DIAGNOSTIC.\n\n* Some used dev-\u003ehorkage while others called ata_device_blacklisted()\n  directly.  This was at best confusing.\n\nThis patch moves dev-\u003ehorkage right after dev-\u003eflags and set the field\naccording to the blacklist during device configuration.  All users\ntest against dev-\u003ehorkage.  ata_device_blacklisted() now has only one\nuser, make it static.  While at it, rename it to ata_dev_blacklisted()\nfor consistency.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d583bc18812f8da52bf25eef9cd111e5fd46a6ab",
      "tree": "7b886a4ce61b7c0bf8085da5e56b323a9a2fa193",
      "parents": [
        "35142ddbf7d81ff3f1d9521611e734b8d5014df2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Jul 04 18:02:07 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Jul 10 21:27:09 2007 -0400"
      },
      "message": "libata: simplify PCI legacy SFF host handling\n\nWith PCI resource fix up for legacy hosts.  We can use the same code\npath to allocate IO resources and initialize host for both legacy and\nnative SFF hosts.  Only IRQ requesting needs to be different.\n\nRename ata_pci_*_native_host() to ata_pci_*_sff_host(), kill all\nlegacy specific functions and use the renamed functions instead.  This\nsimplifies code a lot.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "45a66c1c3ff88e8050dd25e81bafdf79a12a8042",
      "tree": "05b8ae20d034ffe16e0f13b51f43aa9f93eddf2f",
      "parents": [
        "4c75f7416f51b0c6855952467a5db04f9c598f09"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Jul 09 11:46:13 2007 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Jul 10 20:55:04 2007 -0400"
      },
      "message": "libata-core: convert to use cancel_rearming_delayed_work()\n\nWe should not use cancel_work_sync(delayed_work-\u003ework). This works, but not\ngood. We can use cancel_rearming_delayed_work(), this also simplifies the\ncode.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d26fc9551a15fdad0d5de8376a78816b8af44f00",
      "tree": "5c829c1baf499ad1f31ed4b8b41e766b290a6306",
      "parents": [
        "c1e6f28cc5de37dcd113b9668a185c0b9334ba8a"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Jul 06 19:13:52 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:35 2007 -0400"
      },
      "message": "libata: Support chips with 64K PRD quirk\n\nAdd ata_dumb_qc_prep and supporting logic so that a driver can just\nspecify it needs to be helped in this area. 64K entries are split\nas with drivers/ide.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "64578a3de723d502621860f9d4d28f34d001b066",
      "tree": "821e7ad8e8d6c3a0f3224b479ff000e00001a165",
      "parents": [
        "e5fa24dfdb522b642dbe9b8b1b692f68dce89835"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 03:28:16 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:32 2007 -0400"
      },
      "message": "libata-acpi: implement _GTM/_STM support\n\nImplement _GTM/_STM support.  acpi_gtm is added to ata_port which\nstores _GTM parameters over suspend/resume cycle.  A new hook\nata_acpi_on_suspend() is responsible for storing _GTM parameters\nduring suspend.  _STM is executed in ata_acpi_on_resume().  With this\nchange, invoking _GTF is safe on IDE hierarchy and acpi_sata check\nbefore _GTF is removed.\n\nata_acpi_gtm() and ata_acpi_stm() implementation is taken from Alan\nCox\u0027s pata_acpi implementation.  ata_acpi_gtm() is fixed such that the\nresult parameter is not shifted by sizeof(union acpi_object).\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6746544c3b143ca7071d144f1882ccbe1f47b08d",
      "tree": "49106311ab2a748feda2fa91f977f700938d3d5c",
      "parents": [
        "69b16a5f4c4f1dab70d4d555c487c318c6878b3e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 03:28:16 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:31 2007 -0400"
      },
      "message": "libata: reimplement ACPI invocation\n\nThis patch reimplements ACPI invocation such that, instead of\nexporting ACPI details to the rest of libata, ACPI event handlers -\nata_acpi_on_resume() and ata_acpi_on_devcfg() - are used.  These two\nfunctions are responsible for determining whether specific ACPI method\nis used and when.\n\nOn resume, _GTF is scheduled by setting ATA_DFLAG_ACPI_PENDING device\nflag.  This is done this way to avoid performing the action on wrong\ndevice device (device swapping while suspended).\n\nOn every ata_dev_configure(), ata_acpi_on_devcfg() is called, which\nperforms _SDD and _GTF.  _GTF is performed only after resuming and, if\nSATA, hardreset as the ACPI spec specifies.  As _GTF may contain\narbitrary commands, IDENTIFY page is re-read after _GTF taskfiles are\nexecuted.\n\nIf one of ACPI methods fails, ata_acpi_on_devcfg() retries on the\nfirst failure.  If it fails again on the second try, ACPI is disabled\non the device.  Note that successful configuration clears ACPI failed\nstatus.\n\nWith all feature checks moved to the above two functions,\ndo_drive_set_taskfiles() is trivial and thus collapsed into\nata_acpi_exec_tfs(), which is now static and converted to return the\nnumber of executed taskfiles to be used by ata_acpi_on_resume().  As\nfailures are handled properly, ata_acpi_push_id() now returns -errno\non errors instead of unconditional zero.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "fafbae87db88a73b166d3bc3294d209207f27056",
      "tree": "158217a52a396b2be110688f23eacbe25cf1c2d7",
      "parents": [
        "7dcca30a32aadb0520417521b0c44f42d09fe05c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 03:28:16 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:31 2007 -0400"
      },
      "message": "libata-acpi: implement ata_acpi_associate()\n\n* Add acpi_handle to ata_host and ata_port.  Rename\n  ata_device-\u003eobj_handle to -\u003eacpi_handle and move it above such that\n  it doesn\u0027t get cleared on reconfiguration.\n\n* Replace ACPI node association which ata_acpi_associate() which is\n  called once during host initialization.  Unlike the previous\n  implementation, ata_acpi_associate() uses ATA_FLAG_ACPI_SATA to\n  choose between IDE or SATA ACPI hierarchy and uses simple child look\n  up instead of recursive walk to match the nodes.  This is way safer\n  and simpler.  Please read the following message for more info.\n\n  http://article.gmane.org/gmane.linux.ide/17554\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "40a1d531f6c894b298e784fd2090d87633e4989a",
      "tree": "2113cae781e8162de10ff1bd17733d423cef0e32",
      "parents": [
        "b9a4197e266a40d5d1d16c9fb2a852cf10743afe"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Jun 27 02:49:38 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jun 27 02:50:08 2007 -0400"
      },
      "message": "libata: kill ATA_HORKAGE_DMA_RW_ONLY\n\nATA_HORKAGE_DMA_RW_ONLY for TORiSAN is verified to be subset of using\nDMA for ATAPI commands which aren\u0027t aligned to 16 bytes.  As libata\nnow doesn\u0027t use DMA for unaligned ATAPI commands, the horkage is\nredundant.  Kill it.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "55f3952d45a439cecc36fd845a87026d04c82931",
      "tree": "12c8a8836a1e127a1f7db2e7633c6a3f4d475b79",
      "parents": [
        "62877f6b0c4943c2231b84b49182a078eb02a777"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jun 25 21:31:05 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jun 27 02:44:18 2007 -0400"
      },
      "message": "libata: kill the infamous abnormal status message\n\nThe infamous abnormal status message triggers on not so abnormal cases\nincluding empty port and even when it\u0027s being triggered on actual\nerrors the info it provides is redundant and out of context - higher\nlevel functions will print the info in better safe later anyway.\n\nAlso, by being triggered all the time, it leads people to think that\nthe abnormality is somehow related to all ATA and system problems\nthey\u0027re experiencing and gives owners of healthy systems unfounded\ndoubts about the integrity of the universe.  Make it a DPRINTK and\nsave the universe.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d92e74d353345d19f762e9501a50b0a5f43f7ba8",
      "tree": "9a526823ddba8dd8cd07bb5d918acf7c5e820db7",
      "parents": [
        "0522b2869d89b095bf417c8cc6fa404842e91903"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Jun 07 16:19:15 2007 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jun 09 22:40:28 2007 -0400"
      },
      "message": "libata-core/sff: Fix multiple assumptions about DMA\n\nThe ata IRQ ack functions are only used when debugging. Unfortunately\nalmost every controller that calls them can cause crashes in some\nconfigurations as there are missing checks for bmdma presence.\n\nIn addition ata_port_start insists of installing DMA buffers and pad\nbuffers for controllers regardless. The SFF controllers actually need to\nmake that decision dynamically at controller setup time and all need the\nsame helper - so we add ata_sff_port_start. Future patches will switch\nthe SFF drivers to use this.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "464cf177df7727efcc5506322fc5d0c8b896f545",
      "tree": "7b6546aab9c5a7f326ddc27c7a456287172f3c64",
      "parents": [
        "a862b5c8cd5d847779a049a5fc8cf5b1e6f5fa07"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun May 27 15:10:40 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jun 04 16:48:34 2007 -0400"
      },
      "message": "libata: always use polling SETXFER\n\nSeveral people have reported LITE-ON LTR-48246S detection failed\nbecause SETXFER fails.  It seems the device raises IRQ too early after\nSETXFER.  This is controller independent.  The same problem has been\nreported for different controllers.\n\nSo, now we have pata_via where the controller raises IRQ before it\u0027s\nready after SETXFER and a device which does similar thing.  This patch\nmakes libata always execute SETXFER via polling.  As this only happens\nduring EH, performance impact is nil.  Setting ATA_TFLAG_POLLING is\nalso moved from issue hot path to ata_dev_set_xfermode() - the only\nplace where SETXFER can be issued.\n\nNote that ATA_TFLAG_POLLING applies only to drivers which implement\nSFF TF interface and use libata HSM.  More advanced controllers ignore\nthe flag.  This doesn\u0027t matter for this fix as SFF TF controllers are\nthe problematic ones.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "bc9a8a7eaa58d802a2b26c75edcc95cb92835db3",
      "tree": "202250109e861ae2ba6dfd2fa407b1b7487dca68",
      "parents": [
        "2f91d81db3060f6d218e32d935b9a18ffca4dde2"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon May 21 15:20:33 2007 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon May 21 20:00:54 2007 -0400"
      },
      "message": "libata: Kiss post_set_mode goodbye\n\nAs of the -mm tree we don\u0027t have post_set_mode users any more.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "13b8d09f5de0aaa3153bbccc98baf247387823dc",
      "tree": "d35c90bd2460d7808595917ccf7c102229353365",
      "parents": [
        "da071b42f73dabbd0daf7ea4c3ff157d53b00648"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 12:29:22 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed May 16 01:18:31 2007 -0400"
      },
      "message": "libata: track spindown status and skip spindown_compat if possible\n\nOur assumption that most distros issue STANDBYNOW seems wrong.  The\nupstream sysvinit and thus many distros including gentoo and opensuse\ndon\u0027t take any action for libata disks on spindown.  We can skip\ncompat handling for these distros so that they don\u0027t need to update\nanything to take advantage of kernel-side shutdown.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    }
  ],
  "next": "3cadbcc09891b8544203f211dac13f9cc4e6832a"
}
