)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "669a5db411d85a14f86cd92bc16bf7ab5b8aa235",
      "tree": "8d4f9d63e18185695a4d97e1a3fa4e18b61c7345",
      "parents": [
        "b01e86fee6c821e4e003fd4e9f65453ac478a58e"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Aug 29 18:12:40 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Aug 29 18:12:40 2006 -0400"
      },
      "message": "[libata] Add a bunch of PATA drivers.\n\nThe vast majority of drivers and changes are from Alan Cox.  Albert Lee\ncontributed and maintains pata_pdc2027x.  Adrian Bunk, Andrew Morton,\nand Tejun Heo contributed various minor fixes and updates.\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "cca3974e48607c3775dc73b544a5700b2e37c21a",
      "tree": "0777d6121ba199af0aad196eb5a693510ec8e62e",
      "parents": [
        "54a86bfc3d4601be9c36cd4e8a1bdc580c98fa6a"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 24 03:19:22 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 24 03:19:22 2006 -0400"
      },
      "message": "libata: Grand renaming.\n\nThe biggest change is that ata_host_set is renamed to ata_host.\n\n* ata_host_set\t\t\t\u003d\u003e ata_host\n* ata_probe_ent-\u003ehost_flags\t\u003d\u003e ata_probe_ent-\u003eport_flags\n* ata_probe_ent-\u003ehost_set_flags\t\u003d\u003e ata_probe_ent-\u003e_host_flags\n* ata_host_stats\t\t\u003d\u003e ata_port_stats\n* ata_port-\u003ehost\t\t\u003d\u003e ata_port-\u003escsi_host\n* ata_port-\u003ehost_set\t\t\u003d\u003e ata_port-\u003ehost\n* ata_port_info-\u003ehost_flags\t\u003d\u003e ata_port_info-\u003eflags\n* ata_(.*)host_set(.*)\\(\\)\t\u003d\u003e ata_\\1host\\2()\n\nThe leading underscore in ata_probe_ent-\u003e_host_flags is to avoid\nreusing -\u003ehost_flags for different purpose.  Currently, the only user\nof the field is libata-bmdma.c and probe_ent itself is scheduled to be\nremoved.\n\nata_port-\u003ehost is reused for different purpose but this field is used\ninside libata core proper and of different type.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "b352e57dc3bb5033996adaa67c2f69b795eddd39",
      "tree": "2bfec75e331452c84a591b6fad1e1407b22a1922",
      "parents": [
        "cea0d336e7e139becc9432499e0ba8234ffbed5f"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Aug 10 18:52:12 2006 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Aug 14 14:04:37 2006 -0400"
      },
      "message": "[PATCH] libata: Add CompactFlash support\n\nThe CFA world has some additional rules and drive modes we need to support for\nnewer expansion cards and on embedded boxes\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "8b881b0410de0f72a43e814393abf3a4cb29ebb4",
      "tree": "4ee2da79e3e069226bb7824019f81e25fa5c3622",
      "parents": [
        "2b8ae728a8bada0cca10f30d3e7c52d384e8d5ad"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Jun 11 09:59:27 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Aug 10 06:49:45 2006 -0400"
      },
      "message": "[ATA] Increase lba48 max-sectors from 200 to 256.\n\nAlso, moved ATA_MAX_SECTORS and ATA_MAX_SECTORS_LBA48 from\nlinux/libata.h to linux/ata.h, now that they truly reflect the standard\n(well... mostly; note TODO comment).\n\nThis changes the performance profile (and potential bug profile)\nfor a bunch of drivers, so be wary.\n"
    },
    {
      "commit": "4852ba24f647199be797545226c6d325db231937",
      "tree": "5c732e919c04f2854622a02f618d4cbcf51a3687",
      "parents": [
        "2a88d1ac8dca898a7fb602ddd581bf4d2977509d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Aug 10 16:59:18 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Aug 10 16:59:18 2006 +0900"
      },
      "message": "[PATCH] libata: kill unused hard_port_no and legacy_mode\n\nKill unused probe_ent/ap-\u003ehard_port_no and probe_ent-\u003elegacy_mode.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "dd5b06c490de72440ec39f814de99a714a45a1a9",
      "tree": "7a4665f9b6fdb5a264c753b90a215e2953e2d0f7",
      "parents": [
        "2ec7df0457b710d9201f211dbccdbecf0ad38b7e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Aug 10 16:59:12 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Aug 10 16:59:12 2006 +0900"
      },
      "message": "[PATCH] libata: implement dummy port\n\nImplement dummy port which can be requested by setting appropriate bit\nin probe_ent-\u003edummy_port_mask.  The dummy port is used as placeholder\nfor stolen legacy port.  This allows libata to guarantee that\nindex_of(ap) \u003d\u003d ap-\u003eport_no \u003d\u003d actual_device_port_no, and thus to\nremove error-prone ap-\u003ehard_port_no.\n\nAs it\u0027s used only when one port of a legacy controller is reserved by\nsome other entity (e.g. IDE), the focus is on keeping the added *code*\ncomplexity at minimum, so dummy port allocates all libata core\nresources and acts as a normal port.  It just has all dummy port_ops.\n\nThis patch only implements dummy port.  The following patch will make\nlibata use it for stolen legacy ports.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "2ec7df0457b710d9201f211dbccdbecf0ad38b7e",
      "tree": "4fbffc3e05aa65fd9ed63b4ac809712719e19cda",
      "parents": [
        "37deecb5139ee431233781a9a093d9fcaab54c5b"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Aug 10 16:59:10 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Aug 10 16:59:10 2006 +0900"
      },
      "message": "[PATCH] libata: rework legacy handling to remove much of the cruft\n\nKill host_set-\u003enext\nFix simplex support\nAllow per platform setting of IDE legacy bases\n\nSome of this can be tidied further later on, in particular all the\nlegacy port gunge belongs as a PCI quirk/PCI header decode to understand\nthe special legacy IDE rules in the PCI spec.\n\nLonger term Jeff also wants to move the request_irq/free_irq out of core\nwhich will make this even cleaner.\n\ntj: folded in three followup patches - ata_piix-fix, broken-arch-fix\nand fix-new-legacy-handling, and separated per-dev xfermask into\nseparate patch preceding this one.  Folded in fixes are...\n\n* ata_piix-fix: fix build failure due to host_set-\u003enext removal\n* broken-arch-fix: add missing include/asm-*/libata-portmap.h\n* fix-new-legacy-handling:\n\t* In ata_pci_init_legacy_port(), probe_num was incorrectly\n          incremented during initialization of the secondary port and\n          probe_ent-\u003en_ports was incorrectly fixed to 1.\n\n\t* Both legacy ports ended up having the same hard_port_no.\n\n\t* When printing port information, both legacy ports printed\n\t  the first irq.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "80289167fd3ebaeb7b2641e69cbec44b61165fe7",
      "tree": "cb979ef0563377b9c901359dbcb1f117ff7d48d5",
      "parents": [
        "f6d950e2a5209bd7e3fb1a238f43f24f3697f5b0"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@us.ibm.com",
        "time": "Mon Aug 07 14:27:31 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Aug 09 00:08:39 2006 -0400"
      },
      "message": "[PATCH] libata: Add support for SATA attachment to SAS adapters\n\nThe following patch enhances libata to allow SAS device drivers\nto utilize libata to talk to SATA devices. It introduces some\nnew APIs which allow libata to be used without allocating a\nvirtual scsi host.\n\nNew APIs:\n\nata_sas_port_alloc - Allocate an ata_port\nata_sas_port_init - Initialize an ata_port (probe device, etc)\nata_sas_port_destroy - Free an ata_port allocated by ata_sas_port_alloc\nata_sas_slave_configure - configure scsi device\nata_sas_queuecmd - queue a scsi command, similar to ata_scsi_queuecomand\n\nThese new APIs can be used either directly by a SAS LLDD or could be used\nby the SAS transport class.\n\nPossible usage for a SAS LLDD would be:\n\nscsi_scan_host\n\ttarget_alloc\n\t\tata_sas_port_alloc\n\tslave_alloc\n\t\tata_sas_port_init\n\tslave_configure\n\t\tata_sas_slave_configure\n\nCommands received by the LLDD for SATA devices would call ata_sas_queuecmd.\n\nDevice teardown would occur with:\n\nslave_destroy\n\tport_disable\ntarget_destroy\n\tata_sas_port_destroy\n\nSigned-off-by: Brian King \u003cbrking@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "b03732f006bd1ecee32587ec8235c41af5ad905f",
      "tree": "19e1a4abab97cc476d66641bc1043640d61464db",
      "parents": [
        "c256e95f7d602737e380f5f08666cc6a74023b4a"
      ],
      "author": {
        "name": "Brian King",
        "email": "brking@us.ibm.com",
        "time": "Mon Aug 07 14:27:10 2006 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Aug 09 00:08:38 2006 -0400"
      },
      "message": "[PATCH] libata: Add ata_host_set_init\n\nAdd ata_host_set_init in preparation for SAS attached SATA.\n\nSigned-off-by: Brian King \u003cbrking@us.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3c5100c1c40cc5e27b4da4a736994c76d93392a0",
      "tree": "27060b36ff09d3423da9539fc1c796ec058aca29",
      "parents": [
        "c1332875cbe0c148c7f200d4f9b36b64e34d9872"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Jul 26 16:58:33 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jul 29 04:04:55 2006 -0400"
      },
      "message": "[PATCH] libata: cosmetic changes to PM functions\n\nUnify pm_message_t argument to the new-style @mesg.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "13abf50df209008b5d44075bafeeab42ace56aa6",
      "tree": "5e8ea48d61c7e58560b04d33609a4a2bc6cf0012",
      "parents": [
        "7c8c2cff81b2b7f6dd3f9fd7b77033c1be5d7920"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 10 23:18:46 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jul 19 14:06:53 2006 -0400"
      },
      "message": "[PATCH] libata: improve EH action and EHI flag handling\n\nUpdate ata_eh_about_to_do() and ata_eh_done() to improve EH action and\nEHI flag handling.\n\n* There are two types of EHI flags - one which expires on successful\n  EH and the other which expires on a successful reset.  Make this\n  distinction clear.\n\n* Unlike other EH actions, reset actions are represented by two EH\n  action masks and a EHI modifier.  Implement correct about_to_do/done\n  semantics for resets.  That is, prior to reset, related EH info is\n  sucked in from ehi and cleared, and after reset is complete, related\n  EH info in ehc is cleared.\n\nThese changes improve consistency and remove unnecessary EH actions\ncaused by stale EH action masks and EHI flags.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "500530f652f9e5dabe7571b018dec47742ce0f16",
      "tree": "cb9653c45a7e37d9bfe8dcc3923ed6b33ca134ea",
      "parents": [
        "d6f26d1f1f1128a896f38a7f8426daed0a1205a2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 03 16:07:27 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jul 05 22:16:28 2006 -0400"
      },
      "message": "[PATCH] libata: reimplement controller-wide PM\n\nReimplement controller-wide PM.  ata_host_set_suspend/resume() are\ndefined to suspend and resume a host_set.  While suspended, EHs for\nall ports in the host_set are pegged using ATA_FLAG_SUSPENDED and\nfrozen.\n\nBecause SCSI device hotplug is done asynchronously against the rest of\nlibata EH and the same mutex is used when adding new device, suspend\ncannot wait for hotplug to complete.  So, if SCSI device hotplug is in\nprogress, suspend fails with -EBUSY.\n\nIn most cases, host_set resume is followed by device resume.  As each\nresume operation requires a reset, a single host_set-wide resume\noperation may result in multiple resets.  To avoid this, resume waits\nupto 1 second giving PM to request resume for devices.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d6f26d1f1f1128a896f38a7f8426daed0a1205a2",
      "tree": "ee86bb8f6fff0e1c8df78978ae7f402fbc1dc454",
      "parents": [
        "02670bf379267f55a43aa57f6895689697e90eb3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 03 16:07:26 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jul 05 22:16:28 2006 -0400"
      },
      "message": "[PATCH] libata: reimplement per-dev PM\n\nReimplement per-dev PM.  The original implementation directly put the\ndevice into suspended mode and didn\u0027t synchronize w/ EH operations\nincluding hotplug.  This patch reimplements ata_scsi_device_suspend()\nand ata_scsi_device_resume() such that they request EH to perform the\nrespective operations.  Both functions synchronize with hotplug such\nthat it doesn\u0027t operate on detached devices.\n\nSuspend waits for completion but resume just issues request and\nreturns.  This allows parallel wake up of devices and thus speeds up\nsystem resume.\n\nDue to sdev detach synchronization, it\u0027s not feasible to separate out\nEH requesting from sdev handling; thus, ata_device_suspend/resume()\nare removed and everything is implemented in the respective\nlibata-scsi functions.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "02670bf379267f55a43aa57f6895689697e90eb3",
      "tree": "830b74690371e39cf8e94de678768993be743437",
      "parents": [
        "c0b6c0377c32fe3f6a2cf1e018db6da8a3b78379"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 03 16:07:26 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jul 05 22:16:28 2006 -0400"
      },
      "message": "[PATCH] libata: implement PM EH actions\n\nImplement two PM per-dev EH actions - ATA_EH_SUSPEND and\nATA_EH_RESUME.  Each action puts the target device into suspended mode\nand resumes from it respectively.\n\nOnce a device is put to suspended mode, no EH operations other than\nRESUME is allowed on the device.  The device will stay suspended till\nit gets resumed and thus reset and revalidated.  To implement this, a\nnew device state helper - ata_dev_ready() - is implemented and used in\nEH action implementations to make them operate only on attached \u0026\nrunning devices.\n\nIf all possible devices on a port are suspended, reset is skipped too.\nThis prevents spurious events including hotplug events from disrupting\nsuspended devices.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c0b6c0377c32fe3f6a2cf1e018db6da8a3b78379",
      "tree": "430b7397deb8013164b313f753b98b7db4505ee5",
      "parents": [
        "1cdaf534f829b8759ba30f97d5e8dceb2ab77ba4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 03 16:07:26 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jul 05 22:16:28 2006 -0400"
      },
      "message": "[PATCH] libata: separate out __ata_ehi_hotplugged()\n\nSeparate out __ata_ehi_hotplugged() from ata_ehi_hotplugged().  The\nunderscored version doesn\u0027t set AC_ERR_ATA_BUS.  This will be used for\nresume which is a hotplug event but not an ATA bus error.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "1cdaf534f829b8759ba30f97d5e8dceb2ab77ba4",
      "tree": "4cad6cd3a04d3c10ab42e7d2c76c8f6e2467e506",
      "parents": [
        "e9c839142d698086d3fe33a0daafde55ddd00c4e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 03 16:07:26 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jul 05 22:16:27 2006 -0400"
      },
      "message": "[PATCH] libata: implement ATA_EHI_NO_AUTOPSY and QUIET\n\nImplement ATA_EHI_NO_AUTOPSY and QUIET.  These used to be implied by\nATA_PFLAG_LOADING, but new power management and PMP support need to\nuse these separately.  e.g. Suspend/resume operations shouldn\u0027t print\nfull EH messages and resume shouldn\u0027t be recorded as an error.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e9c839142d698086d3fe33a0daafde55ddd00c4e",
      "tree": "f7b586dec514854b536866c9d9cbe2bd39e25c23",
      "parents": [
        "28324304350e23db24d679c55de3f06a5b1e40aa"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 03 16:07:26 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jul 05 22:16:27 2006 -0400"
      },
      "message": "[PATCH] libata: clean up debounce parameters and improve parameter selection\n\nThe names of predefined debounce timing parameters didn\u0027t exactly\nmatch their usages.  Rename to more generic names and implement param\nselection helper sata_ehc_deb_timing() which uses EHI_HOTPLUGGED to\nselect params.\n\nCombined with the previous EHI_RESUME_LINK differentiation, this makes\nparameter selection accurate.  e.g. user scan resumes link but normal\ndeb param is used instead of hotplug param.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "28324304350e23db24d679c55de3f06a5b1e40aa",
      "tree": "d1100fbbc939a5f214a3d2917f5ef9cce5159a0e",
      "parents": [
        "e30349d27e093f32ef517b5416d9dce1998d4676"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jul 03 16:07:26 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jul 05 22:16:27 2006 -0400"
      },
      "message": "[PATCH] libata: implement ATA_EHI_RESUME_LINK\n\nImplement ATA_EHI_RESUME_LINK, which indicates that the link needs to\nbe resumed.  This used to be implied by ATA_EHI_HOTPLUGGED.  However,\nhotplug isn\u0027t the only event which requires link resume and separating\nthis out allows other places to request link resume.  This\ndifferentiation also allows better debounce timing selection.\n\nThis patch converts user scan to use ATA_EHI_RESUME_LINK.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "b51e9e5db0e36239f786692f1cac6e435ed30c66",
      "tree": "396f2da741820f25174f0ef2d05af957a8dafc22",
      "parents": [
        "e6d902a3bfd53da375588e498251f4f4f6cd9650"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Jun 29 01:29:30 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jul 05 21:51:42 2006 -0400"
      },
      "message": "[PATCH] libata: add ap-\u003epflags and move core dynamic flags to it\n\nap-\u003eflags is way too clamped.  Separate out core dynamic flags to\nap-\u003epflags.  ATA_FLAG_DISABLED is a dynamic flag but left alone as\nit\u0027s referenced by a lot of LLDs and it\u0027s gonna be removed once all\nLLDs are converted to new EH.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "5806db22cffc7557b675d3c9229f327980aee797",
      "tree": "e3ad9b2b89ad0525a29ba2e94eb4002ee30035ef",
      "parents": [
        "77b08fb56a41e84b5e78b14f24d79879235e3337"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Jun 24 20:30:19 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jun 26 20:59:27 2006 -0400"
      },
      "message": "[PATCH] libata: implement ata_port_max_devices()\n\nImplement ata_port_max_devices().  This function returns the number of\npossible devices on a port.  This will be used by new PM\nimplementation.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "41542dbe12e34165e586de1e3fe0a245707aa39e",
      "tree": "4084584a2d417b898c944c053b4ae9a911b8c6c3",
      "parents": [
        "438bc9c3dec27ab37f0ff78471d0b8b91addd2dd"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Jun 23 04:18:31 2006 -0700"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jun 26 20:59:27 2006 -0400"
      },
      "message": "[PATCH] libata.h needs scatterlist.h\n\nFrom: Andrew Morton \u003cakpm@osdl.org\u003e\n\ns390:\n\nIn file included from drivers/scsi/libata-bmdma.c:39:                           include/linux/libata.h:391: error: field \u0027sgent\u0027 has incomplete type\ninclude/linux/libata.h:392: error: field \u0027pad_sgent\u0027 has incomplete type\ninclude/linux/libata.h: In function \u0027ata_sg_is_last\u0027:                           include/linux/libata.h:849: error: arithmetic on pointer to an incomplete type\ninclude/linux/libata.h:849: error: arithmetic on pointer to an incomplete type\ninclude/linux/libata.h: In function \u0027ata_qc_next_sg\u0027:\ninclude/linux/libata.h:869: error: increment of pointer to unknown structure\ninclude/linux/libata.h:869: error: arithmetic on pointer to an incomplete type\ninclude/linux/libata.h:869: error: arithmetic on pointer to an incomplete type\ninclude/linux/libata.h:869: error: arithmetic on pointer to an incomplete type\n\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "ba6a13083c1b720a47c05bee7bedbb6ef06c4611",
      "tree": "26f9d8d37145fac426744f96ecf006ec0a481e31",
      "parents": [
        "47005f255ed126a4b48a1a2f63164fb1d83bcb0a"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Jun 22 23:46:10 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Jun 22 23:46:10 2006 -0400"
      },
      "message": "[libata] Add host lock to struct ata_port\n\nPrepare for changes required to support SATA devices\nattached to SAS HBAs. For these devices we don\u0027t want to\nuse host_set at all, since libata will not be the owner\nof struct scsi_host.\n\nSigned-off-by: Brian King \u003cbrking@us.ibm.com\u003e\n\n(with slight merge modifications made by...)\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "47005f255ed126a4b48a1a2f63164fb1d83bcb0a",
      "tree": "bac4a73716af3d9cdb201f1bd83d65952fa2c988",
      "parents": [
        "3a778275626c0eb97674e92875efeba01189ce0e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jun 19 18:27:23 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Jun 22 23:36:58 2006 -0400"
      },
      "message": "[PATCH] libata: implement per-dev EH action mask eh_info-\u003edev_action[]\n\nCurrently, the only per-dev EH action is REVALIDATE.  EH used to\nexploit ehi-\u003edev to do selective revalidation on a ATA bus.  However,\nthis is a bit hacky and makes it impossible to request selective\nrevalidation from outside of EH or add another per-dev EH action.\n\nThis patch adds per-dev EH action mask eh_info-\u003edev_action[] and\nupdate EH to use this field for REVALIDATE.  Note that per-dev actions\ncan still be specified at port-level and it has the same effect of\nspecifying the action for all devices on the port.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f0eb62b81dd16bfc4034916418c3406ba20011e1",
      "tree": "c051e5da940044e189b2227ede4ccb373d0fa169",
      "parents": [
        "d01712698c7c52bc71f41192e864dccc90a1217d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Jun 12 23:05:38 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jun 12 10:23:21 2006 -0400"
      },
      "message": "[PATCH] libata: add host_set-\u003enext for legacy two host_sets case, take #3\n\nFor a legacy ATA controller, libata registers two separate host sets.\nThere was no connection between the two hosts making it impossible to\ntraverse all ports related to the controller.  This patch adds\nhost_set-\u003enext which points to the second host_set and makes\nata_pci_remove_one() remove all associated host_sets.\n\n* On device removal, all ports hanging off the device are properly\n  detached.  Prior to this patch, ports on the first host_set weren\u0027t\n  detached casuing oops on driver unloading.\n\n* On device removal, both host_sets are properly freed\n\nThis will also be used by new power management code to suspend and\nresume all ports of a controller.  host_set/port representation will\nbe improved to handle legacy controllers better and this host_set\nlinking will go away with it.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3b01b8af2414b6684051da4a1507dfacdbf24f86",
      "tree": "fe47e129a121047ac39e7ed4501d65338c3a1f57",
      "parents": [
        "3057ac3c1a992ee135cbb7b7d1a12e58d81f0739"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jun 12 00:22:04 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Jun 12 00:22:04 2006 -0400"
      },
      "message": "libata: fix build, by adding required workqueue member to port struct\n"
    },
    {
      "commit": "9a9c77dc4c4eed9dfb74080e768c0b3c9d905496",
      "tree": "a87eb0896be71537a99748f54184887785bf383e",
      "parents": [
        "0a1b622ef495d8ebba9ad8982414c6661c16b604"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Jun 11 11:19:00 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Jun 11 11:19:00 2006 +0900"
      },
      "message": "[PATCH] libata: cosmetic change in struct ata_port\n\nCosmetic change in struct ata_port.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "52783c5dcc8d317bc8c3e2692d366e8a305abada",
      "tree": "328fafa2775f835329b0e9ca64bc173dba4cf2b3",
      "parents": [
        "0542925b25676543e8384edf454668f89227e905"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:22 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:22 2006 +0900"
      },
      "message": "[PATCH] libata-hp: killl ops-\u003eprobe_reset\n\nNow that all drivers implementing new EH are converted to new probing\nmechanism, ops-\u003eprobe_reset doesn\u0027t have any user.  Kill it.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "720ba12620ee09dce269adf4ad50958adac7bb54",
      "tree": "f31a8b3da52195610bd244baf42a5fe2e26b0a36",
      "parents": [
        "3e706399b03bd237d087d731d4b1b029e546b33d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:13 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:13 2006 +0900"
      },
      "message": "[PATCH] libata-hp: update unload-unplug\n\nUpdate unload unplug - driver unloading / PCI removal.  This is done\nby ata_port_detach() which short-circuits EH, disables all devices and\nfreezes the port.  With this patch, EH and unloading/unplugging are\nproperly synchronized.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "83c47bcb3c533180a6dda78152334de50065358a",
      "tree": "4bc9ac04f8c3797e49284e0b96e2d654769254ff",
      "parents": [
        "580b2102327ab8444af5bde4e70b50d268a1d558"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:07 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:07 2006 +0900"
      },
      "message": "[PATCH] libata-hp: implement warmplug\n\nImplement warmplug.  User-initiated unplug can be detected by\nhostt-\u003eslave_destroy() and plug by transportt-\u003euser_scan().  This\npatch only implements the two callbacks.  The next function will hook\nthem.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "580b2102327ab8444af5bde4e70b50d268a1d558",
      "tree": "01389e898e09dbaddb06405b182116b9be0e6d59",
      "parents": [
        "084fe639b81c4d418a2cf714acb0475e3713cb73"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:05 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:05 2006 +0900"
      },
      "message": "[PATCH] libata-hp: implement SCSI part of hotplug\n\nImplement SCSI part of hotplug.\n\nThis must be done in a separate context as SCSI makes use of EH during\nprobing.  SCSI scan fails silently if EH is in progress.  In such\ncases, libata pauses briefly and retries until every device is\nattached.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "084fe639b81c4d418a2cf714acb0475e3713cb73",
      "tree": "55afc26dbb866488b69e49b1742863d1293f6612",
      "parents": [
        "0ea035a3d1ad948096e205f08f350c03d5cea453"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:03 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:28:03 2006 +0900"
      },
      "message": "[PATCH] libata-hp: implement hotplug\n\nImplement ATA part of hotplug.  To avoid probing broken devices over\nand over again, disabled devices are not automatically detached.  They\nare detached only if probing is requested for the device or the\nassociated port is offline.  Also, to avoid infinite probing loop,\nEach device is probed only once per EH run.\n\nAs SATA PHY status is fragile, devices are detached only after it has\nused up its recovery chances unless explicitly requested by LLDD or\nuser (LLDD may request direct detach if, for example, it supports cold\npresence detection).\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "9a1004d0c11be41c83d06a67dfe74567a41ae582",
      "tree": "759f686bb1d2999b56b2b91c30c9d62480156965",
      "parents": [
        "664faf09a05d74085c0b31e2c621d7647322325b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:52 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:52 2006 +0900"
      },
      "message": "[PATCH] libata: export ata_hsm_move()\n\nata_hsm_move() will be used by LLDDs which depend on standard PIO HSM\nbut implement their own interrupt handlers.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "f5914a461eb9703773226a0813f6ffcae10c0861",
      "tree": "3441af53250530c3135a8fa55f06dd7bc62da037",
      "parents": [
        "d7bb4cc7575929a60b0a718daa1bce87bea9a9cc"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:48 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:48 2006 +0900"
      },
      "message": "[PATCH] libata-hp-prep: add prereset() method and implement ata_std_prereset()\n\nWith hotplug, every reset might be a probing reset and thus something\nsimilar to probe_init() is needed.  prereset() method is called before\na series of resets to a port and is the counterpart of postreset().\nprereset() can tell EH to use different type of reset or skip reset by\nmodifying ehc-\u003ei.action.\n\nThis patch also implements ata_std_prereset().  Most controllers\nshould be able to use this function directly or with some wrapping.\nAfter hotplug, different controllers need different actions to resume\nthe PHY and detect the newly attached device.  Controllers can be\ncategorized as follows.\n\n* Controllers which can wait for the first D2H FIS after hotplug.\n  Note that if the waiting is implemented by polling TF status, there\n  needs to be a way to set BSY on PHY status change.  It can be\n  implemented by hardware or with the help of the driver.\n\n* Controllers which can wait for the first D2H FIS after sending\n  COMRESET.  These controllers need to issue COMRESET to wait for the\n  first FIS.  Note that the received D2H FIS could be the first D2H\n  FIS after POR (power-on-reset) or D2H FIS in response to the\n  COMRESET.  Some controllers use COMRESET as TF status\n  synchronization point and clear TF automatically (sata_sil).\n\n* Controllers which cannot wait for the first D2H FIS reliably.\n  Blindly issuing SRST to spinning-up device often results in command\n  issue failure or timeout, causing extended delay.  For these\n  controllers, ata_std_prereset() explicitly waits ATA_SPINUP_WAIT\n  (currently 8s) to give newly attached device time to spin up, then\n  issues reset.  Note that failing to getting ready in ATA_SPINUP_WAIT\n  is not critical.  libata will retry.  So, the timeout needs to be\n  long enough to spin up most devices.\n\nLLDDs can tell ata_std_prereset() which of above action is needed with\nATA_FLAG_HRST_TO_RESUME and ATA_FLAG_SKIP_D2H_BSY flags.  These flags\nare PHY-specific property and will be moved to ata_link later.\n\nWhile at it, this patch unifies function typedef\u0027s such that they all\nhave named arguments.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "d7bb4cc7575929a60b0a718daa1bce87bea9a9cc",
      "tree": "ff4cd9715f5ba608795bc4a1b7b86ffd2cf4f99c",
      "parents": [
        "a9beec95352ff675f27d74c3cb97dc258d022497"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:46 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:46 2006 +0900"
      },
      "message": "[PATCH] libata-hp-prep: implement sata_phy_debounce()\n\nWith hotplug, PHY always needs to be debounced before a reset as any\nreset might find new devices.  Extract PHY waiting code from\nsata_phy_resume() and extend it to include SStatus debouncing.  Note\nthat sata_phy_debounce() is superset of what used to be done inside\nsata_phy_resume().\n\nThree default debounce timing parameters are defined to be used by\nhot/boot plug.  As resume failure during probing will be properly\nhandled as errors, timeout doesn\u0027t have to be long as before.\nprobeinit() uses the same timeout to retain the original behavior.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "3edebac41bab7e146578ad9e723ee7fff71c99c0",
      "tree": "c5f1276f7c0e93b51ad67b12e241b37c05f4f38a",
      "parents": [
        "5a04bf4befa8bffa012eedc3a0903c158b9131a9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:40 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:40 2006 +0900"
      },
      "message": "[PATCH] libata-hp-prep: store attached SCSI device\n\nAdd device persistent field dev-\u003esdev and store the attached SCSI\ndevice.  With hotplug, libata needs to know the attached SCSI device\nto offline and detach it, but scsi_device_lookup() cannot be used\nbecause libata will reuse SCSI ID numbers - dead but not gone devices\n(due to zombie opens, etc...) interfere with the lookup.\n\ndev-\u003esdev doesn\u0027t hold reference to the SCSI device.  It\u0027s cleared\nwhen the SCSI device goes away.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "5a04bf4befa8bffa012eedc3a0903c158b9131a9",
      "tree": "7145c99e6df311a6d732fc3569d9a048829f92ba",
      "parents": [
        "315343637b988ac32d730a6a9f7bf5866838bcb0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:38 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:38 2006 +0900"
      },
      "message": "[PATCH] libata-hp-prep: implement ap-\u003ehw_sata_spd_limit\n\nAdd ap-\u003ehw_sata_spd_limit and initialize it once during the boot\ninitialization (or driver load initialization).  ap-\u003esata_spd_limit is\nreset to ap-\u003ehw_sata_spd_limit on hotplug.  This prevents spd limits\nintroduced by earlier devices from affecting new devices.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "72fa4b742b327bd1b07985d79a61c61dbd9fd4e6",
      "tree": "50d95fcf58e709b12510151e8e1cae8d8cb2538e",
      "parents": [
        "3ef3b43d5633d30fa3f033f62094ec2e9c5b8376"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:32 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:32 2006 +0900"
      },
      "message": "[PATCH] libata-hp-prep: make some ata_device fields persistent\n\nLifetimes of some fields span over device plugging/unplugging.  This\npatch moves such persistent fields to the top of ata_device and\nseparate them with ATA_DEVICE_CLEAR_OFFSET.  Fields above the offset\nare initialized once during host initializatino while all other fields\nare cleared before hotplugging.  Currently -\u003eap, devno and part of\nflags are persistent.\n\nNote that flags is partially cleared while holding host_set lock.\nThis is to synchronize with later warm plug implementation which will\nrecord hotplug request in dev-\u003eflags.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "abdda7331d469fa965167365f011d05e226008fb",
      "tree": "ce2c66d01eba2b6a383080d6d3812884c6418e6a",
      "parents": [
        "c6cf9e99d1de5ca6a08fb639bb73031ffe50d802"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:29 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:29 2006 +0900"
      },
      "message": "[PATCH] libata-hp-prep: add flags and eh_info/context fields for hotplug\n\nAdd hotplug related flags and eh_info/context fields.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "c6cf9e99d1de5ca6a08fb639bb73031ffe50d802",
      "tree": "555a47d45b5b80ef14ff53ccb4c6d1439460e251",
      "parents": [
        "7395acb2c840fd4d0cacc91d6fb71440057141ab"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:27 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:27 2006 +0900"
      },
      "message": "[PATCH] libata: implement ata_eh_wait()\n\nImplement ata_eh_wait().  On return from this function, it\u0027s\nguaranteed that the EH which was pending or in progress when the\nfunction was called is complete - including the tailing part of SCSI\nEH.  This will be used by hotplug and others to synchronize with EH.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "7395acb2c840fd4d0cacc91d6fb71440057141ab",
      "tree": "29ea31b15be4cbcb44321eda2e607ea984adfd57",
      "parents": [
        "20952b699035448d2277c64efc5910a31be66ed1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:25 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed May 31 18:27:25 2006 +0900"
      },
      "message": "[PATCH] libata: shift host flag constants\n\nNudge host flag constants to make a room after ATA_FLAG_EH_PENDING.\nNew EH flag will be added.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "75e995855f45a83afdae34d50c0b3ee14fb23b7a",
      "tree": "9909a5bd5129cfa957baf05d475b0bcac3f45f94",
      "parents": [
        "622b20fcb8b42aa4c3c87c0a036f2ad0927b64bc"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Wed May 24 14:14:41 2006 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 26 22:02:23 2006 -0400"
      },
      "message": "[PATCH] libata: add pio_data_xfer_noirq\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "957d2df1801865eb1e63864bc63b970aa9c460ba",
      "tree": "e0281c79adb24a64c712c10bd445f42ccadaf4a8",
      "parents": [
        "31a34fe75906ba5f61606eaed01da313f29ca4b1"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Tue May 23 13:18:57 2006 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed May 24 02:09:56 2006 -0400"
      },
      "message": "[PATCH] libata: Remove obsolete flag\n\nATA_FLAG_IRQ_MASK was added when I did the original data transfer with\nIRQ masked bits for PIO. It has since been replaced by -\u003epio_data_xfer\nmethods so should be removed so nobody uses it by mistake thinking it\nstill works.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "a6b2c5d4754dc539a560fdf0d3fb78a14174394a",
      "tree": "c6daf88f97c7ed20becf2bd8666be81190eb4bb4",
      "parents": [
        "8190bdb9291758f3b8c436ec1154c9923ddb57ea"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon May 22 16:59:59 2006 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed May 24 01:58:54 2006 -0400"
      },
      "message": "[PATCH] PATCH: libata. Add -\u003edata_xfer method\n\nWe need to pass the device in order to do per device checks such as\n32bit I/O enables. With the changes to include dev-\u003eap we now don\u0027t have\nto add parameters however just clean them up. Also add data_xfer methods\nto the existing drivers except ata_piix (which is in the other block of\npatches). If you reject the piix one just add a data_xfer to it...\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "3655d1d323386e001c786af10f0a3f39f438f03b",
      "tree": "16fd30cc6d255e5aaad4a5372cb8ec140c5b9736",
      "parents": [
        "3d71b3b0b634b1a5ba8632fd9ec998e0e4aedfdb"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Fri May 19 11:43:04 2006 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat May 20 00:37:01 2006 -0400"
      },
      "message": "[PATCH] libata: Fix the HSM error_mask mapping (was: Re: libata-tj and SMART)\n\nFix the HSM error_mask mapping.\n\nChanges:\n- Better mapping in ac_err_mask()\n- In HSM_ST_FIRST ans HSM_ST state, check ATA_ERR|ATA_DF and map it to AC_ERR_DEV instead of AC_ERR_HSM.\n- In HSM_ST_FIRST and HSM_ST state, map DRQ\u003d1 ERR\u003d1 to AC_ERR_HSM.\n- For PIO data in and DRQ\u003d1 ERR\u003d1, add check after the junk data block is read.\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "8d4ee71ff6de5255ebfdf44fb83419d27bd06368",
      "tree": "ae03881d6d86b528e075f7b6af8af74f4dbbf9ec",
      "parents": [
        "efa6e7e9d40fe01406d889a5bed62f2e0da49bff",
        "9a375e93f88269bb770fb2eaa57554c975449c88"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon May 15 11:27:47 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon May 15 11:27:47 2006 -0400"
      },
      "message": "Merge branch \u0027max-sect\u0027 into upstream\n"
    },
    {
      "commit": "a6e6ce8e8dc907a2cf2b994b0ea4099423f046bf",
      "tree": "cc308c45c0d2df9e52be69959b9fd189371ad5d7",
      "parents": [
        "e8ee84518c159a663c07bf691ace187527380f61"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 21:03:48 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 21:03:48 2006 +0900"
      },
      "message": "[PATCH] libata-ncq: implement NCQ device configuration\n\nNow that all NCQ related stuff are in place, implement NCQ device\nconfiguration and bump ATA_MAX_QUEUE to 32 thus activating NCQ\nsupport.\n\nOriginal implementation is from Jens Axboe.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "dedaf2b0365ccec50714fbde0b3215e7e94fa47c",
      "tree": "d98e2a928793e6072d4ff65b0e2ceedaa600e25d",
      "parents": [
        "6cec4a3943bdfe46e2952bc246f17670f747be8d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 21:03:43 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 21:03:43 2006 +0900"
      },
      "message": "[PATCH] libata-ncq: implement ap-\u003eqc_active, ap-\u003esactive and complete helper\n\nAdd ap-\u003eqc_active and ap-\u003esactive, mask of all active qcs and libata\u0027s\nview of the SActive register, respectively.  Also, implement\nata_qc_complete_multiple() which takes new qc_active mask and complete\nmultiple qcs according to the mask.\n\nThese will be used to track NCQ commands and complete them.  The\ndistinction between ap-\u003eqc_active and ap-\u003esactive is also useful for\nlater PM implementation.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    }
  ],
  "next": "6cec4a3943bdfe46e2952bc246f17670f747be8d"
}
