)]}'
{
  "log": [
    {
      "commit": "6f1d1e3a03fd04a9d9c82fd3cf414020097bb142",
      "tree": "ceb7917e7ca056c2884ef9dd2a239945ad45724c",
      "parents": [
        "02c05a27e884c9655dae5b1c8bc0cd89c060c43d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 27 19:28:55 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:10 2008 -0500"
      },
      "message": "libata: move ata_set_mode() to libata-eh.c\n\nMove ata_set_mode() to libata-eh.c.  ata_set_mode() is surely an EH\naction and will be more tightly coupled with the rest of error\nhandling.  Move it to libata-eh.c.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "bd3adca52bc43b72c75db3e4c7809d47923b154c",
      "tree": "ec42456926e50a4b0adf916ac1c5f39f76e057f8",
      "parents": [
        "ae8d4ee7ff429136c8b482c3b38ed994c021d3fc"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Fri Nov 02 09:32:38 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:09 2008 -0500"
      },
      "message": "libata-acpi: add ACPI _PSx method\n\nACPI spec (ver 3.0a, p289) requires IDE power on/off executes ACPI _PSx\nmethods. As recently most PATA drivers use libata, this patch adds _PSx\nmethod support in libata. ACPI spec doesn\u0027t mention if SATA requires the\nsame _PSx method.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nAcked-by: Len Brown \u003clen.brown@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "ae8d4ee7ff429136c8b482c3b38ed994c021d3fc",
      "tree": "bf45047ab8a4f5325c6b752be02313d3112eded0",
      "parents": [
        "ffe188dd83e84119516688c822388c8f30a54877"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Sun Nov 04 22:05:49 2007 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:09 2008 -0500"
      },
      "message": "libata: Disable ATA8-ACS proposed Trusted Computing features by default\n\nHistorically word 48 in the identify data was used to mean 32bit I/O\nwas supported for VLB IDE etc. ATA8 reassigns this word to the Trusted\nComputing Group, where it is used for TCG features. This means that\nan ATA8 TCG drive is going to trigger 32bit I/O on some systems which\nwill be funny.\n\nAnyway we need to sort this out ready for ATA8 so:\n- Reorder the ata.h header a bit so the ata_version function occurs early\n  in it\n- Make dword_io check the ATA version\n- Add an ATA8 version checking TCG presence test\n\nWhile we are at it the current drafts have a flaw where it may not be\npossible to disable TCG features at boot (and opt out of the trusted\nmodel) as TCG intends because it relies on presence of a different\noptional feature (DCS). Handle this in software by refusing the TCG\ncommands if libata.allow_tpm is not set. (We must make it possible\nas some environments such as proprietary VDR devices will doubtless\nwant to use it to lock up content)\n\nFinally as with CPRM print a warning so that the user knows they may\nnot be able to full access and use the device.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\n"
    },
    {
      "commit": "562f0c2d771ee7be6b37fe015f94a929f8056120",
      "tree": "17d1616b39894564f70255bd68eec5c19ebf0473",
      "parents": [
        "7f9ad9b8b96855f529f4fe9db0bf32cd3f14c01b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Dec 15 15:05:01 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Dec 17 20:33:12 2007 -0500"
      },
      "message": "libata-acpi: add new hooks ata_acpi_dissociate() and ata_acpi_on_disable()\n\nAdd two hooks - ata_acpi_dissociate() which is called during driver\ndetach after the whole host is shutdown and ata_acpi_on_disable()\nwhich is called when a device is disabled.\n\nSigned-off-by: Tejun heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "ca77329fb713b7fea6a307068e0dd0248e7aa640",
      "tree": "6a1b987f489d7c3f0bbe81647b4ee2b0216afe8a",
      "parents": [
        "ab6fc95f609b372a19e18ea689986846ab1ba29c"
      ],
      "author": {
        "name": "Kristen Carlson Accardi",
        "email": "kristen.c.accardi@intel.com",
        "time": "Thu Oct 25 00:58:59 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Oct 29 11:00:35 2007 -0400"
      },
      "message": "[libata] Link power management infrastructure\n\nDevice Initiated Power Management, which is defined\nin SATA 2.5 can be enabled for disks which support it.\nThis patch enables DIPM when the user sets the link\npower management policy to \"min_power\".\n\nAdditionally, libata drivers can define a function\n(enable_pm) that will perform hardware specific actions to\nenable whatever power management policy the user set up\nfor Host Initiated Power management (HIPM).\nThis power management policy will be activated after all\ndisks have been enumerated and intialized.  Drivers should\nalso define disable_pm, which will turn off link power\nmanagement, but not change link power management policy.\n\nDocumentation/scsi/link_power_management_policy.txt has additional\ninformation.\n\nSigned-off-by:  Kristen Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "2b789108fc1dcba22050a7e6e29ae5ebaea427dd",
      "tree": "1c241e249c388d956ad9771efacfd827a24ec41e",
      "parents": [
        "5f226c6bf78edab023ed1ea679531731d9df92a6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Oct 09 15:05:44 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:47 2007 -0400"
      },
      "message": "libata: add @timeout to ata_exec_internal[_sg]()\n\nAdd @timeout argument to ata_exec_internal[_sg]().  If 0, default\ntimeout ata_probe_timeout is used.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d0df8b5d0fb547a3351c2a4b1ded7f7cde5d713a",
      "tree": "a2005ec3be6e493844b092edeca9306fbc70f4b8",
      "parents": [
        "633273a3ed1cf37ced90475b0f95cf81deab04f1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:19:54 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:44 2007 -0400"
      },
      "message": "libata-pmp: extend ACPI support to cover PMP\n\nExtend ata_acpi_associate_sata_port() such that it can handle PMP and\ncall it when PMP is attached and detached.\n\nBuild breakage when !CONFIG_ATA_ACPI was spotted and fixed by Petr\nVandrovec.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Petr Vandrovec \u003cpetr@vandrovec.name\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "633273a3ed1cf37ced90475b0f95cf81deab04f1",
      "tree": "5cd42191d1ea8d5ee84fb2f7c7660f124787d9e8",
      "parents": [
        "3af9a77af9e2b72366363864bfcd3d51465ff98a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:19:54 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:44 2007 -0400"
      },
      "message": "libata-pmp: hook PMP support and enable it\n\nHook PMP support into libata and enable it.  Connect SCR and probing\nfunctions, and update ata_dev_classify() to detect PMP.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3af9a77af9e2b72366363864bfcd3d51465ff98a",
      "tree": "f6a311a56353cf81d34d64cf1a3f86aa6f659246",
      "parents": [
        "3495de733633d24ee97852080b737b436c110d6e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:19:54 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:44 2007 -0400"
      },
      "message": "libata-pmp: implement Port Multiplier support\n\nImplement Port Multiplier support.  To support PMP, a LLDD has to\nsupply ops-\u003epmp_read() and pmp_write().  If non-null, -\u003epmp_attach and\n-\u003epmp_detach are called on PMP attach and detach, respectively.\n\n-\u003epmp_read/write() can be called while the port is frozen, so they\nmust be implemented by polling.  This patch supplies several helpers\nto ease -\u003epmp_read/write() implementation.\n\nAlso, irq_handler and error_handler must be PMP aware.  Most of PMP\naware EH can be done by calling ata_pmp_do_eh() with appropriate\nmethods.  PMP EH uses separate set of reset methods and this patch\nimplements standard prereset, hardreset and postreset methods.\n\nThis patch only implements PMP support.  The next patch will integrate\nPMP into the reset of libata and thus enable PMP support.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "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": "fb7fd61454c8681cd2621051a710b78a00369203",
      "tree": "491cbdbca867f59b9f1cb1032a4f40a33385e471",
      "parents": [
        "422c9daa8b5bea09f3393b11a106afd68850b39b"
      ],
      "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: make a number of functions global to libata\n\nMake a number of functions from libata-core.c and libata-eh.c global\nto libata (drivers/ata/libata.h).  These 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": "422c9daa8b5bea09f3393b11a106afd68850b39b",
      "tree": "76a4d15d77a26c049ca80ae850473b83df47d332",
      "parents": [
        "e0a7175263db4a226558883a51a88a5d2bc5d9fe"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Sep 23 13:14:12 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "libata-pmp-prep: add @new_class to ata_dev_revalidate()\n\nConsider newly found class code while revalidating.  PMP resetting\nalways results in valid class code and issuing PMP commands to\nATA/ATAPI device isn\u0027t very attractive.  Add @new_class to\nata_dev_revalidate() and check class code for revalidation.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c78968bb0f7714ceba1cdfa23714454fc98cefdf",
      "tree": "cbf066559205ce0d00829c74a406f3a2140623e4",
      "parents": [
        "24f756866676b40446e361c1f87738707161da93"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Sep 21 21:03:28 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:40 2007 -0400"
      },
      "message": "[libata] SCSI: simulator version, not device version, belongs in VPD\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "baf4fdfaaf5cb9f4fb1c341c8cef60a64e580582",
      "tree": "f26293a36958a6813bf1353cb07afd3d6be6aa0d",
      "parents": [
        "4cc980b34b2a25f600576dcd11de388bc44e1ebd"
      ],
      "author": {
        "name": "Mark Lord",
        "email": "liml@rtr.ca",
        "time": "Wed Aug 08 01:08:45 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:32 2007 -0400"
      },
      "message": "libata: add support for ATA_16 on ATAPI\n\nAdd support for issuing ATA_16 passthru commands to ATAPI devices\nmanaged by libata.  It requires the previous CDB length fix patch.\n\nA boot/module parameter, \"atapi_passthru16\u003d0\" can be used to globally\ndisable this feature, if ever desired.\n\ntj: restructured __ata_scsi_queuecmd() according to Jeff\u0027s suggestion.\n\nSigned-off-by: Mark Lord \u003climl@rtr.ca\u003e\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "0260731f0187840e272bfa10d3ba0f3e417976f5",
      "tree": "d39219275e89ce782f3151b5ac47726957a81e24",
      "parents": [
        "cc0680a580b5be81a1ca321b58f8e9b80b5c1052"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:23 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:31 2007 -0400"
      },
      "message": "libata-link: linkify config/EH related functions\n\nMake the following functions deal with ata_link instead of ata_port.\n\n* ata_set_mode()\n* ata_eh_autopsy() and related functions\n* ata_eh_report() and related functions\n* suspend/resume related functions\n* ata_eh_recover() and related functions\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "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": "5ddf24c5ea9d715dc4f5d5d5dd1c9337d90466dc",
      "tree": "6ba89094decfada468fba1f4670b9395c6f66e42",
      "parents": [
        "4e57c517b3cbaceb7438eeec879ca129fc17442c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:41 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:26:26 2007 -0400"
      },
      "message": "libata: implement EH fast drain\n\nIn most cases, when EH is scheduled, all in-flight commands are\naborted causing EH to kick in immediately.  However, in some cases\n(especially with PMP), it\u0027s unclear which commands are affected by the\nerror condition and although aborting all in-flight commands work, it\nisn\u0027t optimal and may cause unnecessary disruption.  On the other\nhand, waiting for in-flight commands to drain themselves can take up\nto 30seconds.\n\nThis patch implements EH fast drain to handle such situations.  It\ngives in-flight commands some time to finish up but doesn\u0027t wait for\ntoo long.  After EH is scheduled, fast drain timer is started and if\nno other completion occurs in ATA_EH_FASTDRAIN_INTERVAL all in-flight\ncommands are aborted.  If any completion occurred in the interval, the\nport is given another interval to finish up itself.\n\nCurrently ATA_EH_FASTDRAIN_INTERVAL is 3 secs which should be enough\nfor finishing up most commands.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "1ae463171cc1b1ea6dad7bcb298e96c073e7373e",
      "tree": "c3d62562c9be8c855f7238785ea9c9348f1e56f1",
      "parents": [
        "f1545154a5c96590b1992aac8ee1e2c445e301ed"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:40 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:26:25 2007 -0400"
      },
      "message": "libata: improve SCSI scan failure handling\n\nSCSI scan may fail due to memory allocation failure even if EH is not\nin progress.  Due to use of GFP_ATOMIC in SCSI scan path, allocation\nfailure isn\u0027t too rare especially while probing multiple devices at\nonce which is the case when a bunch of devices are connected to PMP.\n\nThis patch moves SCSI scan failure detetion logic from\nata_scsi_hotplug() to ata_scsi_scan_host() and implement synchronous\nscan behavior.  The synchronous path sleeps briefly and repeats SCSI\nscan if some devices aren\u0027t attached properly.  It contains robust\nretry loop to minimize the chance of device misdetection during boot\nand falls back to async retry if everything fails.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "64578a3de723d502621860f9d4d28f34d001b066",
      "tree": "821e7ad8e8d6c3a0f3224b479ff000e00001a165",
      "parents": [
        "e5fa24dfdb522b642dbe9b8b1b692f68dce89835"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 03:28:16 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:32 2007 -0400"
      },
      "message": "libata-acpi: implement _GTM/_STM support\n\nImplement _GTM/_STM support.  acpi_gtm is added to ata_port which\nstores _GTM parameters over suspend/resume cycle.  A new hook\nata_acpi_on_suspend() is responsible for storing _GTM parameters\nduring suspend.  _STM is executed in ata_acpi_on_resume().  With this\nchange, invoking _GTF is safe on IDE hierarchy and acpi_sata check\nbefore _GTF is removed.\n\nata_acpi_gtm() and ata_acpi_stm() implementation is taken from Alan\nCox\u0027s pata_acpi implementation.  ata_acpi_gtm() is fixed such that the\nresult parameter is not shifted by sizeof(union acpi_object).\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6746544c3b143ca7071d144f1882ccbe1f47b08d",
      "tree": "49106311ab2a748feda2fa91f977f700938d3d5c",
      "parents": [
        "69b16a5f4c4f1dab70d4d555c487c318c6878b3e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 03:28:16 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:31 2007 -0400"
      },
      "message": "libata: reimplement ACPI invocation\n\nThis patch reimplements ACPI invocation such that, instead of\nexporting ACPI details to the rest of libata, ACPI event handlers -\nata_acpi_on_resume() and ata_acpi_on_devcfg() - are used.  These two\nfunctions are responsible for determining whether specific ACPI method\nis used and when.\n\nOn resume, _GTF is scheduled by setting ATA_DFLAG_ACPI_PENDING device\nflag.  This is done this way to avoid performing the action on wrong\ndevice device (device swapping while suspended).\n\nOn every ata_dev_configure(), ata_acpi_on_devcfg() is called, which\nperforms _SDD and _GTF.  _GTF is performed only after resuming and, if\nSATA, hardreset as the ACPI spec specifies.  As _GTF may contain\narbitrary commands, IDENTIFY page is re-read after _GTF taskfiles are\nexecuted.\n\nIf one of ACPI methods fails, ata_acpi_on_devcfg() retries on the\nfirst failure.  If it fails again on the second try, ACPI is disabled\non the device.  Note that successful configuration clears ACPI failed\nstatus.\n\nWith all feature checks moved to the above two functions,\ndo_drive_set_taskfiles() is trivial and thus collapsed into\nata_acpi_exec_tfs(), which is now static and converted to return the\nnumber of executed taskfiles to be used by ata_acpi_on_resume().  As\nfailures are handled properly, ata_acpi_push_id() now returns -errno\non errors instead of unconditional zero.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "fafbae87db88a73b166d3bc3294d209207f27056",
      "tree": "158217a52a396b2be110688f23eacbe25cf1c2d7",
      "parents": [
        "7dcca30a32aadb0520417521b0c44f42d09fe05c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 03:28:16 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:31 2007 -0400"
      },
      "message": "libata-acpi: implement ata_acpi_associate()\n\n* Add acpi_handle to ata_host and ata_port.  Rename\n  ata_device-\u003eobj_handle to -\u003eacpi_handle and move it above such that\n  it doesn\u0027t get cleared on reconfiguration.\n\n* Replace ACPI node association which ata_acpi_associate() which is\n  called once during host initialization.  Unlike the previous\n  implementation, ata_acpi_associate() uses ATA_FLAG_ACPI_SATA to\n  choose between IDE or SATA ACPI hierarchy and uses simple child look\n  up instead of recursive walk to match the nodes.  This is way safer\n  and simpler.  Please read the following message for more info.\n\n  http://article.gmane.org/gmane.linux.ide/17554\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d9aca22cf443f5ed77d15a320abbab055ae4a976",
      "tree": "a808d879baf21a557a93e9ef3a0d96b004985f8b",
      "parents": [
        "1daf9ce74e0e0ef8ffde800ab495339458c3375f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu May 17 16:43:26 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu May 17 20:57:38 2007 -0400"
      },
      "message": "libata: remove libata.spindown_compat\n\nWith STANDBYDOWN tracking added, libata.spindown_compat isn\u0027t\nnecessary anymore.  If userspace shutdown(8) issues STANDBYNOW, libata\nwarns.  If userspace shutdown(8) doesn\u0027t issue STANDBYNOW, libata does\nthe right thing.  Userspace can tell whether kernel supports spindown\nby testing whether sysfs node manage_start_stop exists as before.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "fe30911b34098db58c21d0f936f6c3f17f32deb8",
      "tree": "70cca4ffb94f5f34650c30c68d46173505ee890f",
      "parents": [
        "d1c68fa6ce7e56e300d8561bb3b6492c336df863"
      ],
      "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:30 2007 -0400"
      },
      "message": "libata: separate out ata_dev_reread_id()\n\nSeparate out ata_dev_reread_id() from ata_dev_revalidate().\nata_dev_reread_id() reads IDENTIFY page and determines whether the\nsame device is still there.  ata_dev_revalidate() reconfigures after\nreread completes.  This will be used by ACPI update.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3a32a8e96694a243ec7e7feb6d76dfc4b1fe90c1",
      "tree": "c7e326d85996b196770e5bef4d7fd005380b09a0",
      "parents": [
        "e92351bb53c0849fabfa80be53cbf3b0aa166e54"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat May 05 23:50:38 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 11 18:12:42 2007 -0400"
      },
      "message": "libata-acpi: clean up parameters and misc stuff\n\nThis patch cleans up libata-acpi such that it looks similar to other\nlibata files.  This patch doesn\u0027t introuce any behavior changes.\n\n* make libata-acpi functions take ata_device instead of ata_port +\n  device index\n* s/atadev/dev/\n* de-indent local variable declarations\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e92351bb53c0849fabfa80be53cbf3b0aa166e54",
      "tree": "cb182d532feb99015e66c7377ecfaf9041153cc2",
      "parents": [
        "8575b814097af648dad284bd3087875a11b13d18"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat May 05 23:50:38 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 11 18:12:42 2007 -0400"
      },
      "message": "libata-acpi: s/CONFIG_SATA_ACPI/CONFIG_ATA_ACPI/\n\nACPI applies to both SATA and PATA.  Drop the \u0027S\u0027 from the config\nvariable.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "920a4b1038e442700a1cfac77ea7e20bd615a2c3",
      "tree": "4209c04b64b021a3e4253a484b108b2475a2860a",
      "parents": [
        "9666f4009c22f6520ac3fb8a19c9e32ab973e828"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri May 04 21:28:48 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 11 18:01:04 2007 -0400"
      },
      "message": "libata: implement libata.spindown_compat\n\nNow that libata uses sd-\u003emanage_start_stop, libata spins down disk on\nshutdown.  In an attempt to compensate libata\u0027s previous shortcoming,\nsome distros sync and spin down disks attached via libata in their\nshutdown(8).  Some disks spin back up just to spin down again on\nSTANDBYNOW1 if the command is issued when the disk is spun down, so\nthis double spinning down causes problem.\n\nThis patch implements module parameter libata.spindown_compat which,\nwhen set to one (default value), prevents libata from spinning down\ndisks on shutdown thus avoiding double spinning down.  Note that\nlibata spins down disks for suspend to mem and disk, so with\nlibata.spindown_compat set to one, disks should be properly spun down\nin all cases without modifying shutdown(8).\n\nshutdown(8) should be fixed eventually.  Some drive do spin up on\nSYNCHRONZE_CACHE even when their cache is clean.  Those disks\ncurrently spin up briefly when sd tries to shutdown the device and\nthen the machine powers off immediately, which can\u0027t be good for the\nhead.  We can\u0027t skip SYNCHRONIZE_CACHE during shudown as it can be\ndangerous data integrity-wise.\n\nSo, this spindown_compat parameter is already scheduled for removal by\nthe end of the next year and here\u0027s what shutdown(8) should do.\n\n  * Check whether /sys/modules/libata/parameters/spindown_compat\n    exists.  If it does, write 0 to it.\n\n  * For each libata harddisk {\n\t* Check whether /sys/class/scsi_disk/h:c:i:l/manage_start_stop\n\t  exists.  Iff it doesn\u0027t, synchronize cache and spin the disk\n\t  down as before.\n  }\n\nThe above procedure will make shutdown(8) work properly with kernels\nbefore this change, ones with this workaround and later ones without\nit.\n\nTo accelerate shutdown(8) updates, if the compat mode is in use, this\npatch prints BIG FAT warning for five seconds during shutdown (the\noptimal interval to annoy the user just the right amount discovered by\nhours of tireless usability testing).\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6bfff31e77cfa1b13490337e5a4dbaa3407e83ac",
      "tree": "89f7dc5379453381aed939741fc3a7e46b0465fa",
      "parents": [
        "5d728824efeda61d304153bfcf1378a3c18b7d70"
      ],
      "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: kill probe_ent and related helpers\n\nAll drivers are converted to new init model.  Kill probe_ent,\nata_device_add() and ata_pci_init_native_mode().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f31871951b38daf2d7ca17daad59fdb735062da3",
      "tree": "4286402eaf679b6fb73e893d8e51bb693559091d",
      "parents": [
        "ecef7253235e7a9365afe08a508e11bed91c1c11"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Apr 17 23:44:07 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:03 2007 -0400"
      },
      "message": "libata: separate out ata_host_alloc() and ata_host_register()\n\nReorganize ata_host_alloc() and its subroutines into the following\nthree functions.\n\n* ata_host_alloc() : allocates host and its ports.  shost is not\n  registered automatically.\n\n* ata_scsi_add_hosts() : allocates and adds shosts associated with an\n  ATA host.  Used by ata_host_register().\n\n* ata_host_register() : takes a fully initialized ata_host structure\n  and registers it to libata layer and probes it.\n\nOnly ata_host_alloc() and ata_host_register() are exported.\nata_device_add() is rewritten using the above functions.  This patch\ndoes not introduce any observable behavior change.  Things worth\nmentioning.\n\n* print_id is assigned at registration time and LLDs are allowed to\n  overallocate ports and reduce host-\u003en_ports during initialization.\n  ata_host_register() will throw away unused ports automatically.\n\n* All SCSI host initialization stuff now resides in\n  ata_scsi_add_hosts() in libata-scsi.c, where it should be.\n\n* ipr is now the only user of ata_host_init().  Either kill it by\n  converting ipr to use ata_host_alloc() and friends or rename and\n  move it to libata-scsi.c\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d7d0dad62a641c156386288a747c1a2f6bb2e42d",
      "tree": "b95bd786ae78c199892791bff1d2c583475e2239",
      "parents": [
        "28defbea64622f69d65a6079bf800cedb9915a5f"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Mar 28 01:57:37 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Mar 28 01:57:37 2007 -0400"
      },
      "message": "[libata] Disable ACPI by default; fix namespace problems\n\nNot yet ready to turn on ATA ACPI by default, for either PATA or SATA.\n\nAlso, rename the global-scope module parameter variable \u0027noacpi\u0027 to\nsomething more libata-specific, reducing the potential for namespace\ncollision.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "4bb64fb98168981d3e5a0e790c077ff511768e84",
      "tree": "0eb8abc40dc6777fb9ee0b98ae988904c2127b6b",
      "parents": [
        "2b06719153089aa8f5ac577f15f8aa8e5b5fe357"
      ],
      "author": {
        "name": "Alan",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Feb 16 01:40:04 2007 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:17 2007 -0500"
      },
      "message": "SiS warning fixes\n\nSomehow the sis_info133 external definition ended up in libata.h and that\nwas included by both drivers.  However libata.h contains libata-* specific\ninternals and clashing defines like DRV_NAME so this makes a mess.  Move\nthe extern into the C file and remove the warnings\n\n[akpm@linux-foundation.org: create sis.h to avoid extern-decl-in-C]\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "909706a2477a92b6e0f3083ed4b944cb1d09acfa",
      "tree": "a867e3ebbcec3d135022850df24a8685ea64ac36",
      "parents": [
        "7d47e8d4d4fb0c3d3bdc706759e70d5453b61ec3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Feb 02 16:22:31 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:17 2007 -0500"
      },
      "message": "libata: kill ATA_DNXFER_ANY\n\nATA_DNXFER_ANY isn\u0027t used anymore.  Kill it.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "458337dbb120d33f326e2b19d54eca8cf179b5c0",
      "tree": "91bc5284430b5a8856ec1b2fd4c277c4eb3f8827",
      "parents": [
        "a619f981b477035027dd27dfbee6148b4cd4a83c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Feb 02 16:22:30 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:16 2007 -0500"
      },
      "message": "libata: improve ata_down_xfermask_limit()\n\nMake ata_down_xfermask_limit() accept @sel instead of @force_pio0.\n@sel selects how the xfermask limit will be adjusted.  The following\nselectors are defined.\n\n* ATA_DNXFER_PIO\t: only speed down PIO\n* ATA_DNXFER_DMA\t: only speed down DMA, don\u0027t cause transfer mode change\n* ATA_DNXFER_40C\t: apply 40c cable limit\n* ATA_DNXFER_FORCE_PIO\t: force PIO\n* ATA_DNXFER_FORCE_PIO0\t: force PIO0 (same as original with @force_pio0 \u003d\u003d 1)\n* ATA_DNXFER_ANY\t: same as original with @force_pio0 \u003d\u003d 0\n\nCurrently, only ANY and FORCE_PIO0 are used to maintain the original\nbehavior.  Other selectors will be used later to improve EH speed down\nsequence.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7ea1fbc2a2449bc034a3d255f36f2e5486d52fe8",
      "tree": "efa06ba55094924f27e7598b393a46b8c2753ec0",
      "parents": [
        "11ef697b37e3c85ce1ac21f7711babf1f5b12784"
      ],
      "author": {
        "name": "Kristen Carlson Accardi",
        "email": "kristen.c.accardi@intel.com",
        "time": "Thu Sep 28 11:29:12 2006 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 16 13:32:41 2007 -0500"
      },
      "message": "[PATCH] libata: ACPI _SDD support\n\n_SDD (Set Device Data) is an ACPI method that is used to tell the\nfirmware what the identify data is of the device that is attached to\nthe port.  It is an optional method, and it\u0027s ok for it to be missing.\nBecause of this, we always return success from the routine that calls\nthis method, even if the execution fails.\n\nSigned-off-by: Kristen Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n(cherry picked from 39aa79e0a1f5f2e28aa341f035940746a98b45b1 commit)\n"
    },
    {
      "commit": "11ef697b37e3c85ce1ac21f7711babf1f5b12784",
      "tree": "7b118d54bc8fc24ca8cbc626d603013d07ed8c2a",
      "parents": [
        "8a03d9a498eaf02c8a118752050a5154852c13bf"
      ],
      "author": {
        "name": "Kristen Carlson Accardi",
        "email": "kristen.c.accardi@intel.com",
        "time": "Thu Sep 28 11:29:01 2006 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 16 13:32:41 2007 -0500"
      },
      "message": "[PATCH] libata: ACPI and _GTF support\n\n_GTF is an acpi method that is used to reinitialize the drive.  It returns\na task file containing ata commands that are sent back to the drive to restore\nit to boot up defaults.\n\nSigned-off-by: Kristen Carlson Accardi \u003ckristen.c.accardi@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n(cherry picked from 9c69cab24b51a89664f4c0dfaf8a436d32117624 commit)\n"
    },
    {
      "commit": "fda0efc5977864a90f365aeeb13f2546854e2aa9",
      "tree": "b022d56f648d3686f7d959d5a0be85adc5734694",
      "parents": [
        "d24bbbf251e70bf984cbaa9b1fcadc5f56fc3ae9"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 31 07:43:15 2007 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:37 2007 -0500"
      },
      "message": "[libata] Shuffle DRV_xxx in core and SiS drivers, to kill warnings\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "77a527eadb425b60db3f5f0aae6a4c51c38e35e5",
      "tree": "a6636031ac808b137b03a244e87db771e9eb3573",
      "parents": [
        "9b14dec5adf47287a2b52fc9fdedd6a0e245daca"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Jan 30 00:59:17 2007 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:34 2007 -0500"
      },
      "message": "fix CONFIG_SATA_SIS\u003dy compile error\n\nStatic code shouldn\u0027t be used from other modules.\n\ndrivers/built-in.o: In function `sis_init_one\u0027:\nsata_sis.c:(.text+0x7634cd): undefined reference to `sis_info133\u0027\nsata_sis.c:(.text+0x7634d6): undefined reference to `sis_info133\u0027\n\nWhile I was at it, I also moved the prototype of this struct to a header\nfile.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9db73724453a9350e1c22dbe732d427e2939a5c9",
      "tree": "15e3ead6413ae97398a54292acc199bee0864d42",
      "parents": [
        "4c1ac1b49122b805adfa4efc620592f68dccf5db",
        "e62438630ca37539c8cc1553710bbfaa3cf960a7"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Dec 05 17:01:28 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Tue Dec 05 17:01:28 2006 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nConflicts:\n\n\tdrivers/ata/libata-scsi.c\n\tinclude/linux/libata.h\n\nFuther merge of Linus\u0027s head and compilation fixups.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "800b399669ad495ad4361d134df87401ae36f44f",
      "tree": "19e29f655836cd4808c668d736a83df552b7d8dd",
      "parents": [
        "3ac551a6a63dcbc707348772a27bd7090b081524"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Dec 03 21:34:13 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Dec 03 07:58:10 2006 -0500"
      },
      "message": "[PATCH] libata: always use polling IDENTIFY\n\nlibata switched to IRQ-driven IDENTIFY when IRQ-driven PIO was\nintroduced.  This has caused a lot of problems including device\nmisdetection and phantom device.\n\nATA_FLAG_DETECT_POLLING was added recently to selectively use polling\nIDENTIFY on problemetic drivers but many controllers and devices are\naffected by this problem and trying to adding ATA_FLAG_DETECT_POLLING\nfor each such case is diffcult and not very rewarding.\n\nThis patch makes libata always use polling IDENTIFY.  This is\nconsistent with libata\u0027s original behavior and drivers/ide\u0027s behavior.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "70e6ad0c6d1e6cb9ee3c036a85ca2561eb1fd766",
      "tree": "9af1423c89d7f58093d2ee3cfc2112c2060ebfca",
      "parents": [
        "bd056d7eeb55d696556ee4f5ee2acb67b2d16df4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 14 22:47:10 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Dec 03 17:56:24 2006 +0900"
      },
      "message": "[PATCH] libata: prepare ata_sg_clean() for invocation from EH\n\nMake ata_sg_clean() global and don\u0027t allow NCQ for internal commands.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "bd056d7eeb55d696556ee4f5ee2acb67b2d16df4",
      "tree": "f6ca604abc43d73d42354d977f1bcedd262dbcda",
      "parents": [
        "2432697ba0ce312d60be5009ffe1fa054a761bb9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 14 22:47:10 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Dec 03 17:56:24 2006 +0900"
      },
      "message": "[PATCH] libata: separate out rw ATA taskfile building into ata_build_rw_tf()\n\nSeparate out rw ATA taskfile building from ata_scsi_rw_xlat() into\nata_build_rw_tf().  This will be used to improve media error handling.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "2432697ba0ce312d60be5009ffe1fa054a761bb9",
      "tree": "8fe745ffb50986bee7d0cab5281278c7f77f983c",
      "parents": [
        "0f0a3ad3741fd93461fcfb85dc577103c58d9be8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 14 22:47:09 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Dec 03 17:56:24 2006 +0900"
      },
      "message": "[PATCH] libata: implement ata_exec_internal_sg()\n\nSg\u0027ify ata_exec_internal() and call it ata_exec_internal_sg().\nWrapper function around ata_exec_internal_sg() is implemented to\nprovide ata_exec_internal() interface.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "35b649fe2587b2e569c17c022ba3506ba441b6a2",
      "tree": "07d1b36f0241d48fa71159e7bc7a096ac5842bed",
      "parents": [
        "750426aa1ad1ddd1fa8bb4ed531a7956f3b9a27c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Nov 14 22:37:35 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:46:00 2006 -0500"
      },
      "message": "[PATCH] libata: implement ata_tf_read_block()\n\nImplement ata_tf_read_block().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "55a8e2c83ce50548dfef74bb19dfe2b809cb3099",
      "tree": "1d5ed12c49a254364f9009e9cdbf4609b92f3afb",
      "parents": [
        "bff0464769f2a1bd348265de704471747378e247"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Nov 10 18:08:10 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:45:55 2006 -0500"
      },
      "message": "[PATCH] libata: implement presence detection via polling IDENTIFY\n\nOn some controllers (ICHs in piix mode), there is *NO* reliable way to\ndetermine device presence other than issuing IDENTIFY and see how the\ntransaction proceeds by watching the TF status register.\n\nlibata acted this way before irq-pio and phantom devices caused very\nlittle problem but now that IDENTIFY is performed using IRQ drive PIO,\nsuch phantom devices now result in multiple 30sec timeouts during\nboot.\n\nThis patch implements ATA_FLAG_DETECT_POLLING.  If a LLD sets this\nflag, libata core issues the initial IDENTIFY in polling mode and if\nthe initial data transfer fails w/ HSM violation, the port is\nconsidered to be empty thus replicating the old libata and IDE\nbehavior.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "bff0464769f2a1bd348265de704471747378e247",
      "tree": "50b04bf291837cb99ca67ac557d577aaf84a75f8",
      "parents": [
        "b3362f88a8f938fb700fdedf074ec222cba7cf83"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Nov 10 18:08:10 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:45:55 2006 -0500"
      },
      "message": "[PATCH] libata: convert @post_reset to @flags in ata_dev_read_id()\n\nMake ata_dev_read_id() take @flags instead of @post_reset.  Currently\nthere is only one flag defined - ATA_READID_POSTRESET, which is\nequivalent to @post_reset.  This is preparation for polling presence\ndetection.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "efdaedc443e935eda82e9e78a6e65d1f993d242f",
      "tree": "8bcdc05ec85f7a9e7b0a5b1e5014ec21cf4e8aac",
      "parents": [
        "ad616ffbda8caf3ce76d2b43027e789d732abf48"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Nov 01 18:38:52 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:41:31 2006 -0500"
      },
      "message": "[PATCH] libata: implement ATA_EHI_PRINTINFO\n\nImplement ehi flag ATA_EHI_PRINTINFO.  This flag is set when device\nconfiguration needs to print out device info.  This used to be handled\nby @print_info argument to ata_dev_configure() but LLDs also need to\nknow about it in -\u003edev_config() callback.\n\nThis patch replaces @print_info w/ ATA_EHI_PRINTINFO and make sata_sil\nprint workaround messages only on the initial configuration.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "90088bb41200b4da962282dfd45db82544adac3b",
      "tree": "84241a4af54715469dd237bd6925f46530f2b5b7",
      "parents": [
        "d1adc1bbd6dde3e05a91e2d3e6ab42d202ea61d5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Oct 09 11:10:26 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:40:28 2006 -0500"
      },
      "message": "[PATCH] libata: move ata_irq_on() into libata-sff.c\n\nata_irq_on() isn\u0027t used outside of libata core layer.  The function is\nTF/SFF interface specific but currently used by core path with some\nhack too.  Move it from include/linux/libata.h to\ndrivers/ata/libata-sff.c.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "65f27f38446e1976cc98fd3004b110fedcddd189",
      "tree": "68f8be93feae31dfa018c22db392a05546b63ee1",
      "parents": [
        "365970a1ea76d81cb1ad2f652acb605f06dae256"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:55:48 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:55:48 2006 +0000"
      },
      "message": "WorkStruct: Pass the work_struct pointer instead of context data\n\nPass the work_struct pointer to the work function rather than context data.\nThe work function can use container_of() to work out the data.\n\nFor the cases where the container of the work_struct may go away the moment the\npending bit is cleared, it is made possible to defer the release of the\nstructure by deferring the clearing of the pending bit.\n\nTo make this work, an extra flag is introduced into the management side of the\nwork_struct.  This governs auto-release of the structure upon execution.\n\nOrdinarily, the work queue executor would release the work_struct for further\nscheduling or deallocation by clearing the pending bit prior to jumping to the\nwork function.  This means that, unless the driver makes some guarantee itself\nthat the work_struct won\u0027t go away, the work function may not access anything\nelse in the work_struct or its container lest they be deallocated..  This is a\nproblem if the auxiliary data is taken away (as done by the last patch).\n\nHowever, if the pending bit is *not* cleared before jumping to the work\nfunction, then the work function *may* access the work_struct and its container\nwith no problems.  But then the work function must itself release the\nwork_struct by calling work_release().\n\nIn most cases, automatic release is fine, so this is the default.  Special\ninitiators exist for the non-auto-release case (ending in _NAR).\n\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "6e42acc4115bc376b8523acbcba2b2b7cc27d016",
      "tree": "c4783213a996aa07ba43bef5b0f337f3f0d3b9b9",
      "parents": [
        "f833229c96c0bf53c05995e4bd58709d9e9edd67"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Oct 27 19:08:42 2006 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Oct 31 20:40:09 2006 -0500"
      },
      "message": "[PATCH] libata: unexport ata_dev_revalidate()\n\nata_dev_revalidate() isn\u0027t used outside of libata core.  Unexport it.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\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": "80289167fd3ebaeb7b2641e69cbec44b61165fe7",
      "tree": "cb979ef0563377b9c901359dbcb1f117ff7d48d5",
      "parents": [
        "f6d950e2a5209bd7e3fb1a238f43f24f3697f5b0"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@us.ibm.com",
        "time": "Mon Aug 07 14:27:31 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Aug 09 00:08:39 2006 -0400"
      },
      "message": "[PATCH] libata: Add support for SATA attachment to SAS adapters\n\nThe following patch enhances libata to allow SAS device drivers\nto utilize libata to talk to SATA devices. It introduces some\nnew APIs which allow libata to be used without allocating a\nvirtual scsi host.\n\nNew APIs:\n\nata_sas_port_alloc - Allocate an ata_port\nata_sas_port_init - Initialize an ata_port (probe device, etc)\nata_sas_port_destroy - Free an ata_port allocated by ata_sas_port_alloc\nata_sas_slave_configure - configure scsi device\nata_sas_queuecmd - queue a scsi command, similar to ata_scsi_queuecomand\n\nThese new APIs can be used either directly by a SAS LLDD or could be used\nby the SAS transport class.\n\nPossible usage for a SAS LLDD would be:\n\nscsi_scan_host\n\ttarget_alloc\n\t\tata_sas_port_alloc\n\tslave_alloc\n\t\tata_sas_port_init\n\tslave_configure\n\t\tata_sas_slave_configure\n\nCommands received by the LLDD for SATA devices would call ata_sas_queuecmd.\n\nDevice teardown would occur with:\n\nslave_destroy\n\tport_disable\ntarget_destroy\n\tata_sas_port_destroy\n\nSigned-off-by: Brian King \u003cbrking@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f6d950e2a5209bd7e3fb1a238f43f24f3697f5b0",
      "tree": "acdcb6deba03af3255c6e4bd76593ffa570e1698",
      "parents": [
        "155a8a9c8f4084016d9e27bf03ba1f19201438f4"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@us.ibm.com",
        "time": "Mon Aug 07 14:27:24 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Aug 09 00:08:38 2006 -0400"
      },
      "message": "[PATCH] libata: Move ata_probe_ent_alloc to libata_core\n\nMove ata_probe_ent_alloc to libata-core. It will also be used by\nfuture SAS/SATA integration patches.\n\nSigned-off-by: Brian King \u003cbrking@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "155a8a9c8f4084016d9e27bf03ba1f19201438f4",
      "tree": "31ea68dd479537b3d1e039f124e34d4270cb9eb8",
      "parents": [
        "b03732f006bd1ecee32587ec8235c41af5ad905f"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@us.ibm.com",
        "time": "Mon Aug 07 14:27:17 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Aug 09 00:08:38 2006 -0400"
      },
      "message": "[PATCH] libata: Add ata_port_init\n\nSeparate out the ata_port initialization from ata_host_init\nso that it can be used in future SAS patches.\n\nSigned-off-by: Brian King \u003cbrking@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "77b08fb56a41e84b5e78b14f24d79879235e3337",
      "tree": "fd91513aa74ea2d87bb5352b533a6985595778c7",
      "parents": [
        "977e6b9f3a9b17f1c608a9d1e5a7b5c46a5f7d4a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Jun 24 20:30:19 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jun 26 20:59:27 2006 -0400"
      },
      "message": "[PATCH] libata: make two functions global\n\nMake ata_do_simple_cmd() and ata_flush_cache() global.  These will be\nused from libata-eh.c.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "8676ce07d38a09e0f41497d178357a314c4620cf",
      "tree": "c9fd591510e54d7d555bc431df9c49dfdf18fdd1",
      "parents": [
        "eb99adde31b7d85c67a5e1c2fa5e098e1056dd79"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jun 26 20:41:33 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jun 26 20:41:33 2006 -0400"
      },
      "message": "[libata] Bump versions\n\nUpdate major version for libata, and several drivers.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3057ac3c1a992ee135cbb7b7d1a12e58d81f0739",
      "tree": "38d83a88ee949b9db8f6655f90f98d88f8a5f2fd",
      "parents": [
        "39b07ce6d9f7cd4da8567baed844801e0aaa7b1a"
      ],
      "author": {
        "name": "zhao, forrest",
        "email": "forrest.zhao@intel.com",
        "time": "Mon Jun 12 12:01:34 2006 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jun 12 00:18:35 2006 -0400"
      },
      "message": "[PATCH] Snoop SET FEATURES - WRITE CACHE ENABLE/DISABLE command(v5)\n\nThis patch makes libata snoop \u0027SET FEATURES - WRITE CACHE\nENABLE/DISABLE\u0027 command, executing requisite revalidation processes\nto update cached data.\n\nSigned-off-by: Forrest Zhao \u003cforrest.zhao@intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d87fa38e70853a9607dc34a02d15cf5f149f49f2",
      "tree": "6afc6f8b9ff9c2c441efd61829d5d6fa6eb5698d",
      "parents": [
        "52783c5dcc8d317bc8c3e2692d366e8a305abada"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:24 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:24 2006 +0900"
      },
      "message": "[PATCH] libata-hp: move ata_do_reset() to libata-eh.c\n\nWith ops-\u003eprobe_init() gone, no user is left in libata-core.c.  Move\nata_do_reset() to libata-eh.c and make it static.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "580b2102327ab8444af5bde4e70b50d268a1d558",
      "tree": "01389e898e09dbaddb06405b182116b9be0e6d59",
      "parents": [
        "084fe639b81c4d418a2cf714acb0475e3713cb73"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:05 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:05 2006 +0900"
      },
      "message": "[PATCH] libata-hp: implement SCSI part of hotplug\n\nImplement SCSI part of hotplug.\n\nThis must be done in a separate context as SCSI makes use of EH during\nprobing.  SCSI scan fails silently if EH is in progress.  In such\ncases, libata pauses briefly and retries until every device is\nattached.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "0ea035a3d1ad948096e205f08f350c03d5cea453",
      "tree": "fd003f929ab079f0852e3709436ca30a18265a39",
      "parents": [
        "e8e008e7b5ed8c65675cc9b3e778b8bb909f65ab"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:01 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:01 2006 +0900"
      },
      "message": "[PATCH] libata-hp: implement ata_eh_detach_dev()\n\nImplement ata_eh_detach_dev().  This function is responsible for\ndetaching an ATA device and offlining the associated SCSI device\natomically so that the detached device is not accessed after ATA\ndetach is complete.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "a9beec95352ff675f27d74c3cb97dc258d022497",
      "tree": "f301e31e3a9648bd6e2f4050a44b4e89aebe0f18",
      "parents": [
        "453b07accb47c5b54aa2f156ebffac63c543027b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:44 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:44 2006 +0900"
      },
      "message": "[PATCH] libata-hp-prep: make probing related functions global\n\nHotplug will be implemented in libata-eh.c.  Make ata_dev_read_id()\nand ata_dev_configure() global.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "453b07accb47c5b54aa2f156ebffac63c543027b",
      "tree": "a08ee98bab64b1d92a9856e086c87de53012b6fc",
      "parents": [
        "3edebac41bab7e146578ad9e723ee7fff71c99c0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:42 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:42 2006 +0900"
      },
      "message": "[PATCH] libata-hp-prep: add ata_aux_wq\n\nIt\u0027s best to run ATA hotplug from EH but attaching SCSI devices needs\nworking EH.  ata_aux_wq is used to give SCSI hotplug operations a\nseparate context.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "3ef3b43d5633d30fa3f033f62094ec2e9c5b8376",
      "tree": "815ba1afeb202834667e1dff08fa69b63ec0628f",
      "parents": [
        "abdda7331d469fa965167365f011d05e226008fb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:30 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:30 2006 +0900"
      },
      "message": "[PATCH] libata-hp-prep: implement ata_dev_init()\n\nMove initialization of struct ata_device into ata_dev_init() in\npreparation for hotplug.  This patch calls ata_dev_init() from\nata_host_init() and thus makes no functional difference.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "c6cf9e99d1de5ca6a08fb639bb73031ffe50d802",
      "tree": "555a47d45b5b80ef14ff53ccb4c6d1439460e251",
      "parents": [
        "7395acb2c840fd4d0cacc91d6fb71440057141ab"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:27 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:27 2006 +0900"
      },
      "message": "[PATCH] libata: implement ata_eh_wait()\n\nImplement ata_eh_wait().  On return from this function, it\u0027s\nguaranteed that the EH which was pending or in progress when the\nfunction was called is complete - including the tailing part of SCSI\nEH.  This will be used by hotplug and others to synchronize with EH.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "7b70fc039824bc7303e4007a5f758f832de56611",
      "tree": "d973a40055dec97fedc5ae87852667ed2d30ea71",
      "parents": [
        "f686bcb8078ac7505ec88818886c2c72639f4fc5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:07 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:07 2006 +0900"
      },
      "message": "[PATCH] libata-eh-fw: implement ata_port_schedule_eh() and ata_port_abort()\n\nata_port_schedule_eh() directly schedules EH for @ap without\nassociated qc.  Once EH scheduled, no further qc is allowed and EH\nkicks in as soon as all currently active qc\u0027s are drained.\n\nata_port_abort() schedules all currently active commands for EH by\nqc_completing them with ATA_QCFLAG_FAILED set.  If ata_port_abort()\ndoesn\u0027t find any qc to abort, it directly schedule EH using\nata_port_schedule_eh().\n\nThese two functions provide ways to invoke EH for conditions which\naren\u0027t directly related to any specfic qc.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "f686bcb8078ac7505ec88818886c2c72639f4fc5",
      "tree": "7c563e0032b2d85b631b617b8bb2a7a648607468",
      "parents": [
        "f69499f42caf74194df678c9c293f2ee0fe90bc3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:05 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:05 2006 +0900"
      },
      "message": "[PATCH] libata-eh-fw: implement new EH scheduling via error completion\n\nThere are several ways a qc can get schedule for EH in new EH.  This\npatch implements one of them - completing a qc with ATA_QCFLAG_FAILED\nset or with non-zero qc-\u003eerr_mask.  ALL such qc\u0027s are examined by EH.\n\nNew EH schedules a qc for EH from completion iff -\u003eerror_handler is\nimplemented, qc is marked as failed or qc-\u003eerr_mask is non-zero and\nthe command is not an internal command (internal cmd is handled via\n-\u003epost_internal_cmd).  The EH scheduling itself is performed by asking\nSCSI midlayer to schedule EH for the specified scmd.\n\nFor drivers implementing old-EH, nothing changes.  As this change\nmakes ata_qc_complete() rather large, it\u0027s not inlined anymore and\n__ata_qc_complete() is exported to other parts of libata for later\nuse.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "3373efd89dead4ce7818d685729e0431448357c9",
      "tree": "d7e7a1afd83e269c3c0978f924cd8c54d9be7f5a",
      "parents": [
        "38d87234d6c47ca487fc6344100323d5adc6f32c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:53 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:53 2006 +0900"
      },
      "message": "[PATCH] libata: use dev-\u003eap\n\nUse dev-\u003eap where possible and eliminate superflous @ap from functions\nand structures.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "96bd39ec295e49443c8b0c25a6b69fdace18780f",
      "tree": "02b80f3a37f3b75b68f41e6243fab513aed30b32",
      "parents": [
        "3adcebb2b59d590d572844815c906ca30477b14a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:38 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:38 2006 +0900"
      },
      "message": "[PATCH] libata: remove postreset handling from ata_do_reset()\n\nMake ata_do_reset() deal only with reset.  postreset is now the\nresponsibility of the caller.  This is simpler and eases later\nprereset addition.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "3c567b7d1137633f3ff67cd1df94abc5fd497a85",
      "tree": "085d98f696a0b8a2440bac4686929731769a6760",
      "parents": [
        "c44078c03f018c8cc9d7463b0db4c6c7fb316792"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:23 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:23 2006 +0900"
      },
      "message": "[PATCH] libata: rename ata_down_sata_spd_limit() and friends\n\nRename ata_down_sata_spd_limit() and friends to sata_down_spd_limit()\nand likewise for simplicity \u0026 consistency.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "2bf2cb26b2512c6a609bb152982c388329bedff6",
      "tree": "9f1f3ea5000304fd946f34b24d9904c2a1027480",
      "parents": [
        "db70fef0750e5f8dbb64f9fadb333d2c7caf26a1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Apr 11 22:16:45 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 11 13:12:46 2006 -0400"
      },
      "message": "[PATCH] libata: kill @verbose from ata_reset_fn_t\n\n@verbose was added to ata_reset_fn_t because AHCI complained during\nprobing if no device was attached to the port.  However, muting\nfailure message isn\u0027t the correct approach.  Reset methods are\nresponsible for detecting no device condition and finishing\nsuccessfully.  Now that AHCI softreset is fixed, kill @verbose.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "381544bba3ae6f2f1004b267da34f840b469033c",
      "tree": "e748d5da19d3fa79bee2ad5b40b44722cdf64184",
      "parents": [
        "10a5fd5e6b7e2d464c9f95f67cade4ddbd63f4e1"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 11 13:04:39 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 11 13:04:39 2006 -0400"
      },
      "message": "libata: Fix EH merge difference between this branch and upstream.\n"
    },
    {
      "commit": "95de719adc94392a95c3c4d0a2d6b8b1ea39d236",
      "tree": "d8196f39ca64a2c727ff6eff94b28d10013c6564",
      "parents": [
        "c16226a1c75042bfdc50bd2921d5919f6267ba51"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Tue Apr 04 10:57:18 2006 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 04 08:44:24 2006 -0400"
      },
      "message": "[PATCH] libata: convert ATAPI_ENABLE_DMADIR to module parameter\n\nConvert the ATAPI_ENABLE_DMADIR compile time option needed\nby some SATA-PATA bridge to runtime module parameter.\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "af64371ada9452632c349563d688d30d94e918ba",
      "tree": "0b6b451ba75c18bff270ab31eedffcfa5f941d67",
      "parents": [
        "4bced2d40555eebf8d685f174aa6d58ace353655"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Apr 02 20:41:36 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Apr 02 20:41:36 2006 -0400"
      },
      "message": "[libata] bump versions\n"
    },
    {
      "commit": "1ad8e7f9eb051b040880e45337ed74bfd916ef7f",
      "tree": "010f563b369b0d00a280aa6545790c95a7b5a8a5",
      "parents": [
        "ece1d63619df010b8c4f08e43755e2a03f3b6eed"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Apr 02 18:51:53 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Apr 02 10:09:21 2006 -0400"
      },
      "message": "[PATCH] libata: make some libata-core routines extern\n\nMake libata-core routines which will be used by EH implementation\nextern.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "ece1d63619df010b8c4f08e43755e2a03f3b6eed",
      "tree": "c6474fe7541d479bf19c36c79700dfa9f6093a8d",
      "parents": [
        "35e86b53b1a38e78ff0d70dae4aeb25f4572e433"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Apr 02 18:51:53 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Apr 02 10:09:21 2006 -0400"
      },
      "message": "[PATCH] libata: separate out libata-eh.c\n\nA lot of EH codes are about to be added to libata.  Separate out\nlibata-eh.c.  ata_scsi_timed_out(), ata_scsi_error(),\nata_qc_timeout(), ata_eng_timeout(), ata_eh_qc_complete() and\nata_eh_qc_retry() are moved.  No code is changed by this patch.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "8e0e694a3a48212bfe29a9ad3cd592bf68dfec81",
      "tree": "82f2b114160c8f1a6537c471fea7b41e50a80814",
      "parents": [
        "e4a70e76add280db6068426716a9b2a74099144f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Mar 31 20:41:11 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Mar 31 10:14:42 2006 -0500"
      },
      "message": "[PATCH] libata: make ata_qc_issue complete failed qcs\n\nThere is no reason for the issuer to diddle with a failed qc as the\nissuer has complete control over when a qc gets freed (usually in\n-\u003ecomplete_fn).  Make ata_qc_issue() responsible for completing qcs\nwhich failed to issue.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "30afc84cf7325e88fb9746340eba3c161080ff49",
      "tree": "829ea31d6ab095bd7a35651cd6018205a2b21d11",
      "parents": [
        "d04cdb64212eb5ae6a98026a97dda626e40e8e9a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Mar 18 18:40:14 2006 +0900"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "jejb@mulgrave.il.steeleye.com",
        "time": "Tue Mar 21 13:07:05 2006 -0600"
      },
      "message": "[SCSI] libata: implement minimal transport template for -\u003eeh_timed_out\n\nSCSI midlayer has moved hostt-\u003eeh_timed_out to transport template.  As\nlibata doesn\u0027t need full-blown transport support yet, implement\nminimal transport for libata.  No transport class or whatsoever, just\nempty transport template with -\u003eeh_timed_out hook.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\n"
    },
    {
      "commit": "86e45b6bd6900c4a0b3666fb18b46e215f775c4f",
      "tree": "5b86ebd0b0b17d05bdfdd07b7683f7348577b52a",
      "parents": [
        "d7fc3ca1cd0ecce82263299c6b1631fc83b0ec79"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Mar 05 15:29:09 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Mar 11 17:57:20 2006 -0500"
      },
      "message": "[PATCH] libata: implement port_task\n\nImplement port_task.  LLDD\u0027s can schedule a function to be executed\nwith context after specified delay.  libata core takes care of\nsynchronization against EH.  This is generalized form of pio_task and\npacket_task which are tied to PIO hsm implementation.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d2dbaad8555b9a078830ac1aab7ef7a37461c640",
      "tree": "6d455666df51db6a24834e6551e246e0c0d0d078",
      "parents": [
        "cccc65a3b60edaf721cdee5a14f68ba009341822",
        "71efa38c0eef581c69c221ceb8645f61d1e93270"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Mar 01 14:45:47 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Mar 01 14:45:47 2006 -0500"
      },
      "message": "Merge branch \u0027master\u0027\n"
    },
    {
      "commit": "c3c013a2c218cdede2d2e73df01ed4f813538941",
      "tree": "1e7bfa4c687bb54fd328f06ac141937de1bb0470",
      "parents": [
        "e95a9ec1bb66e07b138861c743192f06e7b3e4de"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Feb 27 22:31:19 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Feb 27 22:31:19 2006 -0500"
      },
      "message": "[libata] Disable FUA\n\nUntil problems are sorted.\n"
    },
    {
      "commit": "76014427e60f7ecfdc689dfbcb48e9760e1da4fb",
      "tree": "cf885f718315ed7819fd8f6f4a375540847baf2f",
      "parents": [
        "cbefa3258eade263dbc9ae2c1f1ea2ca96e6b457"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Feb 11 15:13:49 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sat Feb 11 17:51:56 2006 -0500"
      },
      "message": "[PATCH] libata: inline ata_qc_complete()\n\nThis patch inlines ata_qc_complete() and uninlines __ata_qc_complete()\nas suggested by Jeff Garzik.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "341963b909a01d2f38d86f5db8dd1f8c80bd6dbf",
      "tree": "b19def143135b45b64d62e4e048aaae5b711696f",
      "parents": [
        "1fdffbce0332b3e00993d741e76935e7f4f0d40f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Feb 10 15:10:48 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Fri Feb 10 06:50:45 2006 -0500"
      },
      "message": "[PATCH] libata: add ATA_QCFLAG_EH_SCHEDULED\n\nAdd ATA_QCFLAG_EH_SCHEDULED.  If this flag is set, the qc is owned by\nEH and normal completion path is not allowed to finish it.  This patch\ndoesn\u0027t actually use this flag.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "9a3d9eb0177eb10500d49cd283b35576082a522d",
      "tree": "3a8279ea3f263338cd02918131a36ee716cad1a8",
      "parents": [
        "11a56d2439259892319df81cf1582687d7e7fde5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jan 23 13:09:36 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Thu Jan 26 22:36:27 2006 -0500"
      },
      "message": "[PATCH] libata: return AC_ERR_* from issue functions\n\nReturn AC_ERR_* mask from issue fuctions instead of 0/-1.  This\nenables things like failing a qc with AC_ERR_HSM when the device\ndoesn\u0027t set DRDY when the qc is about to be issued.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "9a3dccc42556537a48f39ee9a9e7ab90a933f766",
      "tree": "e67d7b314d4e0732bfa5558bef4f1941ea80cb58",
      "parents": [
        "93c9338713d4e11102cd09b4670ad42a336b06a3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Jan 06 09:56:18 2006 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Fri Jan 06 09:56:18 2006 +0100"
      },
      "message": "[BLOCK] add FUA support to libata\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "82033adf0a4b26eb0c0c90e224848431e2a59bc6",
      "tree": "b995909cbf2de7dca994db13de3f157ace164905",
      "parents": [
        "a012370322eafee642369784ff71afe81f5a8592"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Dec 13 14:50:38 2005 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Tue Dec 13 01:34:45 2005 -0500"
      },
      "message": "[PATCH] libata: remove unused functions\n\nThere is no user of ata_qc_wait_err() and ata_qc_complete_noop() after\nata_exec_internal() changes.  Remove unused functions.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "a22e2eb0710798009b8e696ae911aef745089dd6",
      "tree": "93421443499249db0301868e07f24156c456cf7a",
      "parents": [
        "c14b8331ec4843e4f2b67a4d847a0d812a50e43c"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Mon Dec 05 15:38:02 2005 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Tue Dec 06 04:49:22 2005 -0500"
      },
      "message": "[PATCH] libata: move err_mask to ata_queued_cmd\n\n  - remove err_mask from the parameter list of the complete functions\n  - move err_mask to ata_queued_cmd\n  - initialize qc-\u003eerr_mask when needed\n  - for each function call to ata_qc_complete(), replace the err_mask parameter with qc-\u003eerr_mask.\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "7bdd720869ff75700b48b132ee71852615b55808",
      "tree": "5d42dddd1cda8462fe1b2739a40ab28df28c227d",
      "parents": [
        "c2cd76ff106b8bd9c0a754c6439c74e86fd2aba7"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Wed Nov 16 11:06:59 2005 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Wed Nov 16 11:06:59 2005 -0500"
      },
      "message": "[libata] bump versions\n"
    },
    {
      "commit": "c6e6e666cbfe40f0d7fb1a293ff6332973acac37",
      "tree": "21609c228d8aaf1f9a2217f7fd08266ed669f5bc",
      "parents": [
        "2c13b7cee045af689b36349c2bc6a9ed6e3d73fa"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Mon Nov 14 14:50:05 2005 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Mon Nov 14 14:50:05 2005 -0500"
      },
      "message": "[libata] REQUEST SENSE handling fixes\n\n- Move ATAPI check-condition handling out of the timeout handler\n- Use multi-qc-issue feature to issue REQUEST SENSE ATAPI PACKET\n  command upon receiving an ATAPI check-condition.\n\nThis cleans things up a lot, and eliminates a nasty recursion bug.\n"
    },
    {
      "commit": "e533825447dcb60a82b7cc9d73d06423c849b9a2",
      "tree": "c838f16f023e24118a0e5669b2dbcfb70f666504",
      "parents": [
        "6e9d6b8ee4e0c37d3952256e6472c57490d6780d"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sun Oct 30 21:37:17 2005 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sun Oct 30 21:37:17 2005 -0500"
      },
      "message": "[libata] ata_tf_to_host cleanups\n\nIntegrate ata_exec() and ata_tf_to_host() into their only caller,\nata_bus_edd().\n\nRename ata_tf_to_host_nolock() to ata_tf_to_host().\n\nThis makes locking a bit easier to review, and may help pave the way for\nfuture changes.\n"
    },
    {
      "commit": "a7dac447bb9cef27d4d29cdf63e2d7809c50b1f4",
      "tree": "a8935490cdd374aba3a804ba9f79d1aed67db36d",
      "parents": [
        "81cfb8864c73230eb1c37753aba517db15cf4d8f"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sun Oct 30 04:44:42 2005 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sun Oct 30 04:44:42 2005 -0500"
      },
      "message": "[libata] change ata_qc_complete() to take error mask as second arg\n\nThe second argument to ata_qc_complete() was being used for two\npurposes: communicate the ATA Status register to the completion\nfunction, and indicate an error.  On legacy PCI IDE hardware, the latter\nis often implicit in the former.  On more modern hardware, the driver\noften completely emulated a Status register value, passing ATA_ERR as an\nindication that something went wrong.\n\nNow that previous code changes have eliminated the need to use drv_stat\narg to communicate the ATA Status register value, we can convert it to a\nmask of possible error classes.\n\nThis will lead to more flexible error handling in the future.\n"
    },
    {
      "commit": "96b88fb850cc419171f926ad04650ec509e9f543",
      "tree": "5bf9537bde467534608b3acdbfa5f7726ede8c3f",
      "parents": [
        "e78a57de94480226f7fc90d0b4837bfc6c99a9e0",
        "5fadd053d9bb4345ec6f405d24db4e7eb49cf81e"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Fri Oct 28 12:31:34 2005 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Fri Oct 28 12:31:34 2005 -0400"
      },
      "message": "Merge branch \u0027master\u0027\n"
    },
    {
      "commit": "057ace5e79da9ebf2aa82833cfea825533ac06fb",
      "tree": "f27ed6cbd9a185041862471ef421e6415e099344",
      "parents": [
        "cf482935c6abe5245e481213c6e6df808c976f56"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sat Oct 22 14:27:05 2005 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sat Oct 22 14:27:05 2005 -0400"
      },
      "message": "libata: const-ification bombing run\n\nEnforce access rules where appropriate.\n\nIf the compiler is smart enough, this may buy us an optimization or two\nas a side effect.\n"
    },
    {
      "commit": "77501f3cb648e18733509a951ed31eddd7ef2c0b",
      "tree": "82624caa354394df2422562bf6dda56a2c088704",
      "parents": [
        "422fa08e538b649a9b80258950d2f8a202f45f19",
        "59a10b172fccaea793352c00fd9065f0a5b4ef70"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Tue Oct 18 18:30:58 2005 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Tue Oct 18 18:30:58 2005 -0400"
      },
      "message": "Merge branch \u0027upstream\u0027\n"
    },
    {
      "commit": "8cbd6df1f0ce977ab7b61feffa59879bb5e0ed8f",
      "tree": "c460778581293ad479ec4983690ccc46bcb4df56",
      "parents": [
        "07506697d1c615924298406f2357810709c09bcd"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Wed Oct 12 15:06:27 2005 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Tue Oct 18 17:16:13 2005 -0400"
      },
      "message": "[PATCH] libata CHS: calculate read/write commands and protocol on the fly (revise #6)\n\n     - merge ata_prot_to_cmd() and ata_dev_set_protocol() as\n       ata_rwcmd_protocol()\n     - pave road for read/write multiple support\n     - remove usage of pre-cached command and protocol values and call\n       ata_rwcmd_protocol() instead\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "ffe75ef650e1aec26a84bd82a620b5e27df9ed34",
      "tree": "8ed31fa093cbf6f6d6142e0e2118bee26aa71fa7",
      "parents": [
        "9dc263239bb2cfeb242d8ef758fca66a968822d5",
        "e710245bb0f980adfb1dfe850e43761a8117c6be"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sun Oct 09 10:40:44 2005 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sun Oct 09 10:40:44 2005 -0400"
      },
      "message": "Merge branch \u0027upstream\u0027\n"
    },
    {
      "commit": "ae00651020413bd7eb5fa3bd0abbd78d7cf1abb2",
      "tree": "d30e0682d43a81803254cf4ae33a1f21bc1de207",
      "parents": [
        "845c5834d0aa60eb1588397696e7fabbaab2d3b0"
      ],
      "author": {
        "name": "Douglas Gilbert",
        "email": "dougg@torque.net",
        "time": "Sun Oct 09 09:09:35 2005 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sun Oct 09 09:09:35 2005 -0400"
      },
      "message": "[libata scsi] improve scsi error handling with ata_scsi_set_sense()\n\n  - change \"xlat\" and \"fill\" actors in libata-scsi so\n    they are responsible for SCSI status and sense data\n    when they return 1. This allows GOOD status or a\n    specialized error to be set.\n  - yield an error for mode sense requests for saved\n    values [sat-r06]\n  - remove static inlines for ata_bad_scsiop() and\n    ata_bad_cdb() which are no longer used\n\nSigned-off-by: Douglas Gilbert \u003cdougg@torque.net\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "845c5834d0aa60eb1588397696e7fabbaab2d3b0",
      "tree": "963d4a2c132273cf6df68a3846326a08cdbe17f4",
      "parents": [
        "d95300758bed9e0f783f3e3b4fd037bf0a21abe0"
      ],
      "author": {
        "name": "Douglas Gilbert",
        "email": "dougg@torque.net",
        "time": "Sun Oct 09 08:55:41 2005 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Sun Oct 09 08:55:41 2005 -0400"
      },
      "message": "[libata scsi] add ata_scsi_set_sense helper\n\n  - add extern ata_scsi_set_sense() to build SCSI\n    fixed sense data and corresponding SCSI status\n\nSigned-off-by: Douglas Gilbert \u003cdougg@torque.net\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@pobox.com\u003e\n"
    },
    {
      "commit": "a939c9631527053aa38aa8795a6f7203c7f20b69",
      "tree": "ef7aabee7439909153ef05f2651d8f456dd39ce1",
      "parents": [
        "a15dbeb4772626a015337dea06da67095aec3862"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Wed Oct 05 17:09:16 2005 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Wed Oct 05 17:09:16 2005 -0400"
      },
      "message": "libata: move atapi_request_sense() to libata-scsi module\n\nNo content changes, just moving code around.\n"
    },
    {
      "commit": "644dd0cc494702ecd0698f467de113ace9593888",
      "tree": "d49e781476dea85a4bfc1b05b6d15ed0a224a747",
      "parents": [
        "87e807b6c461bbd449496a4c3ab78ab164a4ba97"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Mon Oct 03 15:55:19 2005 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Mon Oct 03 15:55:19 2005 -0400"
      },
      "message": "[libata] improve device scan\n\nReplace SCSI\u0027s legacy \"bang at the door\" method of probing with one\ndirectly controlled by the underlying ATA transport layer.\n\nWe now only call scsi_scan_target() for devices we find, rather than\nprobing every possible channel/id within a certain range.\n"
    },
    {
      "commit": "c324b44c34050cf2a9b58830e11c974806bd85d8",
      "tree": "3ac45a783221283925cd698334a8f5e7dd4c1df8",
      "parents": [
        "2fcf522509cceea524b6e7ece8fd6759b682175a",
        "caf39e87cc1182f7dae84eefc43ca14d54c78ef9"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Thu Sep 08 05:39:55 2005 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Thu Sep 08 05:39:55 2005 -0400"
      },
      "message": "Merge /spare/repo/linux-2.6/ \n"
    },
    {
      "commit": "1623c81eece58740279b8de802fa5895221f2044",
      "tree": "486aa6a40ea419c14d02bc8561cdb8485f6a5189",
      "parents": [
        "1fdab81e675c6ef76a49b8aabb7eaf4be51d1b80"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Tue Aug 30 03:37:42 2005 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@pobox.com",
        "time": "Tue Aug 30 03:37:42 2005 -0400"
      },
      "message": "[libata] allow ATAPI to be enabled with new atapi_enabled module option\n\nATAPI is getting close to being ready.  To increase exposure, we enable\nthe code in the upstream kernel, but default it to off (present\nbehavior).  Users must pass atapi_enabled\u003d1 as a module option (if\nmodule) or on the kernel command line (if built in) to turn on\ndiscovery of their ATAPI devices.\n"
    }
  ],
  "next": "da61396d24e37258817e42537c482e962b4742f7"
}
