)]}'
{
  "log": [
    {
      "commit": "16c55b038033d8f6f7601996dfae44399666d9ab",
      "tree": "22fb45fb599455cadc29b0f8ac18dd4695eae8b5",
      "parents": [
        "7f9992a23190418592f0810900e4f91546ec41da"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Aug 29 11:58:33 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Aug 31 04:21:13 2007 -0400"
      },
      "message": "libata: implement BROKEN_HPA horkage and apply it to affected drives\n\nSome drives choke on READ_NATIVE_MAX_ADDRESS[_EXT].  Implement\nATA_HORKAGE_BROKEN_HPA and apply it to affected drives.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "b8b275efc28e34f9b1d1e382d0b02dfa381b2a79",
      "tree": "81eea69b15307e96afb63d676f9027268a67cca8",
      "parents": [
        "f0a664bbd1839fbe9f57564983f39bfc6c6f931d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Jul 10 15:55:43 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Jul 24 16:55:01 2007 -0400"
      },
      "message": "ata_piix: fix suspend/resume for some TOSHIBA laptops\n\nACPI implementations in several TOSHIBA laptops are weird and burn cpu\ncycles for tens of seconds while trying to suspend if the PCI device\nfor the ATA controller is disabled when the ACPI suspend is called.\n\nThis patch uses DMI to match those machines and bypass device disable\non those machines during suspend.  As the device needs to be put into\nenabled state on resume without affecting PCI enable count, matching\nresume callback uses __pci_reenable_device().\n\nThis bug is reported in bugzilla bug 7780.\n\n  http://bugzilla.kernel.org/show_bug.cgi?id\u003d7780\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e6f194d8f6f50da6837af637b2fd839c34185f7a",
      "tree": "f3c479a2bc24d49a150ff183e2614ee0f76cb366",
      "parents": [
        "7578634990fb47cc30083fbd812689aa6deacfc0",
        "b91421749a1840148d8c81637c03c0ace3f35269"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 22 11:36:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 22 11:36:49 2007 -0700"
      },
      "message": "Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (60 commits)\n  [SCSI] libsas: make ATA functions selectable by a config option\n  [SCSI] bsg: unexport sg v3 helper functions\n  [SCSI] bsg: fix bsg_unregister_queue\n  [SCSI] bsg: make class backlinks\n  [SCSI] 3w-9xxx: add support for 9690SA\n  [SCSI] bsg: fix bsg_register_queue error path\n  [SCSI] ESP: Increase ESP_BUS_TIMEOUT to 275.\n  [SCSI] libsas: fix scr_read/write users and update the libata documentation\n  [SCSI] mpt fusion: update Kconfig help\n  [SCSI] scsi_transport_sas: add destructor for bsg\n  [SCSI] iscsi_tcp: buggered kmalloc()\n  [SCSI] qla2xxx: Update version number to 8.02.00-k2.\n  [SCSI] qla2xxx: Add ISP25XX support.\n  [SCSI] qla2xxx: Use pci_try_set_mwi().\n  [SCSI] qla2xxx: Use PCI-X/PCI-Express read control interfaces.\n  [SCSI] qla2xxx: Re-factor isp_operations to static structures.\n  [SCSI] qla2xxx: Validate mid-layer \u0027underflow\u0027 during check-condition handling.\n  [SCSI] qla2xxx: Correct setting of \u0027current\u0027 and \u0027supported\u0027 speeds during FDMI registration.\n  [SCSI] qla2xxx: Generalize iIDMA support.\n  [SCSI] qla2xxx: Generalize FW-Interface-2 support.\n  ...\n"
    },
    {
      "commit": "5ddf24c5ea9d715dc4f5d5d5dd1c9337d90466dc",
      "tree": "6ba89094decfada468fba1f4670b9395c6f66e42",
      "parents": [
        "4e57c517b3cbaceb7438eeec879ca129fc17442c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:41 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:26:26 2007 -0400"
      },
      "message": "libata: implement EH fast drain\n\nIn most cases, when EH is scheduled, all in-flight commands are\naborted causing EH to kick in immediately.  However, in some cases\n(especially with PMP), it\u0027s unclear which commands are affected by the\nerror condition and although aborting all in-flight commands work, it\nisn\u0027t optimal and may cause unnecessary disruption.  On the other\nhand, waiting for in-flight commands to drain themselves can take up\nto 30seconds.\n\nThis patch implements EH fast drain to handle such situations.  It\ngives in-flight commands some time to finish up but doesn\u0027t wait for\ntoo long.  After EH is scheduled, fast drain timer is started and if\nno other completion occurs in ATA_EH_FASTDRAIN_INTERVAL all in-flight\ncommands are aborted.  If any completion occurred in the interval, the\nport is given another interval to finish up itself.\n\nCurrently ATA_EH_FASTDRAIN_INTERVAL is 3 secs which should be enough\nfor finishing up most commands.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f8f1e1cc0cd4d75c73e9a55a0ede8958e4fa14f1",
      "tree": "91eaf4895b09923dc4830fa874de25d9eef105d9",
      "parents": [
        "1ae463171cc1b1ea6dad7bcb298e96c073e7373e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:40 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:26:25 2007 -0400"
      },
      "message": "libata: reorganize ata_ehi_hotplugged()\n\n__ata_ehi_hotplugged() now has no users.  Regorganize\nata_ehi_hotplugged() such that a new function ata_ehi_schedule_probe()\ndeals with scheduling probing.  ata_ehi_hotplugged() calls it and\nadditionally marks hotplug specific flags.  ata_ehi_schedule_probe()\nwill be used laster.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "008a78961ec72990d09d7625ef9499d7317d040d",
      "tree": "aa356bbd961b7425017a3037fec509ffb761d332",
      "parents": [
        "badc2341579511a247f5993865aa68379e283c5c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:40 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:19:05 2007 -0400"
      },
      "message": "libata: improve SATA PHY speed down logic\n\nsata_down_spd_limit() first reads the current SPD from SStatus and\nlimit the speed to the lower one of one below the current limit or one\nbelow the current SPD in SStatus.  SPD may not be accessible or valid\nwhen SPD down is requested making sata_down_spd_limit() fail when it\u0027s\nmost needed.\n\nThis patch makes the current SPD cached after each successful reset\nand forces GEN I speed (1.5Gbps) if neither of SStatus or the cached\nvalue is valid, so sata_down_spd_limit() is now guaranteed to lower\nthe speed limit if lower speed is available.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "da3dbb17a0e9a9ec7f5aed95f1fddadb790edc9d",
      "tree": "289239e1eb60168321e905c545aa2e2f3a2b5475",
      "parents": [
        "5335b729064e03319cd2d5219770451dbb1d7f67"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:40 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:02:11 2007 -0400"
      },
      "message": "libata: make -\u003escr_read/write callbacks return error code\n\nConvert -\u003escr_read/write callbacks to return error code to better\nindicate failure.  This will help handling of SCR_NOTIFICATION.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "5335b729064e03319cd2d5219770451dbb1d7f67",
      "tree": "72bd078bd714d06d55c555edcf183f2bdf30c9e8",
      "parents": [
        "b64bbc39f2122a2276578e40144af69ef01decd4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:40 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:02:11 2007 -0400"
      },
      "message": "libata: implement AC_ERR_NCQ\n\nWhen an NCQ command fails, all commands in flight are aborted and the\noffending one is reported using log page 10h.  Depending on controller\ncharacteristics and LLD implementation, all commands may appear as\nhaving a device error due to shared TF status making it hard to\ndetermine what\u0027s actually going on.\n\nThis patch adds AC_ERR_NCQ, marks the command reported by log page 10h\nwith it and print extra \"\u003cF\u003e\" after the error report for the command\nto help distinguishing the offending command.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "b64bbc39f2122a2276578e40144af69ef01decd4",
      "tree": "bd760da68bc785490ecd31060d892eeb7123782d",
      "parents": [
        "975530e8a33fdeb1ad80d82fde11d56bf9ed2760"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:39 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:02:11 2007 -0400"
      },
      "message": "libata: improve EH report formatting\n\nRequiring LLDs to format multiple error description messages properly\ndoesn\u0027t work too well.  Help LLDs a bit by making ata_ehi_push_desc()\ninsert \", \" on each invocation.  __ata_ehi_push_desc() is the raw\nversion without the automatic separator.\n\nWhile at it, make ehi_desc interface proper functions instead of\nmacros.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9977126c4b65c1396b665f7a0eeb8c7dede336f9",
      "tree": "91901f1356a57ba311bc5c95c4825504642f7d04",
      "parents": [
        "fe36cb53cfd82f3c0796a0826e1c9caf198c8f97"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 16 14:29:38 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 08:02:10 2007 -0400"
      },
      "message": "libata: add @is_cmd to ata_tf_to_fis()\n\nAdd @is_cmd to ata_tf_to_fis().  This controls bit 7 of the second\nbyte which tells the device whether this H2D FIS is for a command or\nnot.  This cleans up ahci a bit and will be used by PMP.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "1c50dc83f9ca752b1e1b985f1ce33d2695103ffa",
      "tree": "fba4621565a87272d1232281b9457c297d53ea04",
      "parents": [
        "35a7f2f698d309cc50d98e56312dd907427b7ba4"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Tue Jan 30 01:18:41 2007 -0800"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "jejb@mulgrave.localdomain",
        "time": "Wed Jul 18 11:15:13 2007 -0500"
      },
      "message": "[SCSI] sas_ata: ata_post_internal should abort the sas_task\n\nThis patch adds a new field, lldd_task, to ata_queued_cmd so that libata\nusers such as libsas can associate some data with a qc.  The particular\nambition with this patch is to associate a sas_task with a qc; that way,\nif libata decides to timeout a command, we can come back (in\nsas_ata_post_internal) and abort the sas task.\n\nOne question remains: Is it necessary to reset the phy on error, or will\nthe libata error handler take care of it?  (Assuming that one is written,\nof course.)  This patch, as it is today, works well enough to clean\nthings up when an ATA device probe attempt fails halfway through the probe,\nthough I\u0027m not sure this is always the right thing to do.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\n"
    },
    {
      "commit": "75683fe7153c3817bb4fd4491e2a5913af6c463e",
      "tree": "5c7bb12e577a328b41df16d036c7060309493f44",
      "parents": [
        "39ce7128066f2ac5954bcda9f07f429f28166da3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jul 05 13:31:27 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Jul 10 21:30:33 2007 -0400"
      },
      "message": "libata: clean up horkage handling\n\nHorkage handling had the following problems.\n\n* dev-\u003ehorkage was positioned after ATA_DEVICE_CLEAR_OFFSET, so it was\n  cleared before the device is configured.  This broke\n  HORKAGE_DIAGNOSTIC.\n\n* Some used dev-\u003ehorkage while others called ata_device_blacklisted()\n  directly.  This was at best confusing.\n\nThis patch moves dev-\u003ehorkage right after dev-\u003eflags and set the field\naccording to the blacklist during device configuration.  All users\ntest against dev-\u003ehorkage.  ata_device_blacklisted() now has only one\nuser, make it static.  While at it, rename it to ata_dev_blacklisted()\nfor consistency.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d583bc18812f8da52bf25eef9cd111e5fd46a6ab",
      "tree": "7b886a4ce61b7c0bf8085da5e56b323a9a2fa193",
      "parents": [
        "35142ddbf7d81ff3f1d9521611e734b8d5014df2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Jul 04 18:02:07 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Jul 10 21:27:09 2007 -0400"
      },
      "message": "libata: simplify PCI legacy SFF host handling\n\nWith PCI resource fix up for legacy hosts.  We can use the same code\npath to allocate IO resources and initialize host for both legacy and\nnative SFF hosts.  Only IRQ requesting needs to be different.\n\nRename ata_pci_*_native_host() to ata_pci_*_sff_host(), kill all\nlegacy specific functions and use the renamed functions instead.  This\nsimplifies code a lot.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "45a66c1c3ff88e8050dd25e81bafdf79a12a8042",
      "tree": "05b8ae20d034ffe16e0f13b51f43aa9f93eddf2f",
      "parents": [
        "4c75f7416f51b0c6855952467a5db04f9c598f09"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Jul 09 11:46:13 2007 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Jul 10 20:55:04 2007 -0400"
      },
      "message": "libata-core: convert to use cancel_rearming_delayed_work()\n\nWe should not use cancel_work_sync(delayed_work-\u003ework). This works, but not\ngood. We can use cancel_rearming_delayed_work(), this also simplifies the\ncode.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d26fc9551a15fdad0d5de8376a78816b8af44f00",
      "tree": "5c829c1baf499ad1f31ed4b8b41e766b290a6306",
      "parents": [
        "c1e6f28cc5de37dcd113b9668a185c0b9334ba8a"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Jul 06 19:13:52 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:35 2007 -0400"
      },
      "message": "libata: Support chips with 64K PRD quirk\n\nAdd ata_dumb_qc_prep and supporting logic so that a driver can just\nspecify it needs to be helped in this area. 64K entries are split\nas with drivers/ide.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "64578a3de723d502621860f9d4d28f34d001b066",
      "tree": "821e7ad8e8d6c3a0f3224b479ff000e00001a165",
      "parents": [
        "e5fa24dfdb522b642dbe9b8b1b692f68dce89835"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 03:28:16 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:32 2007 -0400"
      },
      "message": "libata-acpi: implement _GTM/_STM support\n\nImplement _GTM/_STM support.  acpi_gtm is added to ata_port which\nstores _GTM parameters over suspend/resume cycle.  A new hook\nata_acpi_on_suspend() is responsible for storing _GTM parameters\nduring suspend.  _STM is executed in ata_acpi_on_resume().  With this\nchange, invoking _GTF is safe on IDE hierarchy and acpi_sata check\nbefore _GTF is removed.\n\nata_acpi_gtm() and ata_acpi_stm() implementation is taken from Alan\nCox\u0027s pata_acpi implementation.  ata_acpi_gtm() is fixed such that the\nresult parameter is not shifted by sizeof(union acpi_object).\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6746544c3b143ca7071d144f1882ccbe1f47b08d",
      "tree": "49106311ab2a748feda2fa91f977f700938d3d5c",
      "parents": [
        "69b16a5f4c4f1dab70d4d555c487c318c6878b3e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 03:28:16 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:31 2007 -0400"
      },
      "message": "libata: reimplement ACPI invocation\n\nThis patch reimplements ACPI invocation such that, instead of\nexporting ACPI details to the rest of libata, ACPI event handlers -\nata_acpi_on_resume() and ata_acpi_on_devcfg() - are used.  These two\nfunctions are responsible for determining whether specific ACPI method\nis used and when.\n\nOn resume, _GTF is scheduled by setting ATA_DFLAG_ACPI_PENDING device\nflag.  This is done this way to avoid performing the action on wrong\ndevice device (device swapping while suspended).\n\nOn every ata_dev_configure(), ata_acpi_on_devcfg() is called, which\nperforms _SDD and _GTF.  _GTF is performed only after resuming and, if\nSATA, hardreset as the ACPI spec specifies.  As _GTF may contain\narbitrary commands, IDENTIFY page is re-read after _GTF taskfiles are\nexecuted.\n\nIf one of ACPI methods fails, ata_acpi_on_devcfg() retries on the\nfirst failure.  If it fails again on the second try, ACPI is disabled\non the device.  Note that successful configuration clears ACPI failed\nstatus.\n\nWith all feature checks moved to the above two functions,\ndo_drive_set_taskfiles() is trivial and thus collapsed into\nata_acpi_exec_tfs(), which is now static and converted to return the\nnumber of executed taskfiles to be used by ata_acpi_on_resume().  As\nfailures are handled properly, ata_acpi_push_id() now returns -errno\non errors instead of unconditional zero.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "fafbae87db88a73b166d3bc3294d209207f27056",
      "tree": "158217a52a396b2be110688f23eacbe25cf1c2d7",
      "parents": [
        "7dcca30a32aadb0520417521b0c44f42d09fe05c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 03:28:16 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jul 09 12:17:31 2007 -0400"
      },
      "message": "libata-acpi: implement ata_acpi_associate()\n\n* Add acpi_handle to ata_host and ata_port.  Rename\n  ata_device-\u003eobj_handle to -\u003eacpi_handle and move it above such that\n  it doesn\u0027t get cleared on reconfiguration.\n\n* Replace ACPI node association which ata_acpi_associate() which is\n  called once during host initialization.  Unlike the previous\n  implementation, ata_acpi_associate() uses ATA_FLAG_ACPI_SATA to\n  choose between IDE or SATA ACPI hierarchy and uses simple child look\n  up instead of recursive walk to match the nodes.  This is way safer\n  and simpler.  Please read the following message for more info.\n\n  http://article.gmane.org/gmane.linux.ide/17554\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "40a1d531f6c894b298e784fd2090d87633e4989a",
      "tree": "2113cae781e8162de10ff1bd17733d423cef0e32",
      "parents": [
        "b9a4197e266a40d5d1d16c9fb2a852cf10743afe"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Jun 27 02:49:38 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jun 27 02:50:08 2007 -0400"
      },
      "message": "libata: kill ATA_HORKAGE_DMA_RW_ONLY\n\nATA_HORKAGE_DMA_RW_ONLY for TORiSAN is verified to be subset of using\nDMA for ATAPI commands which aren\u0027t aligned to 16 bytes.  As libata\nnow doesn\u0027t use DMA for unaligned ATAPI commands, the horkage is\nredundant.  Kill it.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "55f3952d45a439cecc36fd845a87026d04c82931",
      "tree": "12c8a8836a1e127a1f7db2e7633c6a3f4d475b79",
      "parents": [
        "62877f6b0c4943c2231b84b49182a078eb02a777"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jun 25 21:31:05 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jun 27 02:44:18 2007 -0400"
      },
      "message": "libata: kill the infamous abnormal status message\n\nThe infamous abnormal status message triggers on not so abnormal cases\nincluding empty port and even when it\u0027s being triggered on actual\nerrors the info it provides is redundant and out of context - higher\nlevel functions will print the info in better safe later anyway.\n\nAlso, by being triggered all the time, it leads people to think that\nthe abnormality is somehow related to all ATA and system problems\nthey\u0027re experiencing and gives owners of healthy systems unfounded\ndoubts about the integrity of the universe.  Make it a DPRINTK and\nsave the universe.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d92e74d353345d19f762e9501a50b0a5f43f7ba8",
      "tree": "9a526823ddba8dd8cd07bb5d918acf7c5e820db7",
      "parents": [
        "0522b2869d89b095bf417c8cc6fa404842e91903"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Jun 07 16:19:15 2007 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jun 09 22:40:28 2007 -0400"
      },
      "message": "libata-core/sff: Fix multiple assumptions about DMA\n\nThe ata IRQ ack functions are only used when debugging. Unfortunately\nalmost every controller that calls them can cause crashes in some\nconfigurations as there are missing checks for bmdma presence.\n\nIn addition ata_port_start insists of installing DMA buffers and pad\nbuffers for controllers regardless. The SFF controllers actually need to\nmake that decision dynamically at controller setup time and all need the\nsame helper - so we add ata_sff_port_start. Future patches will switch\nthe SFF drivers to use this.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "464cf177df7727efcc5506322fc5d0c8b896f545",
      "tree": "7b6546aab9c5a7f326ddc27c7a456287172f3c64",
      "parents": [
        "a862b5c8cd5d847779a049a5fc8cf5b1e6f5fa07"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun May 27 15:10:40 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jun 04 16:48:34 2007 -0400"
      },
      "message": "libata: always use polling SETXFER\n\nSeveral people have reported LITE-ON LTR-48246S detection failed\nbecause SETXFER fails.  It seems the device raises IRQ too early after\nSETXFER.  This is controller independent.  The same problem has been\nreported for different controllers.\n\nSo, now we have pata_via where the controller raises IRQ before it\u0027s\nready after SETXFER and a device which does similar thing.  This patch\nmakes libata always execute SETXFER via polling.  As this only happens\nduring EH, performance impact is nil.  Setting ATA_TFLAG_POLLING is\nalso moved from issue hot path to ata_dev_set_xfermode() - the only\nplace where SETXFER can be issued.\n\nNote that ATA_TFLAG_POLLING applies only to drivers which implement\nSFF TF interface and use libata HSM.  More advanced controllers ignore\nthe flag.  This doesn\u0027t matter for this fix as SFF TF controllers are\nthe problematic ones.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "bc9a8a7eaa58d802a2b26c75edcc95cb92835db3",
      "tree": "202250109e861ae2ba6dfd2fa407b1b7487dca68",
      "parents": [
        "2f91d81db3060f6d218e32d935b9a18ffca4dde2"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon May 21 15:20:33 2007 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon May 21 20:00:54 2007 -0400"
      },
      "message": "libata: Kiss post_set_mode goodbye\n\nAs of the -mm tree we don\u0027t have post_set_mode users any more.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "13b8d09f5de0aaa3153bbccc98baf247387823dc",
      "tree": "d35c90bd2460d7808595917ccf7c102229353365",
      "parents": [
        "da071b42f73dabbd0daf7ea4c3ff157d53b00648"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 12:29:22 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed May 16 01:18:31 2007 -0400"
      },
      "message": "libata: track spindown status and skip spindown_compat if possible\n\nOur assumption that most distros issue STANDBYNOW seems wrong.  The\nupstream sysvinit and thus many distros including gentoo and opensuse\ndon\u0027t take any action for libata disks on spindown.  We can skip\ncompat handling for these distros so that they don\u0027t need to update\nanything to take advantage of kernel-side shutdown.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3cadbcc09891b8544203f211dac13f9cc4e6832a",
      "tree": "ac85dba0648f6e2be0d057b9afca926d97e24828",
      "parents": [
        "6ddcd3b0201a7ad72294347636d2b4028ddbd95d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 15 03:28:15 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed May 16 01:18:31 2007 -0400"
      },
      "message": "libata-acpi: add ATA_FLAG_ACPI_SATA port flag\n\nWhether a controller needs IDE or SATA ACPI hierarchy is determined by\nthe programming interface of the controller not by whether the\ncontroller is SATA or PATA, or it supports slave device or not.  This\npatch adds ATA_FLAG_ACPI_SATA port flags which tells libata-acpi that\nthe port needs SATA ACPI nodes, and sets the flag for ahci and\nsata_sil24.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6ddcd3b0201a7ad72294347636d2b4028ddbd95d",
      "tree": "ef2d28ea1775693f632705ebe71ad3e451cd69f1",
      "parents": [
        "fe30911b34098db58c21d0f936f6c3f17f32deb8"
      ],
      "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: during revalidation, check n_sectors after device is configured\n\nDevice might be resized during ata_dev_configure() due to HPA or\n(later) ACPI _GTF.  Currently it\u0027s worked around by caching n_sectors\nbefore turning off HPA.  The cached original size is overwritten if\nthe device is reconfigured without being hardreset - which always\nhappens after configuring trasnfer mode.  If the device gets hardreset\nfor some reason after that, revalidation fails with -ENODEV.\n\nThis patch makes size checking more robust by moving n_sectors check\nfrom ata_dev_reread_id() to ata_dev_revalidate() after the device is\nfully configured.  No matter what happens during configuration, a\ndevice must have the same n_sectors after fully configured to be\ntreated as the same device.\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": "f4d6d00466ef4879e4289f18c2f59210a06a7ada",
      "tree": "60a0ec3c2872f1f21c2b546af3e04990b3bfa60b",
      "parents": [
        "1626aeb881236c8cb022b5e4ca594146a951d669"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 01 11:50:15 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 11 18:09:18 2007 -0400"
      },
      "message": "libata: ignore EH scheduling during initialization\n\nlibata enables SCSI host during ATA host activation which happens\nafter IRQ handler is registered and IRQ is enabled.  All ATA ports are\nin frozen state when IRQ is enabled but frozen ports may raise limited\nnumber of IRQs after being frozen - IOW, -\u003efreeze() is not responsible\nfor clearing pending IRQs.  During normal operation, the IRQ handler\nis responsible for clearing spurious IRQs on frozen ports and it\nusually doesn\u0027t require any extra code.\n\nUnfortunately, during host initialization, the IRQ handler can end up\nscheduling EH for a port whose SCSI host isn\u0027t initialized yet.  This\nresults in OOPS in the SCSI midlayer.  This is relatively short window\nand scheduling EH for probing is the first thing libata does after\ninitialization, so ignoring EH scheduling until initialization is\ncomplete solves the problem nicely.\n\nThis problem was spotted by Berck E. Nash in the following thread.\n\n  http://thread.gmane.org/gmane.linux.kernel/519412\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Berck E. Nash \u003cflyboy@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "1626aeb881236c8cb022b5e4ca594146a951d669",
      "tree": "30f3457e4b5d76e62ee192fcc0d52b0ee8a829df",
      "parents": [
        "920a4b1038e442700a1cfac77ea7e20bd615a2c3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri May 04 12:43:58 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 11 18:09:18 2007 -0400"
      },
      "message": "libata: clean up SFF init mess\n\nThe intention of using port_mask in SFF init helpers was to eventually\nsupport exoctic configurations such as combination of legacy and\nnative port on the same controller.  This never became actually\nnecessary and the related code always has been subtly broken one way\nor the other.  Now that new init model is in place, there is no reason\nto make common helpers capable of handling all corner cases.  Exotic\ncases can simply dealt within LLDs as necessary.\n\nThis patch removes port_mask handling in SFF init helpers.  SFF init\nhelpers don\u0027t take n_ports argument and interpret it into port_mask\nanymore.  All information is carried via port_info.  n_ports argument\nis dropped and always two ports are allocated.  LLD can tell SFF to\nskip certain port by marking it dummy.  Note that SFF code has been\ntreating unuvailable ports this way for a long time until recent\nbreakage fix from Linus and is consistent with how other drivers\nhandle with unavailable ports.\n\nThis fixes 1-port legacy host handling still broken after the recent\nnative mode fix and simplifies SFF init logic.  The following changes\nare made...\n\n* ata_pci_init_native_host() and ata_init_legacy_host() both now try\n  to initialized whatever they can and mark failed ports dummy.  They\n  return 0 if any port is successfully initialized.\n\n* ata_pci_prepare_native_host() and ata_pci_init_one() now doesn\u0027t\n  take n_ports argument.  All info should be specified via port_info\n  array.  Always two ports are allocated.\n\n* ata_pci_init_bmdma() exported to be used by LLDs in exotic cases.\n\n* port_info handling in all LLDs are standardized - all port_info\n  arrays are const stack variable named ppi.  Unless the second port\n  is different from the first, its port_info is specified as NULL\n  (tells libata that it\u0027s identical to the last non-NULL port_info).\n\n* pata_hpt37x/hpt3x2n: don\u0027t modify static variable directly.  Make an\n  on-stack copy instead as ata_piix does.\n\n* pata_uli: It has 4 ports instead of 2.  Don\u0027t use\n  ata_pci_prepare_native_host().  Allocate the host explicitly and use\n  init helpers.  It\u0027s simple enough.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9666f4009c22f6520ac3fb8a19c9e32ab973e828",
      "tree": "eaac13cd5890af6298e5576a48c29891f0890bd1",
      "parents": [
        "0a3fd051c7036ef71b58863f8e5da7c3dabd9d3f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri May 04 21:27:47 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 11 18:01:03 2007 -0400"
      },
      "message": "libata: reimplement suspend/resume support using sdev-\u003emanage_start_stop\n\nReimplement suspend/resume support using sdev-\u003emanage_start_stop.\n\n* Device suspend/resume is now SCSI layer\u0027s responsibility and the\n  code is simplified a lot.\n\n* DPM is dropped.  This also simplifies code a lot.  Suspend/resume\n  status is port-wide now.\n\n* ata_scsi_device_suspend/resume() and ata_dev_ready() removed.\n\n* Resume now has to wait for disk to spin up before proceeding.  I\n  couldn\u0027t find easy way out as libata is in EH waiting for the\n  disk to be ready and sd is waiting for EH to complete to issue\n  START_STOP.\n\n* sdev-\u003emanage_start_stop is set to 1 in ata_scsi_slave_config().\n  This fixes spindown on shutdown and suspend-to-disk.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "31daabda16063b64a99a526242add727601e43c3",
      "tree": "771e48219041e0a60f33f439c35324d0a3849224",
      "parents": [
        "b8cffc6ad8c000410186815b7bcc6b76ef1bbb13"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Feb 02 16:50:52 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue May 01 07:49:54 2007 -0400"
      },
      "message": "libata: reimplement reset sequencing\n\nlibata previously depended upon waits in prereset to get resets after\nhotplug right for both spin up and device ready wait.  This was\nnecessary both for reliablity and speed as reset was likely to fail if\ninitiated too early and each try usually took more than 30secs to\nfail.  Previous patches fixed the reliability part by fixing status\nand SCR handling in resets.  This patch remedies the speed part by\nimproving reset sequencing.\n\nPrereset waiting timeout is adjusted to 10s because spinup wait is\nreplaced by reset sequencing and !BSY wait is not as important as\nbefore.  During boot or module loading where the drive is already\nfully spun up, !BSY wait succeeds immediately, so 10s should be enough\nin most cases.  It matters after hotplugging or other error\nconditions, but in those cases, !BSY wait in prereset simply can\u0027t be\nrelied upon due to the varied and weird behaviors ATA controllers and\ndevices show.\n\nReset is now driven by ata_eh_reset_timeouts[] table which contains\ntimeouts for each reset try.  The first reset can be softreset but the\nfollowing ones are always hardreset if available.  Each timeout\ndefines deadline for the reset try.  If a reset try fails, reset is\nretried with the next timeout till the end of the timeout table is\nreached.  If a reset try fails before the timeout with error, libata\nwaits till the deadline of the failed try before retrying.\n\nIOW, the timeout table defines timetable of reset tries such that the\nn\u0027th try always begins at least after the sum of all previous timeouts\nhas passed.  The current timetable defines 4 tries and takes around 1\nminute.\n\n@0\t: First try.  This should succeed most of the time during boot.\n@10\t: 10s is enough to spin up most consumer harddrives.  Give it\n\t  another shot.\n@20\t: 20s should spin up \u003e 99% of working drives.  This has 30s\n\t  timeout for retarded devices needing long idleness post reset.\n@55\t: Final try with 5s timeout just in case.\n\nThe above timetable is trade off between not annoying the device too\nmuch with frequent resets and taking reasonable amount of time in most\ncases.  Some controllers may do better with shorter timeouts while\nothers may fare better with longer but we just can\u0027t rely upon LLD\nwriters to test each controller with wide variety of devices using\nvarious scenarios.  We need default behavior which reasonably fits\nmost cases.\n\nI\u0027ve tested the above timetable on a dozen SATA controllers and a few\nPATA controllers with about a dozen different drives from all major\nvendors and 4 different ODDs from three different vendors for both\nboot and hotplug (if available) cases.\n\nBoot probing is not affected unless the device is broken in which\ncases new code gives up on the port after a minute rather than five or\nnine minutes.  When hotplugging, most devices get detected on the\nfirst or second try.  Multi-platter drives with long spin up time\nwhich sometimes took \u003e 40 secs with the original code, now usually\ncomes up during the second try and at least right after the third try\n@20.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d4b2bab4f26345ea1803feb23ea92fbe3f6b77bc",
      "tree": "30a9826351e597828de2b402f1c41b9fca94cf95",
      "parents": [
        "dc87c3985e9b442c60994308a96f887579addc39"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Feb 02 16:50:52 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue May 01 07:49:53 2007 -0400"
      },
      "message": "libata: add deadline support to prereset and reset methods\n\nAdd @deadline to prereset and reset methods and make them honor it.\nata_wait_ready() which directly takes @deadline is implemented to be\nused as the wait function.  This patch is in preparation for EH timing\nimprovements.\n\n* ata_wait_ready() never does busy sleep.  It\u0027s only used from EH and\n  no wait in EH is that urgent.  This function also prints \u0027be\n  patient\u0027 message automatically after 5 secs of waiting if more than\n  3 secs is remaining till deadline.\n\n* ata_bus_post_reset() now fails with error code if any of its wait\n  fails.  This is important because earlier reset tries will have\n  shorter timeout than the spec requires.  If a device fails to\n  respond before the short timeout, reset should be retried with\n  longer timeout rather than silently ignoring the device.\n\n  There are three behavior differences.\n\n  1. Timeout is applied to both devices at once, not separately.  This\n     is more consistent with what the spec says.\n\n  2. When a device passes devchk but fails to become ready before\n     deadline.  Previouly, post_reset would just succeed and let\n     device classification remove the device.  New code fails the\n     reset thus causing reset retry.  After a few times, EH will give\n     up disabling the port.\n\n  3. When slave device passes devchk but fails to become accessible\n     (TF-wise) after reset.  Original code disables dev1 after 30s\n     timeout and continues as if the device doesn\u0027t exist, while the\n     patched code fails reset.  When this happens, new code fails\n     reset on whole port rather than proceeding with only the primary\n     device.\n\n  If the failing device is suffering transient problems, new code\n  retries reset which is a better behavior.  If the failing device is\n  actually broken, the net effect is identical to it, but not to the\n  other device sharing the channel.  In the previous code, reset would\n  have succeeded after 30s thus detecting the working one.  In the new\n  code, reset fails and whole port gets disabled.  IMO, it\u0027s a\n  pathological case anyway (broken device sharing bus with working\n  one) and doesn\u0027t really matter.\n\n* ata_bus_softreset() is changed to return error code from\n  ata_bus_post_reset().  It used to return 0 unconditionally.\n\n* Spin up waiting is to be removed and not converted to honor\n  deadline.\n\n* To be on the safe side, deadline is set to 40s for the time being.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "0d64a233fe6a8fd45a062fe125159854ffed60c7",
      "tree": "012d6288c549e2186555c280e7960cebf693415d",
      "parents": [
        "1188c0d83ca010c3799711e85e63dbde122e6a90"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 23 02:41:05 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:51:33 2007 -0400"
      },
      "message": "libata: separate ATA_EHI_DID_RESET into DID_SOFTRESET and DID_HARDRESET\n\nSeparate ATA_EHI_DID_RESET into ATA_EHI_DID_SOFTRESET and\nATA_EHI_DID_HARDRESET.  ATA_EHI_DID_RESET is redefined as OR of the\ntwo flags.  This patch doesn\u0027t introduce any behavior change.  This\nwill be used later to determine whether _SDD is necessary or not.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "1e999736cafdffc374f22eed37b291129ef82e4e",
      "tree": "d71e0907827841de66f172dec0cc4d550bd2cec8",
      "parents": [
        "6bfff31e77cfa1b13490337e5a4dbaa3407e83ac"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Wed Apr 11 00:23:13 2007 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:06 2007 -0400"
      },
      "message": "libata: HPA support\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\n\nAdd support for ignoring the BIOS HPA result (off by default) and setting\nthe disk to the full available size unless already frozen.\n\nTested with various platforms/disks and confirmed to work with the\nMacintosh (which broke earlier) and ata_piix (breakage due to the LBA48\nreadback that Tejun fixed).\n\nFor normal users this brings us, I believe, to feature parity with old IDE\n(and of course more featured in some areas too).\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": "21b0ad4fb8306ac2bf5a249ffc978b1b8924c7d0",
      "tree": "9f82cc6a4bca146ce1021f0825cc12f18f9063b9",
      "parents": [
        "d491b27b1959565671e2c05dff09b5f535a854ce"
      ],
      "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: add init helpers including ata_pci_prepare_native_host()\n\nThese will be used to convert LLDs to new init model.\n\n* Add irq_handler field to port_info.  In new init model, requesting\n  IRQ is LLD\u0027s responsibility and libata doesn\u0027t need to know about\n  irq_handler.  Most LLDs can simply register their irq_handler but\n  some need different irq_handler depending on specific chip.  The\n  added port_info-\u003eirq_handler field can be used by LLDs to select\n  the matching IRQ handler in such cases.\n\n* Add ata_dummy_port_info.\n\n* Implement ata_pci_prepare_native_host(), a helper to alloc ATA host,\n  acquire all resources and init the host in one go.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d491b27b1959565671e2c05dff09b5f535a854ce",
      "tree": "207711a735f7460649f21bd9eedff04eb55afa11",
      "parents": [
        "0f834de3ea61aacacf1fac59ba9e82680f83c846"
      ],
      "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: convert native PCI host handling to new init model\n\nConvert native PCI host handling to alloc-init-register model.  New\nfunction ata_pci_init_native_host() follows the new init model and\nreplaces ata_pci_init_native_mode().  As there are remaining LLD\nusers, the old function isn\u0027t removed yet.\n\nata_pci_init_one() is reimplemented using the new function and now\nfully converted to new init model.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f5cda257296fbd3683b1f568f2d94d3caaacf74d",
      "tree": "a0c31206f6a7f299c11f233a22f3b8b8aa836151",
      "parents": [
        "f31871951b38daf2d7ca17daad59fdb735062da3"
      ],
      "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: implement ata_host_alloc_pinfo() and ata_host_register()\n\nImplement ata_host_alloc_pinfo() and ata_host_register().  These helpers\nwill be used in the following patches to adopt new init model.\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": "ecef7253235e7a9365afe08a508e11bed91c1c11",
      "tree": "2d4ae5a148c38a3371a6be609594833733f24c8a",
      "parents": [
        "4911487a34baa89ec5b5f09a661761b73091fbec"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Apr 17 23:44:06 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:02 2007 -0400"
      },
      "message": "libata: separate out ata_host_start()\n\nSeparate out ata_host_start() from ata_device_add().  ata_host_start()\ncalls -\u003eport_start on each port if available and freezes the port.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "4911487a34baa89ec5b5f09a661761b73091fbec",
      "tree": "f79f6fa1a061cbbfcaac9a1581c7cf9600a82441",
      "parents": [
        "bf33554290bb6a6b2bd8827076f89fb17fb19e3d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Apr 17 23:44:06 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:02 2007 -0400"
      },
      "message": "libata: allocate ap separately from shost\n\nDon\u0027t embed ap inside shost.  Allocate it separately and point it back\nfrom shosts\u0027s hostdata.  This makes port allocation more flexible and\nallows regular ATA and SAS share host alloc/init paths.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "5a5dbd18a7496ed403f6f54bb20c955c65482fa5",
      "tree": "031eec40ab42ac4ab04e59db539b8126ac31fb6d",
      "parents": [
        "1234010684bb9cde51125ec3d1c71054a9f24f47"
      ],
      "author": {
        "name": "Mark Lord",
        "email": "liml@rtr.ca",
        "time": "Fri Mar 16 10:22:26 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:01 2007 -0400"
      },
      "message": "libata: add support for READ/WRITE LONG\n\nThe READ/WRITE LONG commands are theoretically obsolete,\nbut the majority of drives in existance still implement them.\n\nThe WRITE_LONG and WRITE_LONG_ONCE commands are of particular\ninterest for fault injection testing -- eg. creating \"media errors\"\nat specific locations on a disk.\n\nThe fussy bit is that these commands require a non-standard\nsector size, usually 520 bytes instead of 512.\n\nThis patch adds support to libata for READ/WRITE LONG commands\nissued via SG_IO/ATA_16.\n\nSigned-off-by:  Mark Lord \u003cmlord@pobox.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "a76b62ca70662cd0ca98edf366c6637009a95f7d",
      "tree": "1f93b3bec4a77ed3146a1d9de29140c525b35479",
      "parents": [
        "9d2c7c75f889a3eefad016c71f651b0796e0a6e9"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Fri Mar 09 09:34:07 2007 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:15:58 2007 -0400"
      },
      "message": "libata: Change prototype of mode_filter to remove ata_port*\n\nWith Tejun having added adev-\u003eap some time ago we can get rid of the\nalmost unused port being passed to mode filters. And while we are\ndoing filters, lets turn on the !IORDY filter as well.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\n\nWith some hand massaging from\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "04351821b43e6c0c91ad50d7e4be54a935f749e1",
      "tree": "1cca629143ad5ac370129a6188f951077059b19b",
      "parents": [
        "fcc2f69a6fad1543b466db9c35aa5a2f364eb3d4"
      ],
      "author": {
        "name": "Alan",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Tue Mar 06 02:37:52 2007 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:15:58 2007 -0400"
      },
      "message": "pata: expose set_mode method so it can be wrapped\n\nThis splits set_mode into do_set_mode and the wrapper so that a driver can\ncall the standard method inside its own.  This in theory also obsoletes\n-\u003epost_set_mode().\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "be0d18dff5fae83845801929f297977c10ab99ad",
      "tree": "6551bf28f7123e19cee86717db689e6d8d530973",
      "parents": [
        "5aea408df5ae459cb29b91d45fa0f8bc1bee924e"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Tue Mar 06 02:37:56 2007 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:15:55 2007 -0400"
      },
      "message": "libata: cable detection fixes\n\n2.6.21-rc has horrible problems with libata and PATA cable types (and\nthus speeds). This occurs because Tejun fixed a pile of other bugs and\nwe now do cable detect enforcement for drive side detection properly.\n\nUnfortunately we don\u0027t do the process around cable detection right. Tejun\nidentified the problem and pointed to the right Annex in the spec, this patch\nimplements the rest of the needed changes.\n\nWe add a -\u003ecable_detect() method called after the identify\nsequence which allows a host to do host side detection at this point\nshould it wish, or to modify the results of the drive side identify.\n\nThis separate -\u003ecable_detect method also cleans up a lot of code because\nmany drivers have their own error_handler methods which really just set\nthe cable type.\n\nIf there is no -\u003ecable_detect method the cable type is left alone so a\ndriver setting it earlier (eg because it has the SATA flags set or\nbecause it uses the old error_handler approach) will still do the right\nthing (or at least the same thing) as before.\n\nThis patch simply adds the cable_detect method and helpers it doesn\u0027t use\nthem but other follow up patches will (ie Adrian please don\u0027t submit\npatches to unexport them ;))\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "cd0d3bbcdd650651b7ccfaf55d107e3fc237d95a",
      "tree": "9c095bdb9056f5b36d3d3640a3f497cabfdd1f92",
      "parents": [
        "d88184fb2348a50f7c34f5d49a901c875b2e0114"
      ],
      "author": {
        "name": "Alan",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Mar 02 00:56:15 2007 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:15:55 2007 -0400"
      },
      "message": "libata: dev_config does not need ap and adev passing\n\nIt used to be impossible to get from ata_device to ata_port but that is\nno longer true. Various methods have been cleaned up over time but\ndev_config still takes both and most users don\u0027t need both anyway. Tidy\nthis one up\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "43727fbc753c63f9d2764c56467303698cc52c14",
      "tree": "66f4d58a5e9098f85e95636abbce675ebea8c523",
      "parents": [
        "351772658a4d1acc0221a6e30676bb0594e74812"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Feb 25 16:50:52 2007 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:15:54 2007 -0400"
      },
      "message": "[libata] export sata_print_link_status()\n\nTo be used in sata_mv\u0027s exception handling code, and overall is a\ngenerally useful function.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6f23a31d1cbe791a1ce86ffa9b23251ab0a1ef45",
      "tree": "1c8f50f7e880d156e632a96dee270cb982d96edc",
      "parents": [
        "18d6e9d51891f91af4e7351cbab3cb180bb9f430"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Mon Apr 02 11:39:25 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Apr 04 02:12:27 2007 -0400"
      },
      "message": "libata: Limit ATAPI DMA to R/W commands only for TORiSAN DVD drives (take 3)\n\npatch 4/4:\n\n  Limit ATAPI DMA to R/W commands only for TORiSAN DRD-N216 DVD-ROM drives\n  (http://bugzilla.kernel.org/show_bug.cgi?id\u003d6710)\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "18d6e9d51891f91af4e7351cbab3cb180bb9f430",
      "tree": "5ba793fd334c4afbbcdfeb00353f46c9d3aaf6a2",
      "parents": [
        "56287768e31268969abd94b38b931a29d1ced1ce"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Mon Apr 02 11:34:15 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Apr 04 02:12:27 2007 -0400"
      },
      "message": "libata: Limit max sector to 128 for TORiSAN DVD drives (take 3)\n\npatch 3/4:\n  The TORiSAN drive locks up when max sector \u003d\u003d 256.\n  Limit max sector to 128 for the TORiSAN DRD-N216 drives.\n  (http://bugzilla.kernel.org/show_bug.cgi?id\u003d6710)\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7152764700559b6a4041fdaba345df9a5cd962f0",
      "tree": "2b5d3bc3d4c36b4e0a5599be4db93a4f72aaf90d",
      "parents": [
        "277239f228654fc03affdf2aa0e7a3969f420415"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Mon Apr 02 11:28:52 2007 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Apr 04 02:12:27 2007 -0400"
      },
      "message": "libata: reorder HSM_ST_FIRST for easier decoding (take 3)\n\npatch 1/4:\n  Reorder HSM_ST_FIRST, such that the task state transition is easier decoded with human eyes.\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6ffa01d88c9dd45e2ed917b5eeeb494d07efb1ab",
      "tree": "3fe262ccaa1c0f8c5e5d187216d8bfc70db34d95",
      "parents": [
        "438ac6d5e3f8106a6bd1a5682c508d660294a85d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Mar 02 17:32:47 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Mar 02 18:30:35 2007 -0500"
      },
      "message": "libata: add CONFIG_PM to libata core layer\n\nConditionalize all PM related stuff in libata core layer using\nCONFIG_PM.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "032af1ce16d496b825adde0fa03948785ee16830",
      "tree": "314aa36e4941a7db9c446da103379c530c9d785b",
      "parents": [
        "562aa1d4c6a874373f9a48ac184f662fbbb06a04"
      ],
      "author": {
        "name": "Alan",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Mar 01 17:36:46 2007 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Mar 02 17:42:48 2007 -0500"
      },
      "message": "libata-core: Fix simplex handling\n\nThe initial simplex handling code is fooled if you suspend and resume.\nThis also causes problems with some single channel controllers which\nclaim to be simplex.\n\nThe fix is fairly simple, instead of keeping a flag to remember if we\ngave away the simplex channel we remember the actual owner. As the owner\nis always part of the host_set we don\u0027t even need a refcount.\n\nKnowing the owner also means we can reassign simplex DMA channels in\nfuture hotplug code etc if we need to\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\n(and a signed-off for the patch I sent before while I remember)\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "10305f0f8e642590c69674d08bd22accef610aed",
      "tree": "81caa503dd092150229f63efbb2f59ad924a8bc7",
      "parents": [
        "098cdff3d40286f87062c17cd07e98ca7ad94184"
      ],
      "author": {
        "name": "Alan",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Tue Feb 20 18:01:59 2007 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Feb 25 15:41:40 2007 -0500"
      },
      "message": "Add id_to_dma_mode function for printing DMA modes\n\nAlso export dev_disable as this is needed by drivers doing slave decode\nfiltering, which will follow shortly\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "44877b4e22f391d39c6589412106a3668e81a05b",
      "tree": "10bf134c2c8c15e3504d67461b42f53c6de88523",
      "parents": [
        "5ce0cf6fafd02fb4c43fc1a1bee6069d6c0a36b1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Feb 21 01:06:51 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:20 2007 -0500"
      },
      "message": "libata: s/ap-\u003eid/ap-\u003eprint_id/g\n\nata_port has two different id fields - id and port_no.  id is\nsystem-wide 1-based unique id for the port while port_no is 0-based\nhost-wide port number.  The former is primarily used to identify the\nATA port to the user in printk messages while the latter is used in\nvarious places in libata core and LLDs to index the port inside the\nhost.\n\nThe two fields feel quite similar and sometimes ap-\u003eid is used in\nplace of ap-\u003eport_no, which is very difficult to spot.  This patch\nrenames ap-\u003eid to ap-\u003eprint_id to reduce the possibility of such bugs.\n\nSome printk messages are adjusted such that id string (ata%u[.%u])\nisn\u0027t printed twice and/or to use ata_*_printk() instead of hardcoded\nid format.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6d1245bf294e9ea65b3717be9fa0338bfb6ff6c9",
      "tree": "85efbfead0ca76764f83d66151a6124e662d50f6",
      "parents": [
        "4c90d9717ae27dddf4b02ed7d683e502b539cd1c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Feb 20 23:20:27 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:18 2007 -0500"
      },
      "message": "libata: separate out ata_ncq_enabled()\n\nSeparate out ata_ncq_enabled().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7d47e8d4d4fb0c3d3bdc706759e70d5453b61ec3",
      "tree": "f197f58dde8fbc795a37c9645b02490749f16e7a",
      "parents": [
        "4ae72a1e469a3bcfd3c1f77dac62392c489bf9ca"
      ],
      "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:16 2007 -0500"
      },
      "message": "libata: put some intelligence into EH speed down sequence\n\nThe current EH speed down code is more of a proof that the EH\nframework is capable of adjusting transfer speed in response to error.\nThis patch puts some intelligence into EH speed down sequence.  The\nrules are..\n\n* If there have been more than three timeout, HSM violation or\n  unclassified DEV errors for known supported commands during last 10\n  mins, NCQ is turned off.\n\n* If there have been more than three timeout or HSM violation for known\n  supported command, transfer mode is slowed down.  If DMA is active,\n  it is first slowered by one grade (e.g. UDMA133-\u003e100).  If that\n  doesn\u0027t help, it\u0027s slowered to 40c limit (UDMA33).  If PIO is\n  active, it\u0027s slowered by one grade first.  If that doesn\u0027t help,\n  PIO0 is forced.  Note that this rule does not change transfer mode.\n  DMA is never degraded into PIO by this rule.\n\n* If there have been more than ten ATA bus, timeout, HSM violation or\n  unclassified device errors for known supported commands \u0026\u0026 speeding\n  down DMA mode didn\u0027t help, the device is forced into PIO mode.  Note\n  that this rule is considered only for PATA devices and is pretty\n  difficult to trigger.\n\nOne error can only trigger one rule at a time.  After a rule is\ntriggered, error history is cleared such that the next speed down\nhappens only after some number of errors are accumulated.  This makes\nsense because now speed down is done in bigger stride.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "a619f981b477035027dd27dfbee6148b4cd4a83c",
      "tree": "2dd5fa1aa6221bbce64e0f03b2f534716a9f78ab",
      "parents": [
        "c8f71b01a50597e298dc3214a2f2be7b8d31170c"
      ],
      "author": {
        "name": "Akira Iguchi",
        "email": "akira2.iguchi@toshiba.co.jp",
        "time": "Fri Jan 26 16:28:18 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Feb 21 04:58:16 2007 -0500"
      },
      "message": "libata: PATA driver for Celleb\n\nThis is the patch for PATA controller of Celleb.\n\nThis driver uses the managed iomap (devres).\n\nBecause this driver needs special taskfile accesses, there is\na copy of ata_std_softreset(). ata_dev_try_classify() is exported\nso that it can be used in this function.\n\nSigned-off-by: Kou Ishizaki \u003ckou.ishizaki@toshiba.co.jp\u003e\nSigned-off-by: Akira Iguchi \u003cakira2.iguchi@toshiba.co.jp\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "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": "f834e49f1a09414e9618ff0c9cd83c2114032bb6",
      "tree": "9b661b6dc12f3d7487a23ef43545322814562567",
      "parents": [
        "61f216c7196e15e56d97c5a75af01e6684f17fa3"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Wed Feb 07 13:46:00 2007 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Feb 15 18:04:01 2007 -0500"
      },
      "message": "libata: Add a host flag to indicate lack of IORDY capability\n\nThis is the first preparation to doing the !IORDY cases properly.  Further\ndiffs will then add the needed logic to do it right.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "66efc5a7e3061c3597ac43a8bb1026488d57e66b",
      "tree": "c7507a6d7a36f63e61962db9ff2ec024249fac9c",
      "parents": [
        "591a6e8ee7c8ffbbeaf23fec23796c0cfa316a41"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Feb 06 22:19:10 2007 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:40 2007 -0500"
      },
      "message": "libata: kill ATA_ENABLE_PATA\n\nThe ATA_ENABLE_PATA define was never meant to be permanent, and in\nrecent kernels, it\u0027s already been unconditionally enabled.  Remove.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "836250069fc0eeebe8b6aed772281535cc6e34f9",
      "tree": "73c886ae7fd75dd2c9b5b17e11ea3b6b76b42fed",
      "parents": [
        "7f25377043925554cb9f3f9d8ada3390f71a5d10"
      ],
      "author": {
        "name": "Akira Iguchi",
        "email": "akira2.iguchi@toshiba.co.jp",
        "time": "Fri Jan 26 16:27:32 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:38 2007 -0500"
      },
      "message": "libata: add another IRQ calls (core and headers)\n\nThis patch is against the libata core and headers.\n\nTwo IRQ calls are added in ata_port_operations.\n- irq_on() is used to enable interrupts.\n- irq_ack() is used to acknowledge a device interrupt.\n\nIn most drivers, ata_irq_on() and ata_irq_ack() are used for\nirq_on and irq_ack respectively.\n\nIn some drivers (ex: ahci, sata_sil24) which cannot use them\nas is, ata_dummy_irq_on() and ata_dummy_irq_ack() are used.\n\nSigned-off-by: Kou Ishizaki \u003ckou.ishizaki@toshiba.co.jp\u003e\nSigned-off-by: Akira Iguchi \u003cakira2.iguchi@toshiba.co.jp\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "0d5ff566779f894ca9937231a181eb31e4adff0e",
      "tree": "d1c7495c932581c1d41aa7f0fdb303348da49106",
      "parents": [
        "1a68ff13c8a9b517de3fd4187dc525412a6eba1b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Feb 01 15:06:36 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:38 2007 -0500"
      },
      "message": "libata: convert to iomap\n\nConvert libata core layer and LLDs to use iomap.\n\n* managed iomap is used.  Pointer to pcim_iomap_table() is cached at\n  host-\u003eiomap and used through out LLDs.  This basically replaces\n  host-\u003emmio_base.\n\n* if possible, pcim_iomap_regions() is used\n\nMost iomap operation conversions are taken from Jeff Garzik\n\u003cjgarzik@pobox.com\u003e\u0027s iomap branch.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "b878ca5d37953ad1c4578b225a13a3c3e7e743b7",
      "tree": "5a2b3e8bf35f0eb2f2dbc760a9cc66dbb961cf0e",
      "parents": [
        "24dc5f33ea4b504cfbd23fa159a4cacba8e4d800"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Jan 20 16:00:28 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:37 2007 -0500"
      },
      "message": "libata: remove unused functions\n\nNow that all LLDs are converted to use devres, default stop callbacks\nare unused.  Remove them.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f0d36efdc624beb3d9e29b9ab9e9537bf0f25d5b",
      "tree": "eac4efb465aa682d6eaac61f76b3174ffd9fd8cd",
      "parents": [
        "0529c159dbdd79794796c1b50b39442d72efbe97"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Jan 20 16:00:28 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:37 2007 -0500"
      },
      "message": "libata: update libata core layer to use devres\n\nUpdate libata core layer to use devres.\n\n* ata_device_add() acquires all resources in managed mode.\n\n* ata_host is allocated as devres associated with ata_host_release.\n\n* Port attached status is handled as devres associated with\n  ata_host_attach_release().\n\n* Initialization failure and host removal is handedl by releasing\n  devres group.\n\n* Except for ata_scsi_release() removal, LLD interface remains the\n  same.  Some functions use hacky is_managed test to support both\n  managed and unmanaged devices.  These will go away once all LLDs are\n  updated to use devres.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "0529c159dbdd79794796c1b50b39442d72efbe97",
      "tree": "417e2285c048ca582ba6e1f40119930c460250ad",
      "parents": [
        "9ac7849e35f705830f7b016ff272b0ff1f7ff759"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Jan 20 16:00:26 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:37 2007 -0500"
      },
      "message": "libata: implement ata_host_detach()\n\nImplement ata_host_detach() which calls ata_port_detach() for each\nport in the host and export it.  ata_port_detach() is now internal and\nthus un-exported.  ata_host_detach() will be used as the \u0027deregister\nfrom libata layer\u0027 function after devres conversion.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "726f0785b608d09bdd64bdbadc09217ebbf9920e",
      "tree": "cefc97e9d5fefb2735b1b7a5ca22d3b3cc742b13",
      "parents": [
        "16454445e1f0ca21ca2f29accb58478a7ff765a2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Jan 03 17:30:39 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:31 2007 -0500"
      },
      "message": "libata: kill qc-\u003ensect and cursect\n\nlibata used two separate sets of variables to record request size and\ncurrent offset for ATA and ATAPI.  This is confusing and fragile.\nThis patch replaces qc-\u003ensect/cursect with qc-\u003enbytes/curbytes and\nkills them.  Also, ata_pio_sector() is updated to use bytes for\nqc-\u003ecursg_ofs instead of sectors.  The field used to be used in bytes\nfor ATAPI and in sectors for ATA.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "553c4aa630af7bc885e056d0436e4eb7f238579b",
      "tree": "5a6cf3b15e05309fcfbdb5f68471e2a20b235613",
      "parents": [
        "8bfa79fcb81d2bdb043f60ab4171704467808b55"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Dec 26 19:39:50 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:30 2007 -0500"
      },
      "message": "libata: handle pci_enable_device() failure while resuming\n\nHandle pci_enable_device() failure while resuming.  This patch kills\nthe \"ignoring return value of \u0027pci_enable_device\u0027\" warning message and\npropagates __must_check through ata_pci_device_do_resume().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d4013f07bd5380178bf28ef1cd76649779367288",
      "tree": "93e9dc99e79b7b858912474dd2e7fc1578c22a1f",
      "parents": [
        "f20b16ff7c19d1c369ee07470952aca093551ed0"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Fri Dec 15 13:08:50 2006 -0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:29 2007 -0500"
      },
      "message": "[PATCH] pci: Move PCI_VDEVICE from libata to core\n\nUpdated diff which doesn\u0027t move the comment as per Jeff\u0027s request and\ncorrects the docs as per report on l/k\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f20b16ff7c19d1c369ee07470952aca093551ed0",
      "tree": "c1c4aa20688be65754b73e757650c45f416bf788",
      "parents": [
        "155d2916d9474f81178f501664499f40833c59b2"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Dec 11 11:14:06 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 09 17:39:29 2007 -0500"
      },
      "message": "[libata] trim trailing whitespace\n\nMost of these contributed by that mysterious figger known as A.C.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "0777721c9b270f087bf967369c9acbee3f1a12ae",
      "tree": "dcdbd08724910372afc83c0ae4c80ab744f4fca4",
      "parents": [
        "05c39e502e964ae66336ca8e6960b200cff26f94"
      ],
      "author": {
        "name": "Alan",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Wed Jan 31 17:47:24 2007 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Feb 02 11:52:05 2007 -0500"
      },
      "message": "libata: Fix ata_busy_wait() kernel docs\n\n\u003e Looks like you should use ata_busy_wait() here, rather than reproducing\n\u003e the same code again.\n\nIt waits in 10uS chunks while 1uS chunks were used in the workaround.\nCould indeed do that once I know the fix is right. While I\u0027m at it the\nata_busy_wait kerneldoc is borked so here\u0027s a fix\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "b2a8bbe67d73631c71492fd60b757fc50a87f182",
      "tree": "b6a04a5ce8eee52a18fc690a9a1e1f7c1f93ded2",
      "parents": [
        "0291f95fdb5fcd91cc077aafabea2c5b109fa8a8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jan 25 19:40:05 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Jan 25 17:26:01 2007 -0500"
      },
      "message": "libata: implement ATA_FLAG_IGN_SIMPLEX and use it in sata_uli\n\nSome uli controllers have stuck SIMPLEX bit which can\u0027t be cleared\nwith ata_pci_clear_simplex(), but the controller is capable of doing\nDMAs on both channels simultaneously.  Implement ATA_FLAG_IGN_SIMPLEX\nwhich makes libata ignore the simplex bit and use it in sata_uli.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "b229a7b0aed808f2ef6a5e9dbf78b0f17cefb4d0",
      "tree": "2333566c51f5eabc6c1a638155d8efaa6ebd64b5",
      "parents": [
        "a52865c239b1bc4f62e387509b1ad3415e476ee5"
      ],
      "author": {
        "name": "Alan",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Wed Jan 24 11:47:07 2007 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 24 19:55:16 2007 -0500"
      },
      "message": "libata: set_mode, Fix the FIXME\n\nWhen set_mode() changed -\u003eset_mode didn\u0027t adapt. This makes the needed\nchanges and removes the relevant FIXME case.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d0f29485686d9d1c4f31240953a742d5dd4fdb72",
      "tree": "5ee0078ac6ace0e4b2a9acfc17594fe006874622",
      "parents": [
        "7a801184fa480e11e6431f184a5bdf31f63326fb"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@linux.vnet.ibm.com",
        "time": "Wed Jan 17 12:32:28 2007 -0600"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 24 02:04:34 2007 -0500"
      },
      "message": "libata: Initialize qc-\u003epad_len\n\nInitialize qc-\u003epad_len for each new command. This ensures\nthat pad_len is not set to a stale value for zero data\nlength commands.\n\nSigned-off-by: Brian King \u003cbrking@linux.vnet.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7a801184fa480e11e6431f184a5bdf31f63326fb",
      "tree": "b68cc5daee76cc564f7f48cc038f52be4a855be7",
      "parents": [
        "07c53dac4904206a50dd7c87adabbb1acff903fb"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@linux.vnet.ibm.com",
        "time": "Wed Jan 17 12:32:12 2007 -0600"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 24 02:04:34 2007 -0500"
      },
      "message": "libata: Fixup n_elem initialization\n\nFixup the inialization of qc-\u003en_elem. It currently gets\ninitialized to 1 for commands that do not transfer any data.\nFix this by initializing n_elem to 0 and only setting to 1\nin ata_scsi_qc_new when there is data to transfer. This fixes\nsome problems seen with SATA devices attached to ipr adapters.\n\nSigned-off-by: Brian King \u003cbrking@linux.vnet.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "501e0c500217e38276d61445ee0839b3f2c66d05",
      "tree": "b84db101bc9c68dd37aae7eba062abde5001ad80",
      "parents": [
        "96bc103f4c4e470d82ba5e372191d02ad715da45"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Jan 17 11:34:02 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jan 19 19:18:49 2007 -0500"
      },
      "message": "libata: initialize qc-\u003edma_dir to DMA_NONE\n\nlibata didn\u0027t used to init qc-\u003edma_dir to any specific value on qc\ninitialization and command translation path didn\u0027t set qc-\u003edma_dir if\nthe command doesn\u0027t need data transfer.  This made non-data commands\nto have random qc-\u003edma_dir.\n\nThis usually doesn\u0027t cause problem because LLDs usually check\nqc-\u003eprotocol first and look at qc-\u003edma_dir iff the command needs data\ntransfer but this doesn\u0027t hold for all LLDs.\n\nIt might be worthwhile to rename qc-\u003edma_dir to qc-\u003edata_dir as we use\nthe field to tag data direction for both PIO and DMA protocols.\n\nThis problem has been spotted by James Bottomley.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "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": "3d3cca37559e3ab2b574eda11ed5207ccdb8980a",
      "tree": "f3f3794cd7d68c681c69e85d50345a22aecc5eac",
      "parents": [
        "8070217d301d0ceab7d0c255d7b9d796256d37e7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Nov 16 10:50:50 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Dec 03 17:56:23 2006 +0900"
      },
      "message": "[PATCH] libata: implement ATA_FLAG_SETXFER_POLLING and use it in pata_via, take #2\n\nThis patch implements ATA_FLAG_SETXFER_POLLING and use in pata_via.\nIf this flag is set, transfer mode setting performed by polling not by\ninterrupt.  This should help those controllers which raise interrupt\nbefore the command is actually complete on SETXFER.\n\nRationale for this approach.\n\n* uses existing facility and relatively simple\n* no busy sleep in the interrupt handler\n* updating drivers is easy\n\nWhile at it, kill now unused flag ATA_FLAG_SRST in pata_via.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "582982e6991d6718ddadf8751072b50a850dde48",
      "tree": "d9d84c51cd3e6939a114f079e7fc5180d688eca2",
      "parents": [
        "2eab80ac0c96fb98267afeb12a4899801564c75b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Nov 17 12:05:11 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Dec 03 17:56:23 2006 +0900"
      },
      "message": "[PATCH] libata: remove unused HSM_ST_UNKNOWN\n\nHSM_ST_UNKNOWN is not used anywhere.  Its value is zero and supposed\nto serve sanity check purpose but HSM_ST_IDLE is used for that\npurpose.  This unused state causes confusion.  After a port is\ninitialized but before the first command is executed, the idle hsm\nstate is UNKNOWN.  However, once a command has completed, the idle hsm\nstate is IDLE.  This defeats sanity check in ata_pio_task() for the\nfirst command.\n\nThis patch removes HSM_ST_UNKNOWN and consequently make HSM_ST_IDLE\nthe default state.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\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": "6fc49adb9417b9c793e8f88d485387bb89ceb733",
      "tree": "d94f536f24e504b1a654c392171fb6f08a195ca2",
      "parents": [
        "648a88be4a016d2637ace3ae74b85a0512255ee8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Nov 11 20:10:45 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:45:54 2006 -0500"
      },
      "message": "[PATCH] libata: use FLUSH_EXT only when driver is larger than LBA28 limit\n\nMany drives support LBA48 even when its capacity is smaller than\n1\u003c\u003c28, as LBA48 is required for many functionalities.  FLUSH_EXT is\nmandatory for drives w/ LBA48 support.\n\nInterestingly, at least one of such drives (ST960812A) has problems\ndealing with FLUSH_EXT.  It eventually completes the command but takes\naround 7 seconds to finish in many cases thus drastically slowing down\nIO transactions.  This seems to be a firmware bug which sneaked into\nproduction probably because no other ATA driver including linux IDE\nissues FLUSH_EXT to drives which report support for LBA48 \u0026 FLUSH_EXT\nbut is smaller than 1\u003c\u003c28 blocks.\n\nThis patch adds ATA_DFLAG_FLUSH_EXT which is set iff the drive\nsupports LBA48 \u0026 FLUSH_EXT and is larger than LBA28 limit.  Both cache\nflush paths are updated to issue FLUSH_EXT only when the flag is set.\nNote that the changed behavior is more inline with the rest of libata.\nlibata prefers shorter commands whenever possible.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Danny Kukawka \u003cdkukawka@novell.com\u003e\nCc: Stefan Seyfried \u003cseife@novell.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "baa1e78a834c917984a4659fd282f712c17ee3bf",
      "tree": "6c8035d6d49752f7ea81696fa6e61c424b29589c",
      "parents": [
        "efdaedc443e935eda82e9e78a6e65d1f993d242f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Nov 01 18:39:27 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_SETMODE and ATA_EHI_POST_SETMODE\n\nlibata EH used to perform ata_set_mode() iff the EH session performed\nreset as indicated by ATA_EHI_DID_RESET.  This is incorrect because\n-\u003edev_config() called by revalidation is allowed to modify transfer\nmode which ata_set_mode() should take care of.  This patch implements\nthe following two flags.\n\n* ATA_EHI_SETMODE: set during EH to schedule ata_set_mode().  Both new\n  device attachment and revalidation set this flag.\n\n* ATA_EHI_POST_SETMODE: set while the device is revalidated after\n  ata_set_mode().  Post-setmode revalidation is different from initial\n  configuaration and EH revalidation in that -\u003edev_config() is not\n  allowed tune transfer mode.  LLD can use this flag to determine\n  whether it\u0027s allowed to tune transfer mode.  Note that POST_SETMODE\n  -\u003edev_config() is guaranteed to be preceded by non-POST_SETMODE\n  -\u003edev_config().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\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": "b6103f6d1659e2024776bc759d28613fb36344a8",
      "tree": "6554af3833d044b0c55203100c6599b105a6f940",
      "parents": [
        "4aeb0e3283351351a5381a495ea24537f3bc21cb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Nov 01 17:59:53 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:41:29 2006 -0500"
      },
      "message": "[PATCH] libata: separate out and export sata_port_hardreset()\n\nSeparate out sata_port_hardreset() from sata_std_hardreset().  This\nwill be used by LLD hardreset implementation and later by PMP.\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": "d1adc1bbd6dde3e05a91e2d3e6ab42d202ea61d5",
      "tree": "49d88b2f55bb88e5334979b418296af384149cda",
      "parents": [
        "a20c9e820864e18b59d2a4f2f04e8b6053986c95"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Oct 09 18:32:15 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:40:28 2006 -0500"
      },
      "message": "[PATCH] libata: handle 0xff status properly\n\nlibata waits for !BSY even when the status register reports 0xff.\nThis causes long boot delays when D8 isn\u0027t pulled down properly.  This\npatch does the followings.\n\n* don\u0027t wait if status register is 0xff in all wait functions\n\n* make ata_busy_sleep() return 0 on success and -errno on failure.\n  -ENODEV is returned on 0xff status and -EBUSY on other failures.\n\n* make ata_bus_softreset() succeed on 0xff status.  0xff status is not\n  reset failure.  It indicates no device.  This removes unnecessary\n  retries on such ports.  Note that the code change assumes unoccupied\n  port reporting 0xff status does not produce valid device signature.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Joe Jin \u003clkmaillist@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6919a0a6cfdad9e83d02cef5973826acd416560c",
      "tree": "7f3d444c1c12077efe0824b8cb02b78a877c16d2",
      "parents": [
        "fbbb262d9ea9bdbd79d7058271560e9990bc62d3"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Fri Oct 27 19:08:46 2006 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Dec 01 22:40:28 2006 -0500"
      },
      "message": "[PATCH] libata: Revamp blacklist support to allow multiple kinds of blacklisting flaws\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\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": "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": "52bad64d95bd89e08c49ec5a071fa6dcbe5a1a9c",
      "tree": "5849b4e3c17daa70a7e81cfdeaddac9ac8a0e953",
      "parents": [
        "0f9005a6f7a82f4aacbd72f7b92322a8ca1c3f97"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:54:01 2006 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Nov 22 14:54:01 2006 +0000"
      },
      "message": "WorkStruct: Separate delayable and non-delayable events.\n\nSeparate delayable work items from non-delayable work items be splitting them\ninto a separate structure (delayed_work), which incorporates a work_struct and\nthe timer_list removed from work_struct.\n\nThe work_struct struct is huge, and this limits it\u0027s usefulness.  On a 64-bit\narchitecture it\u0027s nearly 100 bytes in size.  This reduces that by half for the\nnon-delayable type of event.\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": "3343571d9f88a0de542d33aea9ab881f00ff866d",
      "tree": "e32df070ba36be5a8c8d71463912e9183ae10bc0",
      "parents": [
        "bf2d401bca3681f5380f711be65f2026255cc166"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Oct 19 14:44:53 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Oct 21 15:18:59 2006 -0400"
      },
      "message": "[PATCH] libata: typo fix\n\nTypo fix in commment.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "7d12e780e003f93433d49ce78cfedf4b4c52adc5",
      "tree": "6748550400445c11a306b132009f3001e3525df8",
      "parents": [
        "da482792a6d1a3fbaaa25fae867b343fb4db3246"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Oct 05 14:55:46 2006 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@warthog.cambridge.redhat.com",
        "time": "Thu Oct 05 15:10:12 2006 +0100"
      },
      "message": "IRQ: Maintain regs pointer globally rather than passing to IRQ handlers\n\nMaintain a per-CPU global \"struct pt_regs *\" variable which can be used instead\nof passing regs around manually through all ~1800 interrupt handlers in the\nLinux kernel.\n\nThe regs pointer is used in few places, but it potentially costs both stack\nspace and code to pass it around.  On the FRV arch, removing the regs parameter\nfrom all the genirq function results in a 20% speed up of the IRQ exit path\n(ie: from leaving timer_interrupt() to leaving do_IRQ()).\n\nWhere appropriate, an arch may override the generic storage facility and do\nsomething different with the variable.  On FRV, for instance, the address is\nmaintained in GR28 at all times inside the kernel as part of general exception\nhandling.\n\nHaving looked over the code, it appears that the parameter may be handed down\nthrough up to twenty or so layers of functions.  Consider a USB character\ndevice attached to a USB hub, attached to a USB controller that posts its\ninterrupts through a cascaded auxiliary interrupt controller.  A character\ndevice driver may want to pass regs to the sysrq handler through the input\nlayer which adds another few layers of parameter passing.\n\nI\u0027ve build this code with allyesconfig for x86_64 and i386.  I\u0027ve runtested the\nmain part of the code on FRV and i386, though I can\u0027t test most of the drivers.\nI\u0027ve also done partial conversion for powerpc and MIPS - these at least compile\nwith minimal configurations.\n\nThis will affect all archs.  Mostly the changes should be relatively easy.\nTake do_IRQ(), store the regs pointer at the beginning, saving the old one:\n\n\tstruct pt_regs *old_regs \u003d set_irq_regs(regs);\n\nAnd put the old one back at the end:\n\n\tset_irq_regs(old_regs);\n\nDon\u0027t pass regs through to generic_handle_irq() or __do_IRQ().\n\nIn timer_interrupt(), this sort of change will be necessary:\n\n\t-\tupdate_process_times(user_mode(regs));\n\t-\tprofile_tick(CPU_PROFILING, regs);\n\t+\tupdate_process_times(user_mode(get_irq_regs()));\n\t+\tprofile_tick(CPU_PROFILING);\n\nI\u0027d like to move update_process_times()\u0027s use of get_irq_regs() into itself,\nexcept that i386, alone of the archs, uses something other than user_mode().\n\nSome notes on the interrupt handling in the drivers:\n\n (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in\n     the input_dev struct.\n\n (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does\n     something different depending on whether it\u0027s been supplied with a regs\n     pointer or not.\n\n (*) Various IRQ handler function pointers have been moved to type\n     irq_handler_t.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n(cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)\n"
    },
    {
      "commit": "360f654e7cda850034f3f6252a7a7cff3fa77356",
      "tree": "2279e397c59501cfda60d7d97d4976e42b8f2983",
      "parents": [
        "e5c9e081e9c980fa785cd9002c25a251cf3f090e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Sep 30 19:45:00 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Sep 30 07:39:24 2006 -0400"
      },
      "message": "[PATCH] libata: turn off NCQ if queue depth is adjusted to 1\n\nTurn off NCQ if queue depth is adjusted to 1.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e5c9e081e9c980fa785cd9002c25a251cf3f090e",
      "tree": "366bb4647f06e5d31b5f416d61e7db9b2bbcaf63",
      "parents": [
        "4f931374ecc599f6df7852509b6917abd5377205"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Sep 30 19:44:39 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Sep 30 07:39:23 2006 -0400"
      },
      "message": "[PATCH] libata: cosmetic changes to constants\n\nCosmetic changes to ATA_DFLAG_* constants for soon-to-follow NCQ-off\npatch.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "54bb3a94b192be09feb85993b664ff118d6433d0",
      "tree": "a0d782e482cf145d825c44de61e90c7067e719fc",
      "parents": [
        "3b9f6cb8a1ec791be79c6c7595fea922f12d1e64"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Sep 27 22:20:11 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Sep 27 22:20:11 2006 -0400"
      },
      "message": "[libata] Use new PCI_VDEVICE() macro to dramatically shorten ID lists\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "a6d967a485c67ec8a1276261f39d81ace6a3e308",
      "tree": "3e46be7f279342316d4578995dfbfce99728c579",
      "parents": [
        "7c250413e5b7c3dfae89354725b70c76d7621395"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Sep 25 15:33:09 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Sep 25 15:33:09 2006 -0400"
      },
      "message": "[libata] No need for all those arch libata-portmap.h headers\n\nThey all contain the same thing.  Instead, have a single generic one in\ninclude/asm-generic, and permit an arch to override as needed.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "93590859884784520a1850767f86296abc2cdc6d",
      "tree": "7465312f962467d8af3b24dd0f7510ea7113e010",
      "parents": [
        "4a3381feb823e06c8e2da7e283c17b0b6fdbddcf"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Tue Sep 12 16:55:12 2006 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Sep 19 01:58:00 2006 -0400"
      },
      "message": "[PATCH] libata: improve handling of diagostic fail (and hardware that misreports it)\n\nOur ATA probe code checks that a device is not reporting a diagnostic\nfailure during start up. Unfortunately at least one device seems to like\ndoing this - the Gigabyte iRAM.\n\nThis is only done for the master right now (which is fine for the iRAM\nas it is SATA), as with PATA some combinations of ATAPI device seem to\nfool the check into seeing a drive that isn\u0027t there if it is applied to\nthe slave.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "fea63e38013ec628ab3f7fddc4c2148064b7910a",
      "tree": "a3e1cd7f50562a20584cd28ef9d71e0cd6c7c896",
      "parents": [
        "a64f97f2c351410dfb3099c2369eacf7154b5532"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Sep 16 03:04:15 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Sep 19 00:29:20 2006 -0400"
      },
      "message": "[PATCH] libata: fix non-uniform ports handling\n\nNon-uniform ports handling got broken while updating libata to handle\nthose in the same host.  Only separate irq for the non-uniform\nsecondary port was implemented while all other fields (host flags,\ntransfer mode...) of the secondary port simply shared those of the\nfirst.\n\nFor ata_piix combined mode, which ATM is the only user of non-uniform\nports, this causes the secondary port assume the wrong type.  This can\ncause PATA port to use SATA ops, which results in bogus check on PCS\nand detection failure.\n\nThis patch adds ata_probe_ent-\u003epinfo2 which points to optional\nport_info for the secondary port.  For the time being, this seems to\nbe the simplest solution.  This workaround will be removed together\nwith ata_probe_ent itself after init model is updated to allow more\nflexibility.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Nelson A. de Oliveira \u003cnaoliv@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "481ff126e8d9be63809e7854badf815e54066eed",
      "tree": "c682ce7a20bf129428fc0f3cc393f9c9b39ed678",
      "parents": [
        "669a5db411d85a14f86cd92bc16bf7ab5b8aa235",
        "9bec2e38527a9f2497b3d976715c672d08d6160d"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 31 00:02:26 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 31 00:02:26 2006 -0400"
      },
      "message": "Merge branch \u0027upstream\u0027 into pata-drivers\n"
    },
    {
      "commit": "9bec2e38527a9f2497b3d976715c672d08d6160d",
      "tree": "b081189d1beca3a81ade7209c131977cd8f23f3b",
      "parents": [
        "b01e86fee6c821e4e003fd4e9f65453ac478a58e"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 31 00:02:15 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 31 00:02:15 2006 -0400"
      },
      "message": "[libata] Trim trailing whitespace.\n"
    }
  ],
  "next": "669a5db411d85a14f86cd92bc16bf7ab5b8aa235"
}
