)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "6cec4a3943bdfe46e2952bc246f17670f747be8d",
      "tree": "46fa642814683174b6da21c992ef6f672cec3ab5",
      "parents": [
        "2115ea94a2d11fbd228b049e667ec2d3e91ca371"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 21:03:41 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 21:03:41 2006 +0900"
      },
      "message": "[PATCH] libata-ncq: rename ap-\u003eqactive to ap-\u003eqc_allocated\n\nRename ap-\u003eqactive to ap-\u003eqc_allocated.  This is to accomodate\naddition of ap-\u003eqc_active, mask of active qcs.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "88e490340ea4c3a2ebc0187a4339912e2fc1a081",
      "tree": "ab2604a796754a0fba301b4362dc649136b180c3",
      "parents": [
        "c17ea20d9a689d7335e97e09354865cdd9f873e1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 21:03:38 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 21:03:38 2006 +0900"
      },
      "message": "[PATCH] libata-ncq: add NCQ related ATA/libata constants and macros\n\nAdd NCQ related ATA/libata constants and macros.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "12436c30f4808e00fa008c6787c609bc6ae216ba",
      "tree": "22ddaad8def4f4a77637a3da62a8d8f422a95c29",
      "parents": [
        "88ce7550c38f46c8697f53727a571bf838bee398",
        "7894eaf291238a62a565e9e9777483beeb00eeae"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:59:15 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:59:15 2006 +0900"
      },
      "message": "Merge branch \u0027irq-pio\u0027\n\nConflicts:\n\n\tdrivers/scsi/libata-core.c\n\tinclude/linux/libata.h\n"
    },
    {
      "commit": "6d97dbd72da31a0e334f251fa9df4be9fab6fde2",
      "tree": "f31e023080474ba91529d7e1b1468cc999e32c73",
      "parents": [
        "022bdb075b9e1f224088a0b268de56268d7bc5b6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:24 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:24 2006 +0900"
      },
      "message": "[PATCH] libata-eh: implement BMDMA EH\n\nImplement stock BMDMA error handling methods.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "022bdb075b9e1f224088a0b268de56268d7bc5b6",
      "tree": "05878e28202f0a86bdcc32ae5d995db9f15042da",
      "parents": [
        "f3e81b19aac23c0e8c55d5961324ef7de44c23bb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:22 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:22 2006 +0900"
      },
      "message": "[PATCH] libata-eh: implement new EH\n\nImplement new EH.  The exported interface is ata_do_eh() which is to\nbe called from -\u003eerror_handler and performs the following steps to\nrecover the failed port.\n\nata_eh_autopsy() : analyze SError/TF, determine the cause of failure\n\t\t   and required recovery actions and record it in\n\t\t   ap-\u003eeh_context\nata_eh_report()\t : report the failure to user\nata_eh_recover() : perform recovery actions described in ap-\u003eeh_context\nata_eh_finish()\t : finish failed qcs\n\nLLDDs can customize error handling by modifying eh_context before\ncalling ata_do_eh() or, if necessary, doing so inbetween each major\nsteps by calling each step explicitly.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "f3e81b19aac23c0e8c55d5961324ef7de44c23bb",
      "tree": "9ea0bf3c5ecabb855a78623236d07e7bc2976ca3",
      "parents": [
        "0c247c559cd70f85ba9f0764ce13ae00e20fcad8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:21 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:21 2006 +0900"
      },
      "message": "[PATCH] libata-eh: implement ata_eh_info and ata_eh_context\n\nstruct ata_eh_info serves as the communication channel between\nexecution path and EH.  Execution path describes detected error\ncondition in ap-\u003eeh_info and EH recovers the port using it.  To avoid\nmissing error conditions detected during EH, EH makes its own copy of\neh_info and clears it on entry allowing error info to accumulate\nduring EH.\n\nMost EH states including EH\u0027s copy of eh_info are stored in\nap-\u003eeh_context (struct ata_eh_context) which is owned by EH and thus\ndoesn\u0027t require any synchronization to access and alter.  This\nstandardized context makes it easy to integrate various parts of EH\nand extend EH to handle multiple links (for PM).\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "0c247c559cd70f85ba9f0764ce13ae00e20fcad8",
      "tree": "9b0d00b300ad9178438b9c7feba95ed62f540c1a",
      "parents": [
        "9be1e979f2e1e57a091a658fa88dac266f9fd6fe"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:19 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:19 2006 +0900"
      },
      "message": "[PATCH] libata-eh: implement dev-\u003eering\n\nThis patch implements ata_ering and uses it to define dev-\u003eering.\n\nata_ering is a ring buffer which records libata errors - whether a\ncommand was for normar IO request, err_mask and timestamp.  Errors are\nrecorded per-device in dev-\u003eering.  This will be used by EH to\ndetermine recovery actions.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "9be1e979f2e1e57a091a658fa88dac266f9fd6fe",
      "tree": "781b216ce5a2b39c711ee32d285f4455feba7d34",
      "parents": [
        "246619da308c6910a3ae30e7e5fbf46139619efe"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:17 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:17 2006 +0900"
      },
      "message": "[PATCH] libata-eh: add ATA and libata flags for new EH\n\nAdd ATA and libata flags to be used by new EH.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "ad9e27624479bd167dd7eac0cea4bb3ad13bc926",
      "tree": "47b863c91509a29c9b0f760faa52d60a95272ba6",
      "parents": [
        "dafadcde8d4dc5ea8c742faa7ff4403336b542b8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:12 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:12 2006 +0900"
      },
      "message": "[PATCH] libata-eh-fw: update ata_scsi_error() for new EH\n\nUpdate ata_scsi_error() for new EH.  ata_scsi_error() is responsible\nfor claiming timed out qcs and invoking -\u003eerror_handler in safe and\nsynchronized manner.  As the state of the controller is unknown if a\nqc has timed out, the port is frozen in such cases.\n\nNote that ata_scsi_timed_out() isn\u0027t used for new EH.  This is because\na timed out qc cannot be claimed by EH without freezing the port and\nfreezing the port in ata_scsi_timed_out() results in unnecessary\nabortion of other active qcs.  ata_scsi_timed_out() can be removed\nonce all drivers are converted to new EH.\n\nWhile at it, add \u0027TODO: kill\u0027 comments to old EH functions.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "e318049949b07152d851dbfebbd93e560af45ebe",
      "tree": "cbc322c94717c9ac5d7e2c48a9f690a2e0145b81",
      "parents": [
        "7b70fc039824bc7303e4007a5f758f832de56611"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:09 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:09 2006 +0900"
      },
      "message": "[PATCH] libata-eh-fw: implement freeze/thaw\n\nFreezing is performed atomic w.r.t. host_set-\u003elock and once frozen\nLLDD is not allowed to access the port or any qc on it.  Also, libata\nmakes sure that no new qc gets issued to a frozen port.\n\nA frozen port is thawed after a reset operation completes\nsuccessfully, so reset methods must do its job while the port is\nfrozen.  During initialization all ports get frozen before requesting\nIRQ, so reset methods are always invoked on a frozen port.\n\nOptional -\u003efreeze and -\u003ethaw operations notify LLDD that the port is\nbeing frozen and thawed, respectively.  LLDD can disable/enable\nhardware interrupt in these callbacks if the controller\u0027s IRQ mask can\nbe changed dynamically.  If the controller doesn\u0027t allow such\noperation, LLDD can check for frozen state in the interrupt handler\nand ack/clear interrupts unconditionally while frozen.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "7b70fc039824bc7303e4007a5f758f832de56611",
      "tree": "d973a40055dec97fedc5ae87852667ed2d30ea71",
      "parents": [
        "f686bcb8078ac7505ec88818886c2c72639f4fc5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:07 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:07 2006 +0900"
      },
      "message": "[PATCH] libata-eh-fw: implement ata_port_schedule_eh() and ata_port_abort()\n\nata_port_schedule_eh() directly schedules EH for @ap without\nassociated qc.  Once EH scheduled, no further qc is allowed and EH\nkicks in as soon as all currently active qc\u0027s are drained.\n\nata_port_abort() schedules all currently active commands for EH by\nqc_completing them with ATA_QCFLAG_FAILED set.  If ata_port_abort()\ndoesn\u0027t find any qc to abort, it directly schedule EH using\nata_port_schedule_eh().\n\nThese two functions provide ways to invoke EH for conditions which\naren\u0027t directly related to any specfic qc.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "f686bcb8078ac7505ec88818886c2c72639f4fc5",
      "tree": "7c563e0032b2d85b631b617b8bb2a7a648607468",
      "parents": [
        "f69499f42caf74194df678c9c293f2ee0fe90bc3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:05 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:05 2006 +0900"
      },
      "message": "[PATCH] libata-eh-fw: implement new EH scheduling via error completion\n\nThere are several ways a qc can get schedule for EH in new EH.  This\npatch implements one of them - completing a qc with ATA_QCFLAG_FAILED\nset or with non-zero qc-\u003eerr_mask.  ALL such qc\u0027s are examined by EH.\n\nNew EH schedules a qc for EH from completion iff -\u003eerror_handler is\nimplemented, qc is marked as failed or qc-\u003eerr_mask is non-zero and\nthe command is not an internal command (internal cmd is handled via\n-\u003epost_internal_cmd).  The EH scheduling itself is performed by asking\nSCSI midlayer to schedule EH for the specified scmd.\n\nFor drivers implementing old-EH, nothing changes.  As this change\nmakes ata_qc_complete() rather large, it\u0027s not inlined anymore and\n__ata_qc_complete() is exported to other parts of libata for later\nuse.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    }
  ],
  "next": "f69499f42caf74194df678c9c293f2ee0fe90bc3"
}
