)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "f69499f42caf74194df678c9c293f2ee0fe90bc3",
      "tree": "642f3d5792eb6561fd01116f6a247d26f9e3e304",
      "parents": [
        "2ab7db1ff1d64a2ba389d0692d532f42a15f1f72"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:03 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:03 2006 +0900"
      },
      "message": "[PATCH] libata-eh-fw: update ata_qc_from_tag() to enforce normal/EH qc ownership\n\nNew EH framework has clear distinction about who owns a qc.  Every qc\nstarts owned by normal execution path - PIO, interrupt or whatever.\nWhen an exception condition occurs which affects the qc, the qc gets\nscheduled for EH.  Note that some events (say, link lost and regained,\ncommand timeout) may schedule qc\u0027s which are not directly related but\ncould have been affected for EH too.  Scheduling for EH is atomic\nw.r.t. ap-\u003ehost_set-\u003elock and once schedule for EH, normal execution\npath is not allowed to access the qc in whatever way.  (PIO\nsynchronization acts a bit different and will be dealt with later)\n\nThis patch make ata_qc_from_tag() check whether a qc is active and\nowned by normal path before returning it.  If conditions don\u0027t match,\nNULL is returned and thus access to the qc is denied.\n__ata_qc_from_tag() is the original ata_qc_from_tag() and is used by\nlibata core/EH layers to access inactive/failed qc\u0027s.\n\nThis change is applied only if the associated LLDD implements new EH\nas indicated by non-NULL -\u003eerror_handler\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "2ab7db1ff1d64a2ba389d0692d532f42a15f1f72",
      "tree": "c676e2796896e6856fda6cc6598d5670d06b5c1c",
      "parents": [
        "dc2b3515868a254b3d653d77844bff93c5d4c095"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:02 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:58:02 2006 +0900"
      },
      "message": "[PATCH] libata-eh-fw: use special reserved tag and qc for internal commands\n\nNew EH may issue internal commands to recover from error while failed\nqc\u0027s are still hanging around.  To allow such usage, reserve tag\nATA_MAX_QUEUE-1 for internal command.  This also makes it easy to tell\nwhether a qc is for internal command or not.  ata_tag_internal() test\nimplements this test.\n\nTo avoid breaking existing drivers, ata_exec_internal() uses\nATA_TAG_INTERNAL only for drivers which implement -\u003eerror_handler.\nFor drivers using old EH, tag 0 is used.  Note that this makes\nata_tag_internal() test valid only when -\u003eerror_handler is\nimplemented.  This is okay as drivers on old EH should not and does\nnot have any reason to use ata_tag_internal().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "9ec957f2002bd2994be659bbc0ec28397fa251ee",
      "tree": "26c920d57260ebd397f19dd597ab845b68d04d18",
      "parents": [
        "f15a1dafed22d5037e0feea7528e1eeb28a1a7a3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:58 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:58 2006 +0900"
      },
      "message": "[PATCH] libata-eh-fw: add flags and operations for new EH\n\nAdd ATA_FLAG_EH_{PENDING|FROZEN}, ATA_ATA_QCFLAG_{FAILED|SENSE_VALID}\nand ops-\u003efreeze, thaw, error_handler, post_internal_cmd() for new EH.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "61440db61fe4945ad9f7b32b4d6a22b17174aa1f",
      "tree": "4c093d6c72facf6bc77fcedce7d8c1cb85415f5b",
      "parents": [
        "3373efd89dead4ce7818d685729e0431448357c9"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:55 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:55 2006 +0900"
      },
      "message": "[PATCH] libata: implement ATA printk helpers\n\nImplement ata_{port|dev}_printk() which prefixes the message with\nproper identification string.  This change is necessary for later PM\nsupport because devices and links should be identified differently\ndepending on how they are attached.\n\nThis also helps unifying device id strings.  Currently, there are two\nforms in use (P is the port number D device number) - \u0027ataP(D):\u0027, and\n\u0027ataP: dev D \u0027.  These macros also make it harder to forget proper ID\nstring (e.g. printing only port number when a device is in question).\n\nDebug message handling can be integrated into these printk macros by\npassing debug type and level via @lv.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "3373efd89dead4ce7818d685729e0431448357c9",
      "tree": "d7e7a1afd83e269c3c0978f924cd8c54d9be7f5a",
      "parents": [
        "38d87234d6c47ca487fc6344100323d5adc6f32c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:53 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:53 2006 +0900"
      },
      "message": "[PATCH] libata: use dev-\u003eap\n\nUse dev-\u003eap where possible and eliminate superflous @ap from functions\nand structures.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "38d87234d6c47ca487fc6344100323d5adc6f32c",
      "tree": "5136dc203543954ab8340988c3a18fcec39bf533",
      "parents": [
        "a0ab51cefc95cb7756c4914603fea2b1a0f813c5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:51 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:51 2006 +0900"
      },
      "message": "[PATCH] libata: add dev-\u003eap\n\nAdd dev-\u003eap which points back to the port the device belongs to.  This\nmakes it unnecessary to pass @ap for silly reasons (e.g. printks).\nAlso, this change is necessary to accomodate later PM support which\nwill introduce ATA link inbetween port and device.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "a0ab51cefc95cb7756c4914603fea2b1a0f813c5",
      "tree": "8ad4be1bd8df959db434f83d33ced04dab211145",
      "parents": [
        "81952c5497b40ae56835bd0d6537f8c6bdea07e7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:49 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:49 2006 +0900"
      },
      "message": "[PATCH] libata: kill old SCR functions and sata_dev_present()\n\nKill now unused scr_{read|write|write_flush}() and sata_dev_present().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "34bf21704c848fe00c516d1c8f163db08b70b137",
      "tree": "8482de3ddf6ff1b02ff9ddfd027d2478c7ecd7ac",
      "parents": [
        "838df6284c54447efae956fb9c243d8ba4ab0f47"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:46 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:46 2006 +0900"
      },
      "message": "[PATCH] libata: implement new SCR handling and port on/offline functions\n\nImplement ata_scr_{valid|read|write|write_flush}() and\nata_port_{online|offline}().  These functions replace\nscr_{read|write}() and sata_dev_present().\n\nMajor difference between between the new SCR functions and the old\nones is that the new ones have a way to signal error to the caller.\nThis makes handling SCR-available and SCR-unavailable cases in the\nsame path easier.  Also, it eases later PM implementation where SCR\naccess can fail due to various reasons.\n\nata_port_{online|offline}() functions return 1 only when they are\naffirmitive of the condition.  e.g.  if SCR is unaccessible or\npresence cannot be determined for other reasons, these functions\nreturn 0.  So, ata_port_online() !\u003d !ata_port_offline().  This\ndistinction is useful in many exception handling cases.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "e61e067227bc76b4d9411a50d735c9d87f27b0e2",
      "tree": "007d22539b24aa6ae8e258af6e22a4187490a4c1",
      "parents": [
        "96bd39ec295e49443c8b0c25a6b69fdace18780f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:40 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:40 2006 +0900"
      },
      "message": "[PATCH] libata: implement qc-\u003eresult_tf\n\nAdd qc-\u003eresult_tf and ATA_QCFLAG_RESULT_TF.  This moves the\nresponsibility of loading result TF from post-compltion path to qc\nexecution path.  qc-\u003eresult_tf is loaded if explicitly requested or\nthe qc failsa.  This allows more efficient completion implementation\nand correct handling of result TF for controllers which don\u0027t have\nglobal TF representation such as sil3124/32.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "fe635c7e91036282e4fd0cc5b4eebc712e43270d",
      "tree": "22054d039df52c19e729f30ceee836936a730ce6",
      "parents": [
        "158693031d7c58a355ec1852052a4fca75fd3bda"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:35 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:35 2006 +0900"
      },
      "message": "[PATCH] libata: use preallocated buffers\n\nIt\u0027s not a very good idea to allocate memory during EH.  Use\nstatically allocated buffer for dev-\u003eid[] and add 512byte buffer\nap-\u003esector_buf.  This buffer is owned by EH (or probing) and to be\nused as temporary buffer for various purposes (IDENTIFY, NCQ log page\n10h, PM GSCR block).\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "6cd727b14f1a6cdcb088d1067c1ba0ba124806a7",
      "tree": "21ad0764c0f511b029e2f4548a5035a983d978e2",
      "parents": [
        "e23befe9018319dc218e2e51c20ce480e6b45eeb"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:28 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:28 2006 +0900"
      },
      "message": "[PATCH] libata: kill duplicate prototypes\n\nKill duplicate prototypes for ata_eh_qc_complete/retry() in libata.h.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "3c567b7d1137633f3ff67cd1df94abc5fd497a85",
      "tree": "085d98f696a0b8a2440bac4686929731769a6760",
      "parents": [
        "c44078c03f018c8cc9d7463b0db4c6c7fb316792"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:23 2006 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon May 15 20:57:23 2006 +0900"
      },
      "message": "[PATCH] libata: rename ata_down_sata_spd_limit() and friends\n\nRename ata_down_sata_spd_limit() and friends to sata_down_spd_limit()\nand likewise for simplicity \u0026 consistency.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "a890b15c0990cc8d686edcc85f5fccde71ad5ce9",
      "tree": "73162355b58283a2531f13fbbf663809f95c1483",
      "parents": [
        "79fa1b677be3a985cc66b9218a4dd09818f1051b",
        "26ec634c31a11a003040e10b4d650495158632fd"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Apr 12 16:54:43 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Apr 12 16:54:43 2006 -0400"
      },
      "message": "Merge branch \u0027upstream\u0027\n"
    },
    {
      "commit": "875999c5539999f61a45620aae0c3e5fb1d2b035",
      "tree": "4535032a8a10f5782c0aef6a620b1a624ea9f863",
      "parents": [
        "79072f38909e3d9883317238887460c39ddcc4cb",
        "26ec634c31a11a003040e10b4d650495158632fd"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Apr 12 16:54:16 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Apr 12 16:54:16 2006 -0400"
      },
      "message": "Merge branch \u0027upstream\u0027\n"
    },
    {
      "commit": "499a86af41cf5a4bf811726841bbc49c0e96fd35",
      "tree": "4fc1f8ff32782f069e488eaea200be055046704a",
      "parents": [
        "51713d359ae274fa4dd4b199ba3a6b0c21ef99e0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Apr 11 22:32:18 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 11 13:31:35 2006 -0400"
      },
      "message": "[PATCH] libata: export ata_set_sata_spd()\n\nThis will be used by LLDD hardreset implementation.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c22daff41001e9ccead87179ac0547f85447139e",
      "tree": "b8faa6e19419704c19f07a9f7043ab2435f719df",
      "parents": [
        "643be977f9feba8c3c1e768fc06cac84596ec6f8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Apr 11 22:22:29 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 11 13:19:11 2006 -0400"
      },
      "message": "[PATCH] libata: implement ata_wait_register()\n\nAs waiting for some register bits to change seems to be a common\noperation shared by some controllers, implement helper function\nata_wait_register().  This function also takes care of register write\nflushing.\n\nNote that the condition is inverted, the wait is over when the masked\nvalue does NOT match @val.  As we\u0027re waiting for bits to change, this\ntest is more powerful and allows the function to be used in more\nplaces.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2bf2cb26b2512c6a609bb152982c388329bedff6",
      "tree": "9f1f3ea5000304fd946f34b24d9904c2a1027480",
      "parents": [
        "db70fef0750e5f8dbb64f9fadb333d2c7caf26a1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Apr 11 22:16:45 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 11 13:12:46 2006 -0400"
      },
      "message": "[PATCH] libata: kill @verbose from ata_reset_fn_t\n\n@verbose was added to ata_reset_fn_t because AHCI complained during\nprobing if no device was attached to the port.  However, muting\nfailure message isn\u0027t the correct approach.  Reset methods are\nresponsible for detecting no device condition and finishing\nsuccessfully.  Now that AHCI softreset is fixed, kill @verbose.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "35bb94b116e1fd4959ef0d3187458b5820eac8c4",
      "tree": "48a05166c489838d04429279a2886ac6a32b20c9",
      "parents": [
        "381544bba3ae6f2f1004b267da34f840b469033c"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 11 13:12:34 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 11 13:12:34 2006 -0400"
      },
      "message": "libata: Add helper ata_shost_to_port()\n"
    },
    {
      "commit": "381544bba3ae6f2f1004b267da34f840b469033c",
      "tree": "e748d5da19d3fa79bee2ad5b40b44722cdf64184",
      "parents": [
        "10a5fd5e6b7e2d464c9f95f67cade4ddbd63f4e1"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 11 13:04:39 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 11 13:04:39 2006 -0400"
      },
      "message": "libata: Fix EH merge difference between this branch and upstream.\n"
    },
    {
      "commit": "10a5fd5e6b7e2d464c9f95f67cade4ddbd63f4e1",
      "tree": "eddf856286234f28cac747d20eb59d918e1bc8b5",
      "parents": [
        "c2a6585296009379e0f4eff39cdcb108b457ebf2",
        "a145410dccdb44f81d3b56763ef9b6f721f4e47c"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 11 12:51:40 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 11 12:51:40 2006 -0400"
      },
      "message": "Merge branch \u0027master\u0027\n\nConflicts:\n\n\tdrivers/scsi/libata-scsi.c\n\tinclude/linux/libata.h\n"
    },
    {
      "commit": "9227c33de80ac01f269ed33624990ce84358e419",
      "tree": "7678d342949db011d37e15516c3eaa22ec32ff2a",
      "parents": [
        "676165a8af7167f488abdcce6851a9bc36e83254"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Sat Apr 01 19:21:04 2006 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Apr 10 14:15:47 2006 -0400"
      },
      "message": "[PATCH] move -\u003eeh_strategy_handler to the transport class\n\nOverriding the whole EH code is a per-transport, not per-host thing.\nMove -\u003eeh_strategy_handler to the transport class, same as\n-\u003eeh_timed_out.\n\nDownside is that scsi_host_alloc can\u0027t check for the total lack of EH\nanymore, but the transition period from old EH where we needed it is\nlong gone already.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "79fa1b677be3a985cc66b9218a4dd09818f1051b",
      "tree": "d36030be7cd07461055f005394ef275212353010",
      "parents": [
        "31ce6daefe2d312e31ee06b0b3301b1cb7878c04",
        "c2a6585296009379e0f4eff39cdcb108b457ebf2"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 04 08:45:13 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 04 08:45:13 2006 -0400"
      },
      "message": "Merge branch \u0027upstream\u0027\n"
    },
    {
      "commit": "95de719adc94392a95c3c4d0a2d6b8b1ea39d236",
      "tree": "d8196f39ca64a2c727ff6eff94b28d10013c6564",
      "parents": [
        "c16226a1c75042bfdc50bd2921d5919f6267ba51"
      ],
      "author": {
        "name": "Albert Lee",
        "email": "albertcc@tw.ibm.com",
        "time": "Tue Apr 04 10:57:18 2006 +0800"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Apr 04 08:44:24 2006 -0400"
      },
      "message": "[PATCH] libata: convert ATAPI_ENABLE_DMADIR to module parameter\n\nConvert the ATAPI_ENABLE_DMADIR compile time option needed\nby some SATA-PATA bridge to runtime module parameter.\n\nSigned-off-by: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "029f5468b5b5f93a09bf90326fdcb9124079658d",
      "tree": "f869fb02ad1ca49e0920e073b22cbb96a184ccae",
      "parents": [
        "8e181c14f2baa5be9b7f7c3917b7d4ecf7529110",
        "1ad8e7f9eb051b040880e45337ed74bfd916ef7f"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Apr 02 10:30:40 2006 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Apr 02 10:30:40 2006 -0400"
      },
      "message": "Merge branch \u0027upstream\u0027\n\nConflicts:\n\n\tdrivers/scsi/libata-core.c\n\tdrivers/scsi/pdc_adma.c\n\tdrivers/scsi/sata_mv.c\n\tdrivers/scsi/sata_nv.c\n\tdrivers/scsi/sata_promise.c\n\tdrivers/scsi/sata_qstor.c\n\tdrivers/scsi/sata_sx4.c\n\tdrivers/scsi/sata_vsc.c\n\tinclude/linux/libata.h\n"
    },
    {
      "commit": "ece1d63619df010b8c4f08e43755e2a03f3b6eed",
      "tree": "c6474fe7541d479bf19c36c79700dfa9f6093a8d",
      "parents": [
        "35e86b53b1a38e78ff0d70dae4aeb25f4572e433"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Apr 02 18:51:53 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Apr 02 10:09:21 2006 -0400"
      },
      "message": "[PATCH] libata: separate out libata-eh.c\n\nA lot of EH codes are about to be added to libata.  Separate out\nlibata-eh.c.  ata_scsi_timed_out(), ata_scsi_error(),\nata_qc_timeout(), ata_eng_timeout(), ata_eh_qc_complete() and\nata_eh_qc_retry() are moved.  No code is changed by this patch.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2719736779da2c7fbb17d3de16c817b429bfeb9c",
      "tree": "f65b910e990cc59805faefc33fbb84cd419572c4",
      "parents": [
        "e8384607d4f395985e3cc5f82d75fc73efc2ecf0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Apr 02 18:51:53 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Apr 02 10:09:20 2006 -0400"
      },
      "message": "[PATCH] libata: add ATA_QCFLAG_IO\n\nAdd a new qc flag ATA_QCFLAG_IO.  This flag gets set for normal IO\ncommands originating from SCSI midlayer.  This information will be\nused by EH to determine transfer speed reconfiguration.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "ea1dd4e13010eb9dd5ffb4bfabbb472bc238bebb",
      "tree": "2c55fb5671c1dab0c99d84d46c09fd03ebdc5f53",
      "parents": [
        "198e0fed9e59461fc1890dd8b75ec72d14638873"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Apr 02 18:51:53 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Apr 02 10:09:19 2006 -0400"
      },
      "message": "[PATCH] libata: clear only affected flags during ata_dev_configure()\n\nata_dev_configure() should not clear dynamic device flags determined\nelsewhere.  Lower eight bits are reserved for feature flags, define\nATA_DFLAG_CFG_MASK and clear only those bits before configuring\ndevice.  Without this patch, ATA_DFLAG_PIO gets turned off during\nrevalidation making PIO mode unuseable.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "198e0fed9e59461fc1890dd8b75ec72d14638873",
      "tree": "c5c1d727117df989d6e6e8e2b79d065a669a7a27",
      "parents": [
        "949b38af40a0b88b7267908b1554a45b97b5b737"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Apr 02 18:51:52 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Apr 02 10:09:19 2006 -0400"
      },
      "message": "[PATCH] libata: rename ATA_FLAG_PORT_DISABLED to ATA_FLAG_DISABLED\n\nRename ATA_FLAG_PORT_DISABLED to ATA_FLAG_DISABLED for consistency.\n(ATA_FLAG_* are always about ports).\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "949b38af40a0b88b7267908b1554a45b97b5b737",
      "tree": "cff0a143d71c8e03bf8aceefdfec8f735bc33416",
      "parents": [
        "c43c555c3a6db7f0b55fd9b66d7ecff16e827d4e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Apr 02 18:51:52 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Apr 02 10:09:19 2006 -0400"
      },
      "message": "[PATCH] libata: clean up constants\n\n* Reorder ATA_DFLAG_* such that feature flags determined by\n  ata_dev_configure() are on lower bits.  Reserve lower eight bits\n  for this purpose and allocate dynamic flags from bit 8.\n\n* Reorder ATA_FLAG_* such that feature flags determined during driver\n  initiailization are on bits 0:15, dynamic flags on 16:23 and LLDD\n  specific flags on 24:31.\n\n* Kill trailing white space and lower-case an one line comment for\n  consistency.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "c43c555c3a6db7f0b55fd9b66d7ecff16e827d4e",
      "tree": "3036762ea56f742414eaaf098f9f5f34dedb03e4",
      "parents": [
        "5eb45c02a9944e813a0b82457607557a1f2c64b5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Apr 02 18:51:52 2006 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sun Apr 02 10:09:19 2006 -0400"
      },
      "message": "[PATCH] libata: ATA_FLAG_IN_EH is not used, kill it\n\nKill unused flag ATA_FLAG_IN_EH.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    }
  ],
  "next": "14d2bac1877ed4e2cc940d1680db1a4f29225811"
}
