)]}'
{
  "log": [
    {
      "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": "5f226c6bf78edab023ed1ea679531731d9df92a6",
      "tree": "01e0dff1224476aa52c240ee958ec7948bb85cc6",
      "parents": [
        "1c954a4d9a9e351fa3509533fd8dd5f3821206cd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Oct 09 15:02:23 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:47 2007 -0400"
      },
      "message": "ahci: fix notification handling\n\nAsynchronous notification on ICH9 didn\u0027t work because it didn\u0027t write\nAN FIS into the RX area - it only updates SNotification.  Also,\nsnooping SDB_FIS RX area is racy against further SDB FIS receptions.\nLet sata_async_notification() determine using SNTF if it\u0027s available\nand snoop RX area iff SNTF isn\u0027t available\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": "1c954a4d9a9e351fa3509533fd8dd5f3821206cd",
      "tree": "edc1571ab692de818543b9c5ddbd80e6bbbfca29",
      "parents": [
        "75da6d2b8f518bec40546bc0b0696a2cebecf6cc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Oct 09 15:01:37 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:47 2007 -0400"
      },
      "message": "ahci: clean up PORT_IRQ_BAD_PMP enabling\n\nNow that we have pp-\u003eintr_mask, move PORT_IRQ_BAD_PMP enabling to\nahci_pmp_attach/detach() where it belongs.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "75da6d2b8f518bec40546bc0b0696a2cebecf6cc",
      "tree": "2ee776da78cfc3dd9a42ebcfdc7864248982159f",
      "parents": [
        "9073868376ed5fa1f247327ccb2e6f766d5b7eed"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Oct 09 14:59:50 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:46 2007 -0400"
      },
      "message": "ahci: kill leftover from enabling NCQ over PMP\n\nahci had problems with NCQ over PMP and NCQ used to be disabled while\nPMP was attached.  After fixing the problem, the temporary NCQ\ndisabling code wasn\u0027t removed completely.  Kill the remaining piece.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7100819f5f9b99eb7c7dd5597f293388a405bf7b",
      "tree": "3a386aab745c01976318ada8559db7f1cb5b76d4",
      "parents": [
        "1333e19434da116bc832e1b8925359d1565fedc9"
      ],
      "author": {
        "name": "Peer Chen",
        "email": "peerchen@gmail.com",
        "time": "Mon Sep 24 10:16:25 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:45 2007 -0400"
      },
      "message": "ahci: Add MCP79 support to AHCI driver\n\nSigned-off-by: Peer Chen \u003cpeerchen@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6949b9148d3656afc13a2ccc06d13c071ec71bdc",
      "tree": "fc8021205536a67e7701ad413767a412449e51f7",
      "parents": [
        "417a1a6d3d7abad4c5288135f640e6e38e7a65c5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:19:55 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:44 2007 -0400"
      },
      "message": "ahci: implement AHCI_HFLAG_NO_PMP\n\nOf course some controllers lie about PMP support.  Black list them.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "417a1a6d3d7abad4c5288135f640e6e38e7a65c5",
      "tree": "87207680dbfb4b06f6267a49fbea68a880fba894",
      "parents": [
        "7d50b60b5e38f910ad69f0187af00f5d6a8970d4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:19:55 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:44 2007 -0400"
      },
      "message": "ahci: move host flags over to pi.private_data\n\nPrivate pi.flags area is full and we need more private flags.  Move\nhost private flags over to pi.private_data.  During initialization,\nthese flags are copied to hpriv-\u003eflags.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7d50b60b5e38f910ad69f0187af00f5d6a8970d4",
      "tree": "627c57902e588ad6e7f51a2df9f2b8f091e014c0",
      "parents": [
        "238180343eff95697ed71eea137cf61ba3cea6ad"
      ],
      "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": "ahci: implement PMP support\n\nImplement AHCI PMP support.  ahci only supports command based\nswitching.  Also, for some reason, NCQ over PMP doesn\u0027t work now.\nOther than that, everything works.\n\nTested on ICH9R, JMB360/363 + SIMG3726, 4726 and 5744.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Forrest Zhao \u003cforrest.zhao@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3cc3eb1148e4b2dfabf7a1dcf36fd8be1331ca95",
      "tree": "5f987f613eb8dae6c170f97fe9acb47379902a32",
      "parents": [
        "b90fe23bd51c6b1c298159591c833bdd24f55002"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Sep 26 00:02:41 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:42 2007 -0400"
      },
      "message": "[libata] AHCI: enable AHCI mode, before using AHCI reset\n\nAHCI spec says host-reset bit may only be set when the ahci-enable bit\nis also set.\n\nNoticed by Peer Chen \u003cpeerchen@gmail.com\u003e\n\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": "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": "854c73a2f1c3bcc4aa88c25e208dc597e8efb795",
      "tree": "210569f3c4fa4f9413ceb0bc3fcf89648a9894b2",
      "parents": [
        "c78968bb0f7714ceba1cdfa23714454fc98cefdf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:11 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "libata: misc updates for AN\n\nUpdate AN support in preparation of PMP support.\n\n* s/ata_id_has_AN/ata_id_has_atapi_AN/\n* add AN enabled reporting during configuration\n* add err_mask to AN configuration failure reporting\n* update LOCKING comment for ata_scsi_media_change_notify()\n* check whether ATA dev is attached to SCSI dev ata_scsi_media_change_notify()\n* set ATA_FLAG_AN in ahci and sata_sil24\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": "d4155e6f13e931048036976d9fb47b5db53ee7a3",
      "tree": "cdcdc7161c2230cbf09339fc0979760bf90a02a5",
      "parents": [
        "d7fbee050753e153622b5d41bc8bd1cb19cda9b9"
      ],
      "author": {
        "name": "Jason Gaston",
        "email": "jason.d.gaston@intel.com",
        "time": "Thu Sep 20 17:35:00 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:39 2007 -0400"
      },
      "message": "ahci: RAID mode SATA patch for Intel Tolapai\n\nSigned-off-by: Jason Gaston \u003cjason.d.gaston@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7a234aff3d83728fd83cf19df32d3df52566d2ac",
      "tree": "d991844bf7a7882eacd72a57a1465b25dc55e95d",
      "parents": [
        "05027adccc09401a7e31d5ef51040dc75ab03c22"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Sep 03 12:44:57 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:39 2007 -0400"
      },
      "message": "ahci: reimplement port_map handling\n\nReimplement port_map handling such that\n\n1. Non-zero PORTS_IMPL value is always examined and used if consistent\n   with cap.n_ports.\n\n2. When PI and cat.n_ports are inconsistent, honor cap.n_ports and\n   force port_map to be ((1 \u003c\u003c cap.n_ports) - 1).\n\n3. There were two separate places dealing with port_map.  Unify them\n   to one.\n\nAs all newer ahci chips seem to get PI correct and older ones usually\nhave zero PI.  Controllers with holes in PI are very unlikely to screw\nup PI, so #2 makes more sense than following inconsistent PI.\n\nWithout this change, not setting ATA_FLAG_HONOR_PI when it\u0027s needed\nresults in weird detection failure.  This changed logic should be able\nto handle all known cases correctly automatically.\n\nVerified on ICH6 (reports 0 PI), ICH8 (with holes in port_map), ICH9,\nJMB360 and JMB363.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\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": "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": "a738492501eaf6e266acc53a064552b3fcc706b2",
      "tree": "8d24a2504530bf175279c294cfcac669ade575c8",
      "parents": [
        "2f2949680ad89d606db838340b17c30216c0bb0f"
      ],
      "author": {
        "name": "Kristen Carlson Accardi",
        "email": "kristen.c.accardi@intel.com",
        "time": "Thu Aug 09 14:23:41 2007 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:33 2007 -0400"
      },
      "message": "ahci: Store interrupt value\n\nUse a stored value for which interrupts to enable.  Changing this allows\nus to selectively turn off certain interrupts later and have them\nstay off.\n\nSigned-off-by:  Kristen Carlson Accardi \u003ckristen.c.accardi@intel.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": "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": "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": "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": "c69c0892d8dd68b01a9fced5cab8527f0698c15e",
      "tree": "dc8711b7893651d7157e64333f196841bf0bb89a",
      "parents": [
        "e1cc9de8361f267101402a1181cff4d3d3225a6d"
      ],
      "author": {
        "name": "henry su",
        "email": "henry.su.ati@gmail.com",
        "time": "Thu Sep 20 16:07:33 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Sep 20 16:07:33 2007 -0400"
      },
      "message": "[libata] ahci: add ATI SB800 PCI IDs\n\nATI/AMD SB800 shares some device IDs with SB700,\nand SB800 adds two more device IDs:0x4394,0x4395.\n\nSigned-off-by: henry su \u003chenry.su.ati@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "badc2341579511a247f5993865aa68379e283c5c",
      "tree": "bcdd50d27969b247d2cb459a3cfdbb686ef2e34d",
      "parents": [
        "203ef6c456ad70e660cca67921d3d872b13aa516"
      ],
      "author": {
        "name": "su henry",
        "email": "henry.su.ati@gmail.com",
        "time": "Fri Jul 20 08:07:46 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:07:46 2007 -0400"
      },
      "message": "The SATA controller device ID is different according to\nthe onchip SATA type set in the system BIOS:\nDevice                              Device ID\nSATA in IDE mode             0x4390\nSATA in AHCI mode           0x4391\nSATA in non-raid5 driver     0x4392\nSATA in raid5 driver           0x4393\n\nAlthough the device ID is different, they use the same AHCI driver\n.The attached file is the patch for adding these device\nIDs for ATI SB700.\n\nSigned-off-by: henry.su.ati@gmail.com\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "203ef6c456ad70e660cca67921d3d872b13aa516",
      "tree": "5dfcc194492f9a1d561966042c858ba705ad6786",
      "parents": [
        "274c1fde5c775a53331427d454745b9ecc5c783b"
      ],
      "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": "ahci: implement SCR_NOTIFICATION r/w\n\nMake ahci_scr_read/write() handle SCR_NOTIFICATION if the controller\nsupports it.  Also, print \"sntf\" in the cap line if supported.\n\nWhile at it, convert eight space into a tab in ahci_print_info().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "274c1fde5c775a53331427d454745b9ecc5c783b",
      "tree": "df39d94ac51195e25a04a7365ab88e2eb536d261",
      "parents": [
        "da3dbb17a0e9a9ec7f5aed95f1fddadb790edc9d"
      ],
      "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": "ahci: make NO_NCQ handling more consistent\n\nahci_save_initial_config() is responsible for reading, screening the\nhost CAP register and storing the modified result into hpriv-\u003ecap for\nthe rest of the driver.  Move ATA_FLAG_NO_NCQ handling into\nahci_save_initial_config().  It\u0027s more consistent this way and the\nrest of the driver can always refer to hpriv-\u003ecap to determine\nconfigured capability.\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": "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": "a9cf5e858100b2f82ad61028c26a1a3de11c4839",
      "tree": "3edaf851bc132d6b8e7ea6cd09eb7ca80156bde0",
      "parents": [
        "91c4a2e09267b0ddc8e59d121e3748cd18675739"
      ],
      "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:10 2007 -0400"
      },
      "message": "ahci: separate out ahci_do_softreset()\n\nSeparate out ahci_do_softreset() which takes @pmp as its last\nargument.  This will be used to implement ahci_pmp_softreset().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "91c4a2e09267b0ddc8e59d121e3748cd18675739",
      "tree": "6f4d6adfddaf88f60fd2c1c29ce1785fda52cc52",
      "parents": [
        "d2e75dfffbe9e86e1d646264792ac9bcd2cc4267"
      ],
      "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:10 2007 -0400"
      },
      "message": "ahci: separate out ahci_exec_polled_cmd()\n\nSeparate out ahci_exec_polled_cmd() from ahci_softreset().  This will\nbe used to implement ahci_pmp_read/write().  ahci_exec_polled_cmd()\nperforms reset_engine before returning if the command fails (times\nout).  This is to improve robustness.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d2e75dfffbe9e86e1d646264792ac9bcd2cc4267",
      "tree": "be742ccdbefc5ddb0db031d9fd95717d7641b950",
      "parents": [
        "2cbb79ebbd4be07041368da5379a64f89f8ad518"
      ],
      "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:10 2007 -0400"
      },
      "message": "ahci: separate out ahci_kick_engine()\n\nSeparate out stop_engine - CLO - start_engine sequence from\nahci_softreset() and ahci_clo() into ahci_reset_engine() and use it in\nahci_softreset() and ahci_post_internal_cmd().  The function will also\nbe used to prepare for and clean up after PMP register access\ncommands.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2cbb79ebbd4be07041368da5379a64f89f8ad518",
      "tree": "239d63fca15c2c3abd9f9ef5130a43f6289d0ad1",
      "parents": [
        "9977126c4b65c1396b665f7a0eeb8c7dede336f9"
      ],
      "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": "ahci: use deadline instead of fixed timeout for 1st FIS for SRST\n\nUse deadline instead of fixed timeout for 1st FIS for SRST to improve\nrobustness of SRST.\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": "028a2596336b19a7e3713cfa9fe04d0d32e95876",
      "tree": "879f9f0127a7caff7857f38593a93d344b73763e",
      "parents": [
        "3fb6589ceaf06d9c65bdf2382249d818771e913b"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Jul 17 23:48:48 2007 +0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 07:16:24 2007 -0400"
      },
      "message": "ahci.c: fix CONFIG_PM\u003dn compilation\n\nCommit df69c9c5438b4e396a64d42608b2a6c48a3e7475 moved only prototype of\nout of CONFIG_PM. Move function out as well. Box seems to boot fine.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "cd70c26617f4686355263be4533ce8030242740e",
      "tree": "20313e5c0a996b5c95ce46ba8ed796271316ef28",
      "parents": [
        "469248abf00dfa813356b372ffe153b85f27f4bf"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Jul 08 02:29:42 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:35 2007 -0400"
      },
      "message": "[libata] AHCI: Add support for Marvell AHCI-like chips (initially 6145)\n\nAdd support for the SATA portion of Marvell\u0027s AHCI-compatible chips.\nThe PATA port capability, also available via AHCI, is disabled until\nsupport is completed.\n\nNCQ and PCI MSI are disabled by default.  Marvell says \"we use NCQ\" in\ntheir drivers but \"we do not use PCI MSI.\"  Theoretically that implies\nwe need to fix ahci.c to work with Marvell NCQ, but one wonders why\nMarvell NCQ is any different from other AHCI chips.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "469248abf00dfa813356b372ffe153b85f27f4bf",
      "tree": "61d81524195c35195abc68d8cc437c93bd5036bc",
      "parents": [
        "d26fc9551a15fdad0d5de8376a78816b8af44f00"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Jul 08 01:13:16 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:35 2007 -0400"
      },
      "message": "[libata] Clean up driver udma_mask initializers\n\n* Use ATA_UDMA*\n* Remove FIXME notations that once served to remind us to verify\n  that these were indeed the correct UDMA masks.  They are.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "dab632e8c483532bd84e1f3401c72612e39a7c40",
      "tree": "43d70da1e30389457ac3cfb4f7ded5e5429fb4cc",
      "parents": [
        "ab2181cf390902f0371f30e4ebeb407b4aaa7314"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon May 28 08:33:01 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:34 2007 -0400"
      },
      "message": "[libata] ahci: minor internal cleanups\n\nMinor cleanups, in preparation for merging Marvell PATA AHCI support in\nthe future.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "df69c9c5438b4e396a64d42608b2a6c48a3e7475",
      "tree": "a96728fe0d1f2714b574c8319344c584895963d0",
      "parents": [
        "2bcd866be55f8fe259ccac8eef2b8a7f7721b1d5"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat May 26 20:46:51 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:33 2007 -0400"
      },
      "message": "[libata] ahci: minor internal cleanups\n\nFunction renaming and factorization.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2bcd866be55f8fe259ccac8eef2b8a7f7721b1d5",
      "tree": "de87ba6f172b49a9674bb13a73a24eb8634cd109",
      "parents": [
        "79b0bde157e71071320e7a723c5a669cb2c822cf"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon May 28 07:45:27 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:33 2007 -0400"
      },
      "message": "[libata] ahci: Factor out SATA port init into a separate function\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "be5d82183f1ebb022f923b008acf3b760d3a571d",
      "tree": "1520884587829c909d618695d6702e7d602447b3",
      "parents": [
        "a16abc0b5ff3ef655e40cb5e6671d57f5dde513d"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue May 22 09:45:39 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:32 2007 -0400"
      },
      "message": "use_clustering (sht) bit set to 0 in AHCI ?\n\nahci: enable sg segment clustering\n\nThe specification states that ahci supports segments up to 4MiB in size,\nso enable clustering.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "a3d2cc5e742f82a87fdf9e2b730f41ff381c0a73",
      "tree": "96dd7ab5c98198e634b9323dc4d903c9bf8548eb",
      "parents": [
        "3fae450c68d06b8890e1530bdd0910e938e7251d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Jun 19 18:52:56 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jun 20 19:56:21 2007 -0400"
      },
      "message": "ahci: fix PORTS_IMPL override\n\nIf PORTS_IMPL register is zero, ahci initialize it to full mask\ncorresponding to nr_ports in the CAP register.  hpriv-\u003ecap, which is\ninitialized at the end of the function, is incorrectly used as value\nof CAP causing ahci to always override PORTS_IMPL to 0x1 if it\u0027s zero.\nFix it.\n\nThis fixes a bug where early ich6 ahci can only access the first port.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "0522b2869d89b095bf417c8cc6fa404842e91903",
      "tree": "f093ef64e435674cc562a6b1e26343689563ded1",
      "parents": [
        "afe3cc51ba4be6b25b721c40f178ea4157751161"
      ],
      "author": {
        "name": "Peer Chen",
        "email": "peerchen@gmail.com",
        "time": "Thu Jun 07 18:05:12 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jun 09 22:40:28 2007 -0400"
      },
      "message": "ahci: Add MCP73/MCP77 support to AHCI driver\n\nAdd the MCP73/MCP77 support to ahci driver.\n\nSigned-off-by: Peer Chen \u003cpeerchen@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "8bc3fc470eb25af4d70c72485cbcb130cc657691",
      "tree": "b79e0068f46cca29a547786e5ee2cdc739386cca",
      "parents": [
        "a617c09f6d646b60f31efc8afd9f81b752bf21b7"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon May 21 20:26:38 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon May 21 20:26:38 2007 -0400"
      },
      "message": "libata: bump versions\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c7a42156d99bcea7f8173ba7a6034bbaa2ecb77c",
      "tree": "7d84ead0d69602cc900e30355ec84132800dea93",
      "parents": [
        "55b637c6a003a8c4850b41a2c2fd6942d8a7f530"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri May 18 16:23:19 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon May 21 20:00:25 2007 -0400"
      },
      "message": "ahci: disable 64bit dma on sb600\n\nSB600 claims it can do 64bit DMA but it can\u0027t.  Disable it.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3cadbcc09891b8544203f211dac13f9cc4e6832a",
      "tree": "ac85dba0648f6e2be0d057b9afca926d97e24828",
      "parents": [
        "6ddcd3b0201a7ad72294347636d2b4028ddbd95d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 03:28:15 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed May 16 01:18:31 2007 -0400"
      },
      "message": "libata-acpi: add ATA_FLAG_ACPI_SATA port flag\n\nWhether a controller needs IDE or SATA ACPI hierarchy is determined by\nthe programming interface of the controller not by whether the\ncontroller is SATA or PATA, or it supports slave device or not.  This\npatch adds ATA_FLAG_ACPI_SATA port flags which tells libata-acpi that\nthe port needs SATA ACPI nodes, and sets the flag for ahci and\nsata_sil24.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2bcfdde6767f2f07891d2753c25220012fe5e6d2",
      "tree": "9ca9b53583acbaae2bee14e95459c1fa04321596",
      "parents": [
        "823777181b4c0200923dcb026efa5b37f55c0ecf"
      ],
      "author": {
        "name": "Henry Su",
        "email": "henry.su@amd.com",
        "time": "Thu May 10 22:48:51 2007 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 11 18:16:01 2007 -0400"
      },
      "message": "add the ATI SB700 SATA controller device id to AHCI pci table\n\nAdd the device ID to AHCI pci table for ATI SB700 SATA controller, the\nsubsequent chipset of SB600.\n\nSigned-off-by: henry su\u003chenry.su@amd.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: 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": "9666f4009c22f6520ac3fb8a19c9e32ab973e828",
      "tree": "eaac13cd5890af6298e5576a48c29891f0890bd1",
      "parents": [
        "0a3fd051c7036ef71b58863f8e5da7c3dabd9d3f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri May 04 21:27:47 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 11 18:01:03 2007 -0400"
      },
      "message": "libata: reimplement suspend/resume support using sdev-\u003emanage_start_stop\n\nReimplement suspend/resume support using sdev-\u003emanage_start_stop.\n\n* Device suspend/resume is now SCSI layer\u0027s responsibility and the\n  code is simplified a lot.\n\n* DPM is dropped.  This also simplifies code a lot.  Suspend/resume\n  status is port-wide now.\n\n* ata_scsi_device_suspend/resume() and ata_dev_ready() removed.\n\n* Resume now has to wait for disk to spin up before proceeding.  I\n  couldn\u0027t find easy way out as libata is in EH waiting for the\n  disk to be ready and sd is waiting for EH to complete to issue\n  START_STOP.\n\n* sdev-\u003emanage_start_stop is set to 1 in ata_scsi_slave_config().\n  This fixes spindown on shutdown and suspend-to-disk.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9b89391cc861b8a1105551909eb66c024fe18ab2",
      "tree": "f0783823927ea013c8d58c1041ad1e1d884eed9e",
      "parents": [
        "d4b2bab4f26345ea1803feb23ea92fbe3f6b77bc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Feb 02 16:50:52 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue May 01 07:49:54 2007 -0400"
      },
      "message": "libata: improve 0xff status handling\n\nFor PATA, 0xff status indicates empty port.  For SATA, it depends on\nhow the controller emulates status register.  On some controllers,\n0xff is used to represent broken link or certain stage during reset.\n\nlibata currently deals SATA the same.  This hasn\u0027t caused any problem\nbecause problematic situations usually only occur after hotplug or\nother link disruption events and libata blindly waited for the device\nto spin up and settle after hotplug giving the link and device\nwhatever time to go through those stages.\n\nlibata is going to replace unconditional spinup wait with generic\ntimed sequence of resets, so not only getting 0xff handling right for\nSATA is, well, the right thing to do, it\u0027s much more important now.\n\nThis patch makes the following changes.\n\n* Make ata_bus_softreset() return -ENODEV if any of its wait fails\n  due to 0xff status.\n\n* Fail soft/hardreset if status wait returns -ENODEV indicating 0xff\n  status while SStatus says the link is online.  e.g. Reset fails if\n  status is 0xff after reset when SStatus reports the linke is online.\n  If SCR registers are not available, everything is the same as\n  before.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d4b2bab4f26345ea1803feb23ea92fbe3f6b77bc",
      "tree": "30a9826351e597828de2b402f1c41b9fca94cf95",
      "parents": [
        "dc87c3985e9b442c60994308a96f887579addc39"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Feb 02 16:50:52 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue May 01 07:49:53 2007 -0400"
      },
      "message": "libata: add deadline support to prereset and reset methods\n\nAdd @deadline to prereset and reset methods and make them honor it.\nata_wait_ready() which directly takes @deadline is implemented to be\nused as the wait function.  This patch is in preparation for EH timing\nimprovements.\n\n* ata_wait_ready() never does busy sleep.  It\u0027s only used from EH and\n  no wait in EH is that urgent.  This function also prints \u0027be\n  patient\u0027 message automatically after 5 secs of waiting if more than\n  3 secs is remaining till deadline.\n\n* ata_bus_post_reset() now fails with error code if any of its wait\n  fails.  This is important because earlier reset tries will have\n  shorter timeout than the spec requires.  If a device fails to\n  respond before the short timeout, reset should be retried with\n  longer timeout rather than silently ignoring the device.\n\n  There are three behavior differences.\n\n  1. Timeout is applied to both devices at once, not separately.  This\n     is more consistent with what the spec says.\n\n  2. When a device passes devchk but fails to become ready before\n     deadline.  Previouly, post_reset would just succeed and let\n     device classification remove the device.  New code fails the\n     reset thus causing reset retry.  After a few times, EH will give\n     up disabling the port.\n\n  3. When slave device passes devchk but fails to become accessible\n     (TF-wise) after reset.  Original code disables dev1 after 30s\n     timeout and continues as if the device doesn\u0027t exist, while the\n     patched code fails reset.  When this happens, new code fails\n     reset on whole port rather than proceeding with only the primary\n     device.\n\n  If the failing device is suffering transient problems, new code\n  retries reset which is a better behavior.  If the failing device is\n  actually broken, the net effect is identical to it, but not to the\n  other device sharing the channel.  In the previous code, reset would\n  have succeeded after 30s thus detecting the working one.  In the new\n  code, reset fails and whole port gets disabled.  IMO, it\u0027s a\n  pathological case anyway (broken device sharing bus with working\n  one) and doesn\u0027t really matter.\n\n* ata_bus_softreset() is changed to return error code from\n  ata_bus_post_reset().  It used to return 0 unconditionally.\n\n* Spin up waiting is to be removed and not converted to honor\n  deadline.\n\n* To be on the safe side, deadline is set to 40s for the time being.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "1188c0d83ca010c3799711e85e63dbde122e6a90",
      "tree": "dbb0705488eef68b0cce96af19ca4e6ff4aed87b",
      "parents": [
        "4f701d1e9a796a3d6657e1129bee0566d7cda916"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 23 02:41:05 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:51:33 2007 -0400"
      },
      "message": "ahci: consolidate common port flags\n\nConsolidate common port flags into AHCI_FLAG_COMMON.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "4447d35156169cf136e829eb6b5cac2d6370f2d9",
      "tree": "20be4c582ea4ce1cce1b0f8dbea949a410a72e3c",
      "parents": [
        "9a829ccfc833269bdb85751f5048288ab93678ac"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Apr 17 23:44:08 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:06 2007 -0400"
      },
      "message": "libata: convert the remaining SATA drivers to new init model\n\nConvert ahci, sata_sil, sata_sil24, sata_svw, sata_qstor, sata_mv,\nsata_sx4, sata_vsc and sata_inic162x to new init model.\n\nNow that host and ap are available during intialization, functions are\nconverted to take either host or ap instead of low level parameters\nwhich were inevitable for functions shared between init and other\npaths.  This simplifies code quite a bit.\n\n* init_one()\u0027s now follow more consistent init order\n\n* ahci_setup_port() and ahci_host_init() collapsed into\n  ahci_init_one() for init order consistency\n\n* sata_vsc uses port_info instead of setting fields manually\n\n* in sata_svw, k2_board_info converted to port_info (info is now in\n  port flags).  port number is honored now.\n\nTested on ICH7/8 AHCI, jmb360, sil3112, 3114, 3124 and 3132.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "bf33554290bb6a6b2bd8827076f89fb17fb19e3d",
      "tree": "7c6f2236daad79d2232c7ef309459ed4d02465bb",
      "parents": [
        "03ec52dea0f3c615b1b502672c189f296842f7dd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Apr 11 17:27:14 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:02 2007 -0400"
      },
      "message": "ahci: add PCI ID for new VIA chip\n\nAdd PCI ID for new VIA chip.  Original patch is from Maarten Vanraes.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Maarten Vanraes \u003cmaarten.vanraes@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c65ec1c25dc23123040efdc4ada46071431723e3",
      "tree": "7c5a6e3f1f8bf3a0a9f74520eb5c1806fba4c5c7",
      "parents": [
        "a51d644af6eb0a93bc383e5f005faa445c87f335"
      ],
      "author": {
        "name": "Conke Hu",
        "email": "conke.hu@gmail.com",
        "time": "Wed Apr 11 18:23:14 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:02 2007 -0400"
      },
      "message": "ahci.c: remove non-existing SB600 raid id (re-send)\n\n    SB600 RAID and SB600 SATA is the same controller and share the\nsame PCI ID 0x4380. There is no such PCI ID 0x4381.\n\n    Signed-off-by: Conke Hu \u003cconke.hu@gmail.com\u003e\n ---------\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "a51d644af6eb0a93bc383e5f005faa445c87f335",
      "tree": "b1392796d9766e86e7a87d57dd0f7d62e0fa0dfa",
      "parents": [
        "55a6adeea4077521b4bba1dfe674f5835157a00b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Mar 20 15:24:11 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:02 2007 -0400"
      },
      "message": "libata: improve AC_ERR_DEV handling for -\u003epost_internal_cmd\n\n-\u003epost_internal_cmd is simplified EH for internal commands.  Its\nprimary mission is to stop the controller such that no rogue memory\naccess or other activities occur after the internal command is\nreleased.  It may provide error diagnostics by setting qc-\u003eerr_mask\nbut this hasn\u0027t been a requirement.\n\nTo ignore SETXFER failure for CFA devices, libata needs to know\nwhether a command was failed by the device or for any other reason.\nie. internal command needs to get AC_ERR_DEV right.\n\nThis patch makes the following changes to AC_ERR_DEV handling and\n-\u003epost_internal_cmd semantics to accomodate this need and simplify\ncallback implementation.\n\n1. As long as the correct bits in the result TF registers are set,\n   there is no need to set AC_ERR_DEV explicitly.  libata EH core\n   takes care of that for both normal and internal commands.\n\n2. The only requirement for -\u003epost_internal_cmd() is to put the\n   controller into quiescent state.  It needs not to set any err_mask.\n\n3. ata_exec_internal_sg() performs minimal error analysis such that\n   AC_ERR_DEV is automatically set as long as result_tf is filled\n   correctly.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "17199b187b5d9a22f2ec835c9fdb38302501b918",
      "tree": "ae381abed721e382c2bb031a89acd8098e4aeb15",
      "parents": [
        "d447df140d0f07a02bd221cb42eb0b61bce16042"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Mar 18 22:26:53 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:01 2007 -0400"
      },
      "message": "ahci: move port_map handling to ahci_save_initial_config()\n\nMove cross checking between port_map and cap.n_ports into\nahci_save_initial_config().  After save_initial_config is done,\nhpriv-\u003eport_map is always setup properly.\n\nTested on JMB363, ICH7 and ICH8 (with dummy ports).\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d447df140d0f07a02bd221cb42eb0b61bce16042",
      "tree": "7ce228513178cdce89db5d93cb7bd4c04be1a771",
      "parents": [
        "ce2d3abc292c1eecd9ddc6f03391a0a46c6561dc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Mar 18 22:15:33 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:01 2007 -0400"
      },
      "message": "ahci: implement ata_save/restore_initial_config()\n\nThere are several registers which describe how the controller is\nconfigured.  These registers are sometimes implemented as r/w\nregisters which are configured by firmware and get cleared on\ncontroller reset or after suspend/resume cycle.  ahci saved and\nrestored those values inside ahci_reset_controller() which is a bit\nmessy and doesn\u0027t work over suspend/resume cycle.\n\nThis patch implements ahci_save/restore_initial_config().  The save\nfunction is called during driver initialization and saves cap and\nport_map to hpriv.  The restore function is called after the\ncontroller is reset to restore the initial values.\n\nSometimes the initial firmware values are inconsistent and need to be\nfixed up.  This is handled by ahci_save_initial_config().  For this,\nthere are two versions of saved registers.  One to write back to the\nhardware register, the other to use during driver operation.  This is\nnecessary to keep ahci\u0027s behavior unchanged (write back fixed up\nport_map while keeping cap as-is).\n\nThis patch makes ahci save the register values once before the first\ncontroller reset, not after it\u0027s been reset.  Also, the same stored\nvalues are used written back after each reset, so the register values\nare properly recovered after suspend/resume cycle.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "55a61604cd1354e1783364e1c901034f2f474b7d",
      "tree": "28c9a083fa426403f8a6fe852543ce04a6482618",
      "parents": [
        "d7d0dad62a641c156386288a747c1a2f6bb2e42d"
      ],
      "author": {
        "name": "Conke Hu",
        "email": "conke.hu@gmail.com",
        "time": "Tue Mar 27 18:33:05 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Mar 28 02:04:27 2007 -0400"
      },
      "message": "ahci.c: walkaround for SB600 SATA internal error issue\n\n   There is a HW issue in ATI SB600 SATA that PxSERR.E should not be\nset on some conditions, for example, when there is no media in SATA\nCD/DVD drive or media is not ready, AHCI controller fails to execute\nATAPI commands and reports PORT_IRQ_TF_ERR, but ATI SB600 SATA\ncontroller sets PxSERR.E at the\nsame time, which is not necessary.\n    This patch is just to ignore the INTERNAL ERROR in such case.\nWithout this patch, ahci error handler will report many errors as\nbelow:\n    ----------- cut from dmesg -----------\nata9: soft resetting port\nata9: SATA link up 1.5 Gbps (SStatus 113 SControl 300)\nata9.00: configured for UDMA/33\nata9: EH complete\nata9.00: exception Emask 0x40 SAct 0x0 SErr 0x800 action 0x2\nata9.00: (irq_stat 0x40000001)\nata9.00: cmd a0/00:00:00:00:20/00:00:00:00:00/a0 tag 0 cdb 0x0 data 0\n        res 51/24:03:00:00:20/00:00:00:00:00/a0 Emask 0x40 (internal error)\nata9: soft resetting port\nata9: SATA link up 1.5 Gbps (SStatus 113 SControl 300)\nata9.00: configured for UDMA/33\nata9: EH complete\nata9.00: exception Emask 0x40 SAct 0x0 SErr 0x800 action 0x2\nata9.00: (irq_stat 0x40000001)\nata9.00: cmd a0/01:00:00:00:00/00:00:00:00:00/a0 tag 0 cdb 0x43 data 12 in\n        res 51/24:03:00:00:00/00:00:00:00:00/a0 Emask 0x40 (internal error)\n    -------- end cut ---------\n\nSigned-off-by: Conke Hu \u003cconke.hu@amd.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "8af12cdb7c4aa9ed278ed71a8b5b130f2d8c8920",
      "tree": "9fbaacfba50d267908293d8a18d6a0cb7dd0b807",
      "parents": [
        "c3442e296517aee733d62fc3fe03211598902c7d"
      ],
      "author": {
        "name": "Jason Gaston",
        "email": "jason.d.gaston@intel.com",
        "time": "Fri Mar 02 17:39:46 2007 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Mar 06 04:04:30 2007 -0500"
      },
      "message": "ahci: RAID mode SATA patch for Intel ICH9M\n\nThis patch adds the Intel ICH9M RAID controller DID for SATA support.\n\nSigned-off-by:  Jason Gaston \u003cjason.d.gaston@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "438ac6d5e3f8106a6bd1a5682c508d660294a85d",
      "tree": "759aad55bb9850fe21709e12ca79cbdb3bf881f2",
      "parents": [
        "b23ff24436c97fb26428f3a337faf189292cc307"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Mar 02 17:31:26 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Mar 02 18:30:35 2007 -0500"
      },
      "message": "libata: add missing CONFIG_PM in LLDs\n\nAdd missing #ifdef CONFIG_PM conditionals around all PM related parts\nin libata LLDs.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "afb2d552bc4c241c009f5947311a95de426a75d9",
      "tree": "c6dc4115ca8bb7e64431af86d553328f13d289fc",
      "parents": [
        "e34bb370dec4919b7e8b769d51ad2bc2535b6982"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Feb 27 13:24:19 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Mar 01 20:19:45 2007 -0500"
      },
      "message": "ahci: improve spurious SDB FIS handling\n\nSpurious SDB FIS during NCQ might not contain spurious completions.\nIt could be spurious TF update or invalid async notification.  Treat\nas HSM violation iff a spurious SDB FIS contains spurious completions;\notherwise, just whine once about it.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e34bb370dec4919b7e8b769d51ad2bc2535b6982",
      "tree": "3fa5c0a00bfdb56a0bdf5974c0b3b61bf2ffa82c",
      "parents": [
        "5ee2ae7fb2079c5775d8802cd282140d71632a2d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Feb 26 20:24:03 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Mar 01 20:19:45 2007 -0500"
      },
      "message": "ahci/pata_jmicron: match class not function number\n\nMake jmiron_ata quirk update pdev-\u003eclass after programming the device\nand update ahci and pata_jmicron such that they match class code\ninstead of checking function number manually.  For ahci, it matches\nfor vendor and class.  For pata_jmicron, it matches vendor, device and\nclass as IDE class isn\u0027t as well defined as AHCI class.\n\nThis makes jmicron device matching more conventional and script\nfriendly.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "cb48cab7f363014e0a5dc21f7b4892c15d626d41",
      "tree": "13ac3a9a150900c1ba5cb40fce4ba4f169f00228",
      "parents": [
        "a84471fe269c38ea3725345c43ad64e5f489bea2"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Feb 26 06:04:24 2007 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Feb 26 06:04:24 2007 -0500"
      },
      "message": "[libata] bump versions\n\nBump versions based on changes submitted during 2.6.21 merge window.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "a2bbd0c923708a23c6fcc6bbc492f2eecadc676f",
      "tree": "3a425c8a8268ce1ca6ccf5fd31fb8af494596456",
      "parents": [
        "16728da99861bdb6e44f066d536287990e752d7b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Feb 21 16:34:25 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 23 05:37:10 2007 -0500"
      },
      "message": "ahci: consider SDB FIS containing spurious NCQ completions HSM violation (regenerated)\n\nSDB FIS containing spurious NCQ completions is a clear protocol\nviolation.  Currently, only some Maxtors with early firmware revisions\nare showing this problem.  Those firmwares have other NCQ related\nproblems including buggy NCQ error reporting and occasional lock up\nafter NCQ errors.\n\nConsider spurious NCQ completions HSM violation and freeze the port\nafter it.  EH will turn off NCQ after this happens several times.\nEventually drives which show this behavior should be blacklisted for\nNCQ.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "cd354f1ae75e6466a7e31b727faede57a1f89ca5",
      "tree": "09a2da1672465fefbc7fe06ff4e6084f1dd14c6b",
      "parents": [
        "3fc605a2aa38899c12180ca311f1eeb61a6d867e"
      ],
      "author": {
        "name": "Tim Schmielau",
        "email": "tim@physik3.uni-rostock.de",
        "time": "Wed Feb 14 00:33:14 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 14 08:09:54 2007 -0800"
      },
      "message": "[PATCH] remove many unneeded #includes of sched.h\n\nAfter Al Viro (finally) succeeded in removing the sched.h #include in module.h\nrecently, it makes sense again to remove other superfluous sched.h includes.\nThere are quite a lot of files which include it but don\u0027t actually need\nanything defined in there.  Presumably these includes were once needed for\nmacros that used to live in sched.h, but moved to other header files in the\ncourse of cleaning it up.\n\nTo ease the pain, this time I did not fiddle with any header files and only\nremoved #includes from .c-files, which tend to cause less trouble.\n\nCompile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,\narm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,\nallmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all\nconfigs in arch/arm/configs on arm.  I also checked that no new warnings were\nintroduced by the patch (actually, some warnings are removed that were emitted\nby unnecessarily included header files).\n\nSigned-off-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "246ce3b675843e0369643cceb4faeb6cf6d19a30",
      "tree": "b904fe7561e5eacd260d3f175a8f0c3b257598f2",
      "parents": [
        "836250069fc0eeebe8b6aed772281535cc6e34f9"
      ],
      "author": {
        "name": "Akira Iguchi",
        "email": "akira2.iguchi@toshiba.co.jp",
        "time": "Fri Jan 26 16:27:58 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:38 2007 -0500"
      },
      "message": "libata: add another IRQ calls (libata drivers)\n\nThis patch is against each libata driver.\n\nTwo IRQ calls are added in ata_port_operations.\n- irq_on() is used to enable interrupts.\n- irq_ack() is used to acknowledge a device interrupt.\n\nIn most drivers, ata_irq_on() and ata_irq_ack() are used for\nirq_on and irq_ack respectively.\n\nIn some drivers (ex: ahci, sata_sil24) which cannot use them\nas is, ata_dummy_irq_on() and ata_dummy_irq_ack() are used.\n\nSigned-off-by: Kou Ishizaki \u003ckou.ishizaki@toshiba.co.jp\u003e\nSigned-off-by: Akira Iguchi \u003cakira2.iguchi@toshiba.co.jp\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "0d5ff566779f894ca9937231a181eb31e4adff0e",
      "tree": "d1c7495c932581c1d41aa7f0fdb303348da49106",
      "parents": [
        "1a68ff13c8a9b517de3fd4187dc525412a6eba1b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Feb 01 15:06:36 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:38 2007 -0500"
      },
      "message": "libata: convert to iomap\n\nConvert libata core layer and LLDs to use iomap.\n\n* managed iomap is used.  Pointer to pcim_iomap_table() is cached at\n  host-\u003eiomap and used through out LLDs.  This basically replaces\n  host-\u003emmio_base.\n\n* if possible, pcim_iomap_regions() is used\n\nMost iomap operation conversions are taken from Jeff Garzik\n\u003cjgarzik@pobox.com\u003e\u0027s iomap branch.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "24dc5f33ea4b504cfbd23fa159a4cacba8e4d800",
      "tree": "d76de456157f555c9a65b83f426fd805fee1e846",
      "parents": [
        "f0d36efdc624beb3d9e29b9ab9e9537bf0f25d5b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Jan 20 16:00:28 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:37 2007 -0500"
      },
      "message": "libata: update libata LLDs to use devres\n\nUpdate libata LLDs to use devres.  Core layer is already converted to\nsupport managed LLDs.  This patch simplifies initialization and fixes\nmany resource related bugs in init failure and detach path.  For\nexample, all converted drivers now handle ata_device_add() failure\ngracefully without excessive resource rollback code.\n\nAs most resources are released automatically on driver detach, many\ndrivers don\u0027t need or can do with much simpler -\u003e{port|host}_stop().\nIn general, stop callbacks are need iff port or host needs to be given\ncommands to shut it down.  Note that freezing is enough in many cases\nand ports are automatically frozen before being detached.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f0d36efdc624beb3d9e29b9ab9e9537bf0f25d5b",
      "tree": "eac4efb465aa682d6eaac61f76b3174ffd9fd8cd",
      "parents": [
        "0529c159dbdd79794796c1b50b39442d72efbe97"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Jan 20 16:00:28 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:37 2007 -0500"
      },
      "message": "libata: update libata core layer to use devres\n\nUpdate libata core layer to use devres.\n\n* ata_device_add() acquires all resources in managed mode.\n\n* ata_host is allocated as devres associated with ata_host_release.\n\n* Port attached status is handled as devres associated with\n  ata_host_attach_release().\n\n* Initialization failure and host removal is handedl by releasing\n  devres group.\n\n* Except for ata_scsi_release() removal, LLD interface remains the\n  same.  Some functions use hacky is_managed test to support both\n  managed and unmanaged devices.  These will go away once all LLDs are\n  updated to use devres.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "0529c159dbdd79794796c1b50b39442d72efbe97",
      "tree": "417e2285c048ca582ba6e1f40119930c460250ad",
      "parents": [
        "9ac7849e35f705830f7b016ff272b0ff1f7ff759"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Jan 20 16:00:26 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:37 2007 -0500"
      },
      "message": "libata: implement ata_host_detach()\n\nImplement ata_host_detach() which calls ata_port_detach() for each\nport in the host and export it.  ata_port_detach() is now internal and\nthus un-exported.  ata_host_detach() will be used as the \u0027deregister\nfrom libata layer\u0027 function after devres conversion.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "553c4aa630af7bc885e056d0436e4eb7f238579b",
      "tree": "5a6cf3b15e05309fcfbdb5f68471e2a20b235613",
      "parents": [
        "8bfa79fcb81d2bdb043f60ab4171704467808b55"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Dec 26 19:39:50 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:30 2007 -0500"
      },
      "message": "libata: handle pci_enable_device() failure while resuming\n\nHandle pci_enable_device() failure while resuming.  This patch kills\nthe \"ignoring return value of \u0027pci_enable_device\u0027\" warning message and\npropagates __must_check through ata_pci_device_do_resume().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "904dbd1307100edc12e2f98dd12b2338f1914f5b",
      "tree": "ee76372ee2541c1cb739f1043793e2015184c287",
      "parents": [
        "4112e16a7c606a80810d22d55bfc742eaa61fecb"
      ],
      "author": {
        "name": "Alan",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Jan 08 12:07:25 2007 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:30 2007 -0500"
      },
      "message": "ahci: Remove jmicron fixup\n\nThe AHCI set up is handled properly along with the other bits in the\nJMICRON quirk. Remove the code whacking it in ahci.c as its un-needed and\nalso blindly fiddles with bits it doesn\u0027t own.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c9f89475a5b184e9a6077b995ce340e6804c1b1a",
      "tree": "de0b8eb7c7d514cbc14339705ef278bdb72ac90f",
      "parents": [
        "95006188cb1399f1358330503906e5891c129a10"
      ],
      "author": {
        "name": "Conke Hu",
        "email": "conke.hu@amd.com",
        "time": "Tue Jan 09 05:32:51 2007 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:29 2007 -0500"
      },
      "message": "Add pci class code for SATA \u0026 AHCI, and replace some magic numbers.\n\nSigned-off-by: Conke Hu \u003cconke.hu@amd.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "04d4f7a1143e4fb291cd1584c9ac8de4ba584d34",
      "tree": "396b6f77b84355243b8d4b48be9925fb3986fa52",
      "parents": [
        "92ccc5f7558f24edf7129a24a8e2ce338009b0dd"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Feb 09 16:39:30 2007 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 09 09:14:07 2007 -0800"
      },
      "message": "[PATCH] ahci: trivial endianness annotations\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a718728f9e40ec79c0879ec6509a54fee214f5b2",
      "tree": "547885a7f46380d10c6ebdcf16cac96d36d6991d",
      "parents": [
        "7d620a4e531ae4d432d3c88f7d4b75327d881a87"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Jan 27 11:04:26 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jan 27 02:50:36 2007 -0500"
      },
      "message": "ahci: port_no should be used when clearing IRQ in ahci_thaw()\n\nap-\u003eid is logcial port ID which is unique among all ATA ports and\ndoesn\u0027t have anything to do with hardware port index.  ap-\u003eport_no is\nthe hardware port index and thus should be used when clearing IRQ mask\nin ahci_thaw().\n\nThis problem has been spotted by Jeff Garzik \u003cjgarzik@pobox.com\u003e.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "dfd7a3db3898e299bdc25f0c77081a8632b3a73c",
      "tree": "d8e10936d9a40e8b5d0ac86461b0b760e98c6367",
      "parents": [
        "d02598721706ab62a574823479b1f6c26c8980d2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Jan 26 15:37:20 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jan 26 17:24:07 2007 -0500"
      },
      "message": "ahci: use 0x80 as wait stat value instead of 0xff\n\nBefore hardreset, ahci initialized stat part of received FIS area to\n0xff to wait for the first D2H Reg FIS which would change the value to\ndevice ready state.  This used to work but now libata considers status\nvalue of 0xff as device not present making this wait prone to failure.\n\nThis patch makes ahci use 0x80 for the wait stat value instead of\n0xff to fix the above problem.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n\n drivers/ata/ahci.c |    2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6096b63e2584796341baf7e7735f98d387f489f2",
      "tree": "b8595dbc564b166b9594c0082682b1ca27f4e828",
      "parents": [
        "61dd08c6c8d2b4ede530e43c01fa72f789ef65b1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Jan 26 14:47:38 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jan 26 17:24:07 2007 -0500"
      },
      "message": "ahci: fix endianness in spurious interrupt message\n\nFix endianness in spurious interrupt message.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "0291f95fdb5fcd91cc077aafabea2c5b109fa8a8",
      "tree": "c7d92de1788b8939fd8a810d5e96d5954d28a562",
      "parents": [
        "17234246eb82898cf98e3c29e81d941c738e0587"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jan 25 19:16:28 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Jan 25 17:22:47 2007 -0500"
      },
      "message": "ahci: improve and limit spurious interrupt messages, take#3\n\nWe\u0027re still seeing a lot of issues with NCQ implementation in drive\nfirmwares.  Sprious FISes during NCQ command phase occur on many\ndrives and some of them seem potentially dangerous (at least to me).\nUntil we find the solution, spurious messages can give us more info.\nImprove and limit them such that more info can be reported while not\ndisturbing users too much.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "07c53dac4904206a50dd7c87adabbb1acff903fb",
      "tree": "09fb7d1b53b4e6b5aabf05139ca8fff866e7e8d0",
      "parents": [
        "f740d1689d91415cfc749d17138a11ed03b7d38b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Jan 21 02:10:11 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 24 02:03:45 2007 -0500"
      },
      "message": "ahci: don\u0027t enter slumber on power down\n\nSome ATA/ATAPI devices act weirdly after the link is put into slumber\nmode.  Some hang completely requiring physical power removal while\nothers fail to wake up till the link is hardreset a couple of times.\n\nThe addition of slumber on power down was never driven by real need.\nIt just followed what ahci spec said literally.  The spec itself seems\nfaulty in that it doesn\u0027t consider devices (not controllers) which\ndon\u0027t support link powersaving mode.\n\nTheory never matches reality when it comes to dark allys of cheap\nATA/ATAPI world.  It\u0027s just unrealistic to expect vendors to test\nrarely used link powersaving feature rigorously.  This patch makes\nahci more friendly to the coldness of reality.\n\nThis shouldn\u0027t have any negative effect - when suspend operation\nsucceeds, we power off the whole machine; otherwise, we wake up\neverything.  I can\u0027t see any reason to be so elaborate with powering\ndown the link in the first place.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "82490c0937cb455e7e4150455ff52e89a9fc5ab8",
      "tree": "91b5ed3c9d10a08764bd221b58acd059ec1aa034",
      "parents": [
        "419dd8378dfa32985672ab7927b4bc827f33b332"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Jan 23 15:13:39 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 24 01:57:30 2007 -0500"
      },
      "message": "ahci: make ULi M5288 ignore interface fatal error bit\n\nAs with JMicron controllers, ULi M5288 sets interface fatal error bit\non device error including ATAPI CC.  This makes libata hardreset the\nport on ATAPI CC thus making it impossible to use.  Ignore interface\nfatal error bit on ULi M5288.  This fixes bugzilla bug #7837.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6fbf5ba461f5bd36e921627568aca20abc0e2abe",
      "tree": "cc2facc5ca1d96f1961bed551cbda434d6fd25d8",
      "parents": [
        "73720861d211e2b23c3026c6adea6f758676c46f"
      ],
      "author": {
        "name": "Peer Chen",
        "email": "pchen@nvidia.com",
        "time": "Wed Dec 20 14:18:00 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Dec 20 14:18:00 2006 -0500"
      },
      "message": "[libata] Move some PCI IDs from sata_nv to ahci\n\nThe content of memory map io of BAR5 have been change from MCP65 then\nsata_nv can\u0027t work fine on the platform based on MCP65 and MCP67, so move\ntheir IDs from sata_nv.c to ahci.c.\n\nSigned-off-by: Peer Chen \u003cpchen@nvidia.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "551c012d7eea3dc5ec063c7ff9c718d39e77634f",
      "tree": "244c89c1e0d6878a036fde806f080bf8885c661b",
      "parents": [
        "33480a0ede8dcc7e6483054279008f972bd56fd3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Dec 12 20:17:32 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Dec 16 10:13:29 2006 -0500"
      },
      "message": "[PATCH] ahci: do not mangle saved HOST_CAP while resetting controller\n\nDo not mangle with HOST_CAP while resetting controller.  The code is\nthere for a historical reason.  The mangling breaks controller feature\ndetection and 0 PORTS_IMPL workaround code.\n\nThis problem was spotted by Manoj Kasichainula.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Manoj Kasichainula \u003cmanoj@io.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "8e16f941226f15622fbbc416a1f3d8705001a191",
      "tree": "97bf87ebff9e3e69caa0a0ebdd9ee9291c5dfac5",
      "parents": [
        "70e6ad0c6d1e6cb9ee3c036a85ca2561eb1fd766"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Nov 20 15:42:36 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Dec 03 17:56:29 2006 +0900"
      },
      "message": "[PATCH] ahci: do not powerdown during initialization\n\nahci_init_controller() calls ahci_deinit_port() to make sure the\ncontroller is stopped before initializing the controller.  In turn,\nahci_deinit_port() invokes ahci_power_down() to power down the port.\nIf the controller supports slumber mode, the link is put into it.\n\nUnfortunately, some devices don\u0027t implement link powersaving mode\nproperly and show erratic behavior after link is put into slumber\nmode.  For example, HL-DT-ST DVD-RAM GSA-H30N completely locks up on\nslumber transition and can only be recovered with the *REAL* hard\nreset - power removal and reapply.\n\nNote that this makes the first probing reset different from all\nothers.  If the above dvd-ram is hotplugged after ahci is initialized,\nno problem occurs because ahci is already fully initialized with phy\npowered up.  So, this might also be the reason for other weird AHCI\ninitial probing abnormalities.\n\nThis patch moves power up/down out of port init/deinit and call them\nonly when needed.\n\nPower down is now called only when suspending.  As system suspend\nusually involves powering down 12v for storage devices, this shouldn\u0027t\ncause problem even if the attached device doesn\u0027t support slumber\nmode.  However, in partial power management and suspend failure cases,\ndevices might lock up after suspend attempt.  I thought about removing\ntransition to slumber mode altogether but ahci spec mandates it before\nHBA D3 state transition.  Blacklisting such devices might be the\nsolution.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "648a88be4a016d2637ace3ae74b85a0512255ee8",
      "tree": "fb4143ad12f506aa82d3c6e39cec790414d902f1",
      "parents": [
        "0df0d0a0ea9ffcee4e56f96cd9d9e32b0644eb21"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Nov 09 15:08:40 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:44:53 2006 -0500"
      },
      "message": "[PATCH] ahci: honor PORTS_IMPL on ICH8s\n\nSome ICH8s use non-linear port mapping.  ahci driver didn\u0027t use to\nhonor PORTS_IMPL and this made ports after hole nonfunctional.  This\npatch makes ahci mark those ports as dummy and properly initialize all\nthe implemented ports after the dummies.\n\nAs it\u0027s unknown whether other AHCIs implement PORTS_IMPL register\nproperly, new board id board_ahci_pi is added and selectively applied\nto ICH8s.  All other AHCIs continue to use linear mapping regardless\nof PORTS_IMPL value.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Robin H. Johnson \u003crobbat2@gentoo.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "98fa4b60c673526fdd478d9719e41cd9e2b84986",
      "tree": "696cb1f0d19bbda6dc9030eb11e4b2754472dfaa",
      "parents": [
        "ada406c8246b0792afe4d7f8ae7606093052de87"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Nov 02 12:17:23 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:41:31 2006 -0500"
      },
      "message": "[PATCH] ahci: preserve PORTS_IMPL over host resets\n\nInstead of writing 0xf blindly, preserve the content of write-once\nPORTS_IMPL register over host resets.\n\nThis patch is taken from Jeff Garzik\u0027s AHCI init update patch.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "415ae2b5c03b6ed1a041a473885e502d297e1d37",
      "tree": "e387f720777cc691c9a67d619e44a2f8aa1a1991",
      "parents": [
        "914ed354b373680b648d913161cca6f742f32791"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Nov 01 05:10:42 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:41:31 2006 -0500"
      },
      "message": "[libata] ahci: Match PCI class code for AHCI\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "ad616ffbda8caf3ce76d2b43027e789d732abf48",
      "tree": "bcfccbde197833dd4062564793e8a17ff45837cc",
      "parents": [
        "b6103f6d1659e2024776bc759d28613fb36344a8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Nov 01 18:00:24 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:41:30 2006 -0500"
      },
      "message": "[PATCH] ahci: update ahci-vt8251 reset sequence\n\nahci-vt8251\n\n* requires hardreset after PHY status change\n\n* doesn\u0027t clear BSY on signature FIS after hardreset\n\n* needs SError cleared for the port to operate after hardreset\n\nThis patch implements ahci_vt8251_hardreset() and sets\nATA_FLAG_HRST_TO_RESUME to handle the above behaviors.  This fixes EH\nincluding hotplug on vt8251.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "4aeb0e3283351351a5381a495ea24537f3bc21cb",
      "tree": "a31b2f054467f5703209467c9766b77799f9ef47",
      "parents": [
        "c0c559083a084f9a19443d522b7d95a33701505a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Nov 01 17:58:33 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:41:29 2006 -0500"
      },
      "message": "[PATCH] ahci: kill AHCI_FLAG_RESET_NEEDS_CLO\n\nNow that ahci_softreset() is fixed to automatically perform CLO if\nBSY/DRQ is set on entry, AHCI_FLAG_RESET_NEEDS_CLO is redundant.  Kill\nit.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "41669553353554211310cdb23079d58af1fda41e",
      "tree": "2aace00509badc17ad432fa5e2b83f56b6d7453e",
      "parents": [
        "08475a1920aa7acc535324d6991b830fa7625bd8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Nov 29 11:33:14 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Nov 29 14:57:44 2006 +0900"
      },
      "message": "[PATCH] ahci: ignore PORT_IRQ_IF_ERR on JMB controllers\n\nJMicron AHCI controllers set PORT_IRQ_IF_ERR on device errors.  The\nIRQ status bit indicates interface error or protocol mismatch and ahci\ndriver interprets it into AC_ERR_ATA_BUS.  So, whenever an ATAPI\ndevice raises check condition, ahci interprets it as ATA bus error and\nthus resets it which, in turn, raises check condition thus creating a\nreset loop and rendering the device unuseable.\n\nThis patch makes JMB controllers ignore PORT_IRQ_IF_ERR when\ninterpreting error condition.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Justin Tsai \u003cjustin@jmicron.com\u003e\n"
    },
    {
      "commit": "f33d625f40e3b803c4cdea3219abb96cabf5ea03",
      "tree": "8e3acf50708c8859a8bfe3220008fc86092255c1",
      "parents": [
        "c31f571d9f42fa2e89148811730fe3dc64943a6e"
      ],
      "author": {
        "name": "Jason Gaston",
        "email": "jason.d.gaston@intel.com",
        "time": "Tue Nov 21 16:55:58 2006 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Nov 28 03:45:13 2006 -0500"
      },
      "message": "[PATCH] ahci: AHCI mode SATA patch for Intel ICH9\n\nThis patch adds the Intel ICH9 AHCI controller DID\u0027s for SATA support.\n\nSigned-off-by:  Jason Gaston \u003cjason.d.gaston@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "895663cd92574367054e0eb604a7428852f359b8",
      "tree": "fa55d0407877cb1187be13300a0fb20187cdf6fc",
      "parents": [
        "05e2867a7bcc76de37e103a97ed48ba6872db797"
      ],
      "author": {
        "name": "Peer Chen",
        "email": "pchen@nvidia.com",
        "time": "Thu Nov 02 17:59:46 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Nov 02 17:59:46 2006 -0500"
      },
      "message": "[libata] Add support for AHCI controllers of MCP67.\n\nSigned-off-by: Peer Chen \u003cpchen@nvidia.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "1244a19cde42c268aa159d264fc2df072a3ff82f",
      "tree": "8ec73ccd9bc59b221d8bd9b315656ad3b521cfb6",
      "parents": [
        "30574b61611ccd29677989097f8c8a5d9a73d873"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Nov 01 17:19:18 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Nov 01 04:20:45 2006 -0500"
      },
      "message": "[PATCH] ahci: fix status register check in ahci_softreset\n\nahci_softreset() used to use ahci_tf_read() which reads D2H_REG area\nto check for the Status register.  However, this area is zeroed on\ninitialization and not set by initial signature FIS.  Replace it with\nahci_check_status().\n\nThis bug prevented CLO code from being activated whenever BSY and/or\nDRQ is set prior to softreset.  This fix makes\nAHCI_FLAG_RESET_NEEDS_CLO flag redundant.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "12a87d36b3c5cb76a182c35f40d959a615d1c862",
      "tree": "399eec23ec54f27b94f70831f978ae54933336a1",
      "parents": [
        "3343571d9f88a0de542d33aea9ab881f00ff866d"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Oct 16 16:21:40 2006 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Oct 21 15:18:59 2006 -0400"
      },
      "message": "[PATCH] ahci: readability tweak\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7d12e780e003f93433d49ce78cfedf4b4c52adc5",
      "tree": "6748550400445c11a306b132009f3001e3525df8",
      "parents": [
        "da482792a6d1a3fbaaa25fae867b343fb4db3246"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Oct 05 14:55:46 2006 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Thu Oct 05 15:10:12 2006 +0100"
      },
      "message": "IRQ: Maintain regs pointer globally rather than passing to IRQ handlers\n\nMaintain a per-CPU global \"struct pt_regs *\" variable which can be used instead\nof passing regs around manually through all ~1800 interrupt handlers in the\nLinux kernel.\n\nThe regs pointer is used in few places, but it potentially costs both stack\nspace and code to pass it around.  On the FRV arch, removing the regs parameter\nfrom all the genirq function results in a 20% speed up of the IRQ exit path\n(ie: from leaving timer_interrupt() to leaving do_IRQ()).\n\nWhere appropriate, an arch may override the generic storage facility and do\nsomething different with the variable.  On FRV, for instance, the address is\nmaintained in GR28 at all times inside the kernel as part of general exception\nhandling.\n\nHaving looked over the code, it appears that the parameter may be handed down\nthrough up to twenty or so layers of functions.  Consider a USB character\ndevice attached to a USB hub, attached to a USB controller that posts its\ninterrupts through a cascaded auxiliary interrupt controller.  A character\ndevice driver may want to pass regs to the sysrq handler through the input\nlayer which adds another few layers of parameter passing.\n\nI\u0027ve build this code with allyesconfig for x86_64 and i386.  I\u0027ve runtested the\nmain part of the code on FRV and i386, though I can\u0027t test most of the drivers.\nI\u0027ve also done partial conversion for powerpc and MIPS - these at least compile\nwith minimal configurations.\n\nThis will affect all archs.  Mostly the changes should be relatively easy.\nTake do_IRQ(), store the regs pointer at the beginning, saving the old one:\n\n\tstruct pt_regs *old_regs \u003d set_irq_regs(regs);\n\nAnd put the old one back at the end:\n\n\tset_irq_regs(old_regs);\n\nDon\u0027t pass regs through to generic_handle_irq() or __do_IRQ().\n\nIn timer_interrupt(), this sort of change will be necessary:\n\n\t-\tupdate_process_times(user_mode(regs));\n\t-\tprofile_tick(CPU_PROFILING, regs);\n\t+\tupdate_process_times(user_mode(get_irq_regs()));\n\t+\tprofile_tick(CPU_PROFILING);\n\nI\u0027d like to move update_process_times()\u0027s use of get_irq_regs() into itself,\nexcept that i386, alone of the archs, uses something other than user_mode().\n\nSome notes on the interrupt handling in the drivers:\n\n (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in\n     the input_dev struct.\n\n (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does\n     something different depending on whether it\u0027s been supplied with a regs\n     pointer or not.\n\n (*) Various IRQ handler function pointers have been moved to type\n     irq_handler_t.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n(cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)\n"
    },
    {
      "commit": "54bb3a94b192be09feb85993b664ff118d6433d0",
      "tree": "a0d782e482cf145d825c44de61e90c7067e719fc",
      "parents": [
        "3b9f6cb8a1ec791be79c6c7595fea922f12d1e64"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Sep 27 22:20:11 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Sep 27 22:20:11 2006 -0400"
      },
      "message": "[libata] Use new PCI_VDEVICE() macro to dramatically shorten ID lists\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9bec2e38527a9f2497b3d976715c672d08d6160d",
      "tree": "b081189d1beca3a81ade7209c131977cd8f23f3b",
      "parents": [
        "b01e86fee6c821e4e003fd4e9f65453ac478a58e"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 31 00:02:15 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 31 00:02:15 2006 -0400"
      },
      "message": "[libata] Trim trailing whitespace.\n"
    },
    {
      "commit": "cca3974e48607c3775dc73b544a5700b2e37c21a",
      "tree": "0777d6121ba199af0aad196eb5a693510ec8e62e",
      "parents": [
        "54a86bfc3d4601be9c36cd4e8a1bdc580c98fa6a"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 24 03:19:22 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 24 03:19:22 2006 -0400"
      },
      "message": "libata: Grand renaming.\n\nThe biggest change is that ata_host_set is renamed to ata_host.\n\n* ata_host_set\t\t\t\u003d\u003e ata_host\n* ata_probe_ent-\u003ehost_flags\t\u003d\u003e ata_probe_ent-\u003eport_flags\n* ata_probe_ent-\u003ehost_set_flags\t\u003d\u003e ata_probe_ent-\u003e_host_flags\n* ata_host_stats\t\t\u003d\u003e ata_port_stats\n* ata_port-\u003ehost\t\t\u003d\u003e ata_port-\u003escsi_host\n* ata_port-\u003ehost_set\t\t\u003d\u003e ata_port-\u003ehost\n* ata_port_info-\u003ehost_flags\t\u003d\u003e ata_port_info-\u003eflags\n* ata_(.*)host_set(.*)\\(\\)\t\u003d\u003e ata_\\1host\\2()\n\nThe leading underscore in ata_probe_ent-\u003e_host_flags is to avoid\nreusing -\u003ehost_flags for different purpose.  Currently, the only user\nof the field is libata-bmdma.c and probe_ent itself is scheduled to be\nremoved.\n\nata_port-\u003ehost is reused for different purpose but this field is used\ninside libata core proper and of different type.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c6fd280766a050b13360d7c2d59a3d6bd3a27d9a",
      "tree": "fdbeab639bc3dec29267bbf4b32cff7c8dd03593",
      "parents": [
        "79ed35a9f139ad2b2653dfdd5f45a8f1453e2cbb"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 10 07:31:37 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 10 07:31:37 2006 -0400"
      },
      "message": "Move libata to drivers/ata.\n"
    },
    {
      "commit": "b7887196e38da54ff893897b80875d632d1a1114",
      "tree": "6cba2112e9058fc67f30edab5baa0fc606b61115",
      "parents": [
        "4852ba24f647199be797545226c6d325db231937"
      ],
      "author": {
        "name": "Pavel Roskin",
        "email": "proski@gnu.org",
        "time": "Thu Aug 10 18:13:18 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Aug 10 18:13:18 2006 +0900"
      },
      "message": "[PATCH] libata: replace pci_module_init() with pci_register_driver()\n\nReplace pci_module_init() with pci_register_driver().\n\nSigned-off-by: Pavel Roskin \u003cproski@gnu.org\u003e\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "f4b5cc874158a139c091b3decd468929e10645e6",
      "tree": "0ab440ace3cd35ff202e9ee9e3f00e79b91c86c6",
      "parents": [
        "80289167fd3ebaeb7b2641e69cbec44b61165fe7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 07 11:39:04 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Aug 09 00:13:28 2006 -0400"
      },
      "message": "[PATCH] ahci: remove IRQ mask clearing from init_controller()\n\nInitial IRQ mask clearing is done by libata-core by freezing all ports\nprior to requesting IRQ.  Remove redundant IRQ clearing from\ninit_controller().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    }
  ],
  "next": "36a2c6b28003dd0592b8ece5e9409991e0820f50"
}
