)]}'
{
  "log": [
    {
      "commit": "360ff7833098e944e5003618b03894251e937802",
      "tree": "aaa8c8f771cf35b2a0dab58ea6bad35d88f4ac8a",
      "parents": [
        "f60d70113fa04e32aee2dedbf304a48469c9c45c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:42 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:38:55 2010 -0400"
      },
      "message": "libata-sff: separate out BMDMA qc_issue\n\nSeparate out ata_bmdma_qc_issue() from ata_sff_qc_issue() such that\nata_sff_qc_issue() only deals with non-BMDMA SFF protocols (PIO and\nnodata) while ata_bmdma_qc_issue() deals with the BMDMA protocols and\nuses ata_sff_qc_issue() for non-DMA commands.  All the users are\nupdated accordingly.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "f60d70113fa04e32aee2dedbf304a48469c9c45c",
      "tree": "6e74f483773dfae0adda0faa8754b5ce6129d8f7",
      "parents": [
        "f47451c45fe0032ef491aaf3e0623fa0154e156d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:41 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:38:54 2010 -0400"
      },
      "message": "libata-sff: prd is BMDMA specific\n\nstruct ata_prd and ap-\u003eprd are BMDMA specific.  Add bmdma_ prefix to\nthem and move them inside CONFIG_ATA_SFF.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "f47451c45fe0032ef491aaf3e0623fa0154e156d",
      "tree": "3e2901991480836be75f75288c2220ef086fe694",
      "parents": [
        "fe06e5f9b7c61dc567edace3f4909672067f7d7e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:40 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:36:50 2010 -0400"
      },
      "message": "libata-sff: ata_sff_[dumb_]qc_prep are BMDMA specific\n\nBoth qc_prep functions deal only with BMDMA PRD setup and PIO only SFF\ndrivers don\u0027t need them.  Rename to ata_bmdma_[dumb_]qc_prep() and\nrelocate.\n\nAll usages are renamed except for pdc_adma and sata_qstor.  Those two\ndrivers are not BMDMA drivers and don\u0027t need to call BMDMA qc_prep\nfunctions.  Calls to ata_sff_qc_prep() in the two drivers are removed.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "fe06e5f9b7c61dc567edace3f4909672067f7d7e",
      "tree": "b2242169e8e3b32c63925ed9901fff9d49c26192",
      "parents": [
        "c429137a67b82788d24682153bb9c96501a9ef34"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:39 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:36:46 2010 -0400"
      },
      "message": "libata-sff: separate out BMDMA EH\n\nSome of error handling logic in ata_sff_error_handler() and all of\nata_sff_post_internal_cmd() are for BMDMA.  Create\nata_bmdma_error_handler() and ata_bmdma_post_internal_cmd() and move\nBMDMA part into those.\n\nWhile at it, change DMA protocol check to ata_is_dma(), fix\npost_internal_cmd to call ap-\u003eops-\u003ebmdma_stop instead of directly\ncalling ata_bmdma_stop() and open code hardreset selection so that\nata_std_error_handler() doesn\u0027t have to know about sff hardreset.\n\nAs these two functions are BMDMA specific, there\u0027s no reason to check\nfor bmdma_addr before calling bmdma methods if the protocol of the\nfailed command is DMA.  sata_mv and pata_mpc52xx now don\u0027t need to set\n.post_internal_cmd to ATA_OP_NULL and pata_icside and sata_qstor don\u0027t\nneed to set it to their bmdma_stop routines.\n\nata_sff_post_internal_cmd() becomes noop and is removed.\n\nThis fixes p3 described in clean-up-BMDMA-initialization patch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "c429137a67b82788d24682153bb9c96501a9ef34",
      "tree": "b24ed75908f08cc9cddb19efc74fcb46be75de8f",
      "parents": [
        "5fe7454aa9c6ef5fcf506b0f2dfc20f696891f1a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:38 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:35:49 2010 -0400"
      },
      "message": "libata-sff: port_task is SFF specific\n\nport_task is tightly bound to the standard SFF PIO HSM implementation.\nUsing it for any other purpose would be error-prone and there\u0027s no\nsuch user and if some drivers need such feature, it would be much\nbetter off using its own.  Move it inside CONFIG_ATA_SFF and rename it\nto sff_pio_task.\n\nThe only function which is exposed to the core layer is\nata_sff_flush_pio_task() which is renamed from ata_port_flush_task()\nand now also takes care of resetting hsm_task_state to HSM_ST_IDLE,\nwhich is possible as it\u0027s now specific to PIO HSM.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "5fe7454aa9c6ef5fcf506b0f2dfc20f696891f1a",
      "tree": "94e01d83671ed916dd6c931333722702bf46c7ef",
      "parents": [
        "8244cd05979ef924787aa70fd80304f1773976a1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:37 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:35:47 2010 -0400"
      },
      "message": "libata-sff: ap-\u003e[last_]ctl are SFF specific\n\nap-\u003e[last_]ctl are specific to SFF controllers.  Put them inside\nCONFIG_ATA_SFF and move initialization into ata_sff_port_init().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "8244cd05979ef924787aa70fd80304f1773976a1",
      "tree": "1e6f2434807eb3adbc097b3f4d7a4240237bc105",
      "parents": [
        "270390e1ae1818b111543b8bfffa08095d73c1a5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:36 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:35:44 2010 -0400"
      },
      "message": "libata-sff: rename ap-\u003eops-\u003edrain_fifo() to sff_drain_fifo()\n\n-\u003edrain_fifo() is SFF specific.  Rename and relocate it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "270390e1ae1818b111543b8bfffa08095d73c1a5",
      "tree": "be6145d1a3ea7d2e80f303a62c5f9ba5a753c0f5",
      "parents": [
        "c7087652e1890a3feef35b30ee1d4be68e1932cd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:35 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:34:10 2010 -0400"
      },
      "message": "libata-sff: introduce ata_sff_init/exit() and ata_sff_port_init()\n\nIn preparation of proper SFF/BMDMA separation, introduce\nata_sff_init/exit() and ata_sff_port_init().  These functions\ncurrently don\u0027t do anything.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "c7087652e1890a3feef35b30ee1d4be68e1932cd",
      "tree": "04aeca0f44e87a531d7cb5f894b6790391c2c552",
      "parents": [
        "8930ff254a3a80d4477c3391ade07d6dd2a036c7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:34 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed May 19 13:32:19 2010 -0400"
      },
      "message": "libata-sff: clean up BMDMA initialization\n\nWhen BMDMA initialization failed or BMDMA was not available for\nwhatever reason, bmdma_addr was left at zero and used as an indication\nthat BMDMA shouldn\u0027t be used.  This leads to the following problems.\n\np1. For BMDMA drivers which don\u0027t use traditional BMDMA register,\n    ata_bmdma_mode_filter() incorrectly inhibits DMA modes.  Those\n    drivers either have to inherit from ata_sff_port_ops or clear\n    -\u003emode_filter explicitly.\n\np2. non-BMDMA drivers call into BMDMA PRD table allocation.  It\n    doesn\u0027t actually allocate PRD table if bmdma_addr is not\n    initialized but is still confusing.\n\np3. For BMDMA drivers which don\u0027t use traditional BMDMA register, some\n    methods might not be invoked as expected (e.g. bmdma_stop from\n    ata_sff_post_internal_cmd()).\n\np4. SFF drivers w/ custom DMA interface implement noop BMDMA ops\n    worrying libata core might call into one of them.\n\nThese problems are caused by the muddy line between SFF and BMDMA and\nthe assumption that all BMDMA controllers initialize bmdma_addr.\n\nThis patch fixes p1 and p2 by removing the bmdma_addr assumption and\nmoving prd allocation to BMDMA port start.  Later patches will fix the\nremaining issues.\n\nThis patch improves BMDMA initialization such that\n\n* When BMDMA register initialization fails, falls back to PIO instead\n  of failing.  ata_pci_bmdma_init() never fails now.\n\n* When ata_pci_bmdma_init() falls back to PIO, it clears\n  ap-\u003emwdma_mask and udma_mask instead of depending on\n  ata_bmdma_mode_filter().  This makes ata_bmdma_mode_filter()\n  unnecessary thus resolving p1.\n\n* ata_port_start() which actually is BMDMA specific is moved to\n  ata_bmdma_port_start().  ata_port_start() and ata_sff_port_start()\n  are killed.\n\n* ata_sff_port_start32() is moved and renamed to\n  ata_bmdma_port_start32().\n\nDrivers which no longer call into PRD table allocation are...\n\n  pdc_adma, sata_inic162x, sata_qstor, sata_sx4, pata_cmd640 and all\n  drivers which inherit from ata_sff_port_ops.\n\npata_icside sets -\u003eport_start to ATA_OP_NULL as it doesn\u0027t need PRD\nbut is a BMDMA controller and doesn\u0027t have custom port_start like\nother such controllers.\n\nNote that with the previous patch which makes all and only BMDMA\ndrivers inherit from ata_bmdma_port_ops, this change doesn\u0027t break\ndrivers which need PRD table.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "9f2f72107ff621fdf3066e5a1b5ecb03ee587ebc",
      "tree": "266c1371cb706c941ebaebd097380beccd530041",
      "parents": [
        "6bc0d390dd3dfb7be4325ad0685ae8ec2baf15a4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:32 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon May 17 22:49:07 2010 -0400"
      },
      "message": "libata-sff: reorder SFF/BMDMA functions\n\nReorder functions such that SFF and BMDMA functions are grouped.\nWhile at it, s/BMDMA/SFF in a few comments where it actually meant\nSFF.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "3e4ec3443f70fbe144799ccf0b1c3797f78d1715",
      "tree": "cfb297e42075baacbbabfb6034e3e7c9a44c73b2",
      "parents": [
        "c7a8209f766961eea4cfc6f22d2d6e06ef63546c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:30 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon May 17 22:49:02 2010 -0400"
      },
      "message": "libata: kill ATA_FLAG_DISABLED\n\nATA_FLAG_DISABLED is only used by drivers which don\u0027t use\n-\u003eerror_handler framework and is largely broken.  Its only meaningful\nfunction is to make irq handlers skip processing if the flag is set,\nwhich is largely useless and even harmful as it makes those ports more\nlikely to cause IRQ storms.\n\nKill ATA_FLAG_DISABLED and makes the callers disable attached devices\ninstead.  ata_port_probe() and ata_port_disable() which manipulate the\nflag are also killed.\n\nThis simplifies condition check in IRQ handlers.  While updating IRQ\nhandlers, remove ap NULL check as libata guarantees consecutive port\nallocation (unoccupied ports are initialized with dummies) and\nlong-obsolete ATA_QCFLAG_ACTIVE check (checked by ata_qc_from_tag()).\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "c7a8209f766961eea4cfc6f22d2d6e06ef63546c",
      "tree": "63b3b2ee55942218c6c155a56c40e86d99e223ea",
      "parents": [
        "2a7adff09ac3dd3d1facaf92b4a8cc1b92d370b6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:29 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 14 22:38:46 2010 -0400"
      },
      "message": "libata-sff: kill unused prototype and make ata_dev_select() static\n\nata_irq_on() was renamed to ata_sff_irq_on() and exported a while ago\nbut prototype for the original function lingered in\ndrivers/ata/libata.h.  Kill it.  Also, ata_dev_select() is only used\ninside drivers/ata/libata-sff.c.  Make it static.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "2a7adff09ac3dd3d1facaf92b4a8cc1b92d370b6",
      "tree": "a2c41f4ee10893795dbd04215798a2469bb994ae",
      "parents": [
        "1b959c412bbf38ce0fa658183f72027ca8331ee3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon May 10 21:41:28 2010 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 14 22:38:44 2010 -0400"
      },
      "message": "libata-sff: update bmdma host bus error handling\n\n* Clearing IRQ from ata_sff_error_handler() is necessary only when the\n  port is gonna be thawed before performing EH actions and some\n  controllers don\u0027t like being accessed after certain failure modes\n  until they\u0027re reset.  Clear IRQ iff the port is being thawed.\n\n* When the controller succesfully indicated bus error, the point of\n  thawing doesn\u0027t matter.  Move thawing inside bmdma part of EH.  This\n  is a bit ugly but will ease code reorganization later.\n\n* Remove the unneeded ata_sff_sync().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "978c066691a49a205673672a55685305663a2554",
      "tree": "df380b8415c17d80586a111c4492ac6bad7d5afb",
      "parents": [
        "95cc2c70c139936a2142bcd583da8af6f9d88efb"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Wed May 05 10:24:57 2010 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 14 22:25:00 2010 -0400"
      },
      "message": "libata: Remove excess delay in the tf_load path\n\nWe don\u0027t need to stall and wait after loading the task file and before\nissuing a command, so don\u0027t do it. This shows up on profiles and is not\nneeded.\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "3842e835490cdf17013b30a788f6311bdcfd0571",
      "tree": "8468746d8f024d262fc53a7972f184792367b201",
      "parents": [
        "276a47a93dbfe5d35261451925020f65cdbfcce8"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "sebastian@breakpoint.cc",
        "time": "Sun Mar 21 22:52:23 2010 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 14 17:50:05 2010 -0400"
      },
      "message": "libata: don\u0027t flush dcache on slab pages\n\npage_mapping() check this via VM_BUG_ON(PageSlab(page)) so we bug here\nwith the according debuging turned on.\n\nFuture TODO: replace this with a flush_dcache_page_for_pio() API\n\nSigned-off-by: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "e42a542ba9cca594897176020445023c54d903d6",
      "tree": "b2a136581d6fcea9a2a6c534888319b70e15c2af",
      "parents": [
        "41dec29bcb05eb8ec396f70ce791c6e3e4ce4712"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Fri May 07 22:49:02 2010 +0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 14 17:35:52 2010 -0400"
      },
      "message": "libata: make sff_irq_on() method optional\n\nNow, with the introduction of the sff_set_devctl() method, we can\nuse it in sff_irq_on() method too -- that way its implementations\nin \u0027pata_bf54x\u0027 and \u0027pata_scc\u0027 become virtually identical to\nata_sff_irq_on().  The sff_irq_on() method now becomes quite\nsuperfluous, and the only reason not to remove it completely is\nthe existence of the \u0027pata_octeon_cf\u0027 driver which implements it\nas an empty function. Just make the method optional then, with\nata_sff_irq_on() becoming generic taskfile-bound function, still\nglobal for the \u0027pata_bf54x\u0027 driver to be able to call it from its\nthaw() and postreset() methods.\n\nWhile at it, make the sff_irq_on() method and ata_sff_irq_on() return\n\u0027void\u0027 as the result is always ignored anyway.\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "41dec29bcb05eb8ec396f70ce791c6e3e4ce4712",
      "tree": "e76f63519031769e848dcc6eba63c9207cf4d84e",
      "parents": [
        "55787183ade44c4f826f581a068f52a1a80c6a2e"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Fri May 07 22:47:50 2010 +0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 14 17:35:52 2010 -0400"
      },
      "message": "libata: introduce sff_set_devctl() method\n\nThe set of libata\u0027s taskfile access methods is clearly incomplete as\nit lacks a method to write to the device control register -- which\nforces drivers like \u0027pata_bf54x\u0027 and \u0027pata_scc\u0027 to implement more\n\"high level\" (and more weighty) methods like freeze() and postreset().\n\nSo, introduce the optional sff_set_devctl() method which the drivers\nonly have to implement if the standard iowrite8() can\u0027t be used (just\nlike the existing sff_check_altstatus() method) and make use of it\nin the freeze() and postreset() method implementations (I could also\nhave used it in softreset() method but it also reads other taskfile\nregisters without using tf_read() making that quite pointless);\nthis makes freeze() method implementations in the \u0027pata_bf54x\u0027 and\n\u0027pata_scc\u0027 methods virtually identical to ata_sff_freeze(), so we\ncan get rid of them completely.\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "294440887b32c58d220fb54b73b7a58079b78f20",
      "tree": "83ad03746ca4e7e34fb74cdb2e42b075e085d4da",
      "parents": [
        "4f2c774856708bccecb74c0e6296e9e2c9136ee1"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Thu Apr 22 20:03:35 2010 +0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri May 14 17:08:02 2010 -0400"
      },
      "message": "libata-sff: kill unused ata_bus_reset()\n\n... since I see no callers of it.\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "c710f785329aa751e6cf3b901c1cef167ea0648d",
      "tree": "5ceff8ba66396e6296f171c7b5e344b67a1233a8",
      "parents": [
        "7da23b86e14b77c094b11a9fa5ef5b3758fc9193"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 31 16:41:18 2010 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Apr 06 10:54:38 2010 -0400"
      },
      "message": "libata: don\u0027t whine on spurious IRQ\n\nOn configurations where IRQ line is shared with a different\ncontroller, spurious IRQs may happen continuously.  The message was\nput there primarily for debugging anyway.  Kill it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "332ac7ff77cdc6a183d78ab129545d7b14a1d57c",
      "tree": "fae900efeabe1b0d9ebc170d14170d31f3b8cbf4",
      "parents": [
        "4f1deba435ef75380c1d06fda860c7a15ea16fdf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 23 12:24:08 2010 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Mar 23 09:39:08 2010 -0400"
      },
      "message": "libata-sff: fix spurious IRQ handling\n\nCommit 27943620cbd960f710a385ff4a538e14ed3f1922 introduced spurious\nIRQ handling but it has a race condition where valid completion can be\nlost while trying to clear spurious IRQ leading to occassional command\ntimeouts.\n\nThis patch improves SFF interrupt handler such that\n\n1. Once BMDMA HSM is stopped, the condition is never considered\n   spurious.  As there\u0027s no way to resume stopped BMDMA HSM, if device\n   status doesn\u0027t agree with BMDMA status, the only way out is\n   aborting the command (otherwise, it will just end up timing out).\n\n2. ap-\u003eops-\u003esff_check_status() can be safely called to clear spurious\n   device IRQ as it atomically returns completion status but BMDMA IRQ\n   status can\u0027t be cleared in safe way if command is in flight.  After\n   a spurious IRQ, call ap-\u003eops-\u003esff_irq_clear() only if the\n   respective device is idle and retry completion if\n   sff_check_status() indicates command completion.\n\nPlease note that ata_piix uses bmdma_status for sff_irq_check() and #2\nwon\u0027t weaken spurious IRQ handling even with in-flight command because\nif bmdma_status indicates IRQ pending but device status is not on\nspurious check, the next IRQ handler invocation will abort the command\ndue to #1.\n\nThis fixes bko#15537.\n\n   https://bugzilla.kernel.org/show_bug.cgi?id\u003d15537\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Andrew Benton \u003cb3nton@gmail.com\u003e\nCc: Petr Uzel \u003cpetr.uzel@centrum.cz\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "318ae2edc3b29216abd8a2510f3f80b764f06858",
      "tree": "ce595adde342f57f379d277b25e4dd206988a052",
      "parents": [
        "25cf84cf377c0aae5dbcf937ea89bc7893db5176",
        "3e58974027b04e84f68b964ef368a6cd758e2f84"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 08 16:55:37 2010 +0100"
      },
      "message": "Merge branch \u0027for-next\u0027 into for-linus\n\nConflicts:\n\tDocumentation/filesystems/proc.txt\n\tarch/arm/mach-u300/include/mach/debug-macro.S\n\tdrivers/net/qlge/qlge_ethtool.c\n\tdrivers/net/qlge/qlge_main.c\n\tdrivers/net/typhoon.c\n"
    },
    {
      "commit": "16ea0fc98d53c72cb4e1a9edcb685a87e3a81430",
      "tree": "1a799ce01f8ea2b3a425631e791b946cb94285b1",
      "parents": [
        "cb6643e1c38b6bd5c1594f0a45d8cf6943a6f934"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Tue Feb 23 02:26:06 2010 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Mar 01 14:58:46 2010 -0500"
      },
      "message": "libata: Pass host flags into the pci helper\n\nThis allows parallel scan and the like to be set without having to stop\nusing the existing full helper functions. This patch merely adds the argument\nand fixes up the callers. It doesn\u0027t undo the special cases already in the\ntree or add any new parallel callers.\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "27943620cbd960f710a385ff4a538e14ed3f1922",
      "tree": "fae161f49c10fa488f7a5891085961f284021544",
      "parents": [
        "d88ec2e5c13261cf317b46832a7de216f6d06537"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 19 10:49:19 2010 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Mar 01 14:58:44 2010 -0500"
      },
      "message": "libata: implement spurious irq handling for SFF and apply it to piix\n\nTraditional IDE interface sucks in that it doesn\u0027t have a reliable IRQ\npending bit, so if the controller raises IRQ while the driver is\nexpecting it not to, the IRQ won\u0027t be cleared and eventually the IRQ\nline will be killed by interrupt subsystem.  Some controllers have\nnon-standard mechanism to indicate IRQ pending so that this condition\ncan be detected and worked around.\n\nThis patch adds an optional operation -\u003esff_irq_check() which will be\ncalled for each port from the ata_sff_interrupt() if an unexpected\ninterrupt is received.  If the operation returns %true,\n-\u003esff_check_status() and -\u003esff_irq_clear() will be cleared for the\nport.  Note that this doesn\u0027t mark the interrupt as handled so it\nwon\u0027t prevent IRQ subsystem from killing the IRQ if this mechanism\nfails to clear the spurious IRQ.\n\nThis patch also implements -\u003esff_irq_check() for ata_piix.  Note that\nthis adds slight overhead to shared IRQ operation as IRQs which are\ndestined for other controllers will trigger extra register accesses to\ncheck whether IDE interrupt is pending but this solves rare screaming\nIRQ cases and for some curious reason also helps weird BIOS related\nglitch on Samsung n130 as reported in bko#14314.\n\n  http://bugzilla.kernel.org/show_bug.cgi?id\u003d14314\n\n* piix_base_ops dropped as suggested by Sergei.\n\n* Spurious IRQ detection doesn\u0027t kick in anymore if polling qc is in\n  progress.  This provides less protection but some controllers have\n  possible data corruption issues if the wrong register is accessed\n  while a command is in progress.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Johannes Stezenbach \u003cjs@sig21.net\u003e\nReported-by: Hans Werner \u003chwerner4@gmx.de\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "d88ec2e5c13261cf317b46832a7de216f6d06537",
      "tree": "da307bdad7bfa99c87857ac228896696170bb06f",
      "parents": [
        "88e8201e67aace3d86de9e75122ea525f0e7248e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 19 10:46:32 2010 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Mar 01 14:58:44 2010 -0500"
      },
      "message": "libata: cleanup ata_sff_interrupt()\n\nhost-\u003eports[i] is never NULL if i \u003c host-\u003en_ports and non-NULL return\nfrom ata_qc_from_tag() guarantees that the returned qc is active.\nDrop unnecessary tests.\n\nSuperflous () dropped as suggested by Sergei.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "3ad2f3fbb961429d2aa627465ae4829758bc7e07",
      "tree": "f365c513e8f5b477a61336a600ff54f32b7ad6e1",
      "parents": [
        "1537a3638cbf741d3826c1002026cce487a6bee0"
      ],
      "author": {
        "name": "Daniel Mack",
        "email": "daniel@caiaq.de",
        "time": "Wed Feb 03 08:01:28 2010 +0800"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Feb 09 11:13:56 2010 +0100"
      },
      "message": "tree-wide: Assorted spelling fixes\n\nIn particular, several occurances of funny versions of \u0027success\u0027,\n\u0027unknown\u0027, \u0027therefore\u0027, \u0027acknowledge\u0027, \u0027argument\u0027, \u0027achieve\u0027, \u0027address\u0027,\n\u0027beginning\u0027, \u0027desirable\u0027, \u0027separate\u0027 and \u0027necessary\u0027 are fixed.\n\nSigned-off-by: Daniel Mack \u003cdaniel@caiaq.de\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Junio C Hamano \u003cgitster@pobox.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "2d68b7fe55d9e19a8a868224ed0dfd6526568521",
      "tree": "f18068b57359ddc0be3d5fba6f8eabc097efd1af",
      "parents": [
        "cedc9bf906dae044443d403371c887affdb44168"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Thu Feb 04 01:04:50 2010 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Feb 04 01:04:50 2010 -0500"
      },
      "message": "[libata] Call flush_dcache_page after PIO data transfers in libata-sff.c\n\nflush_dcache_page() must be called after (!ATA_TFLAG_WRITE) the\ndata copying to avoid D-cache aliasing with user space or I-D cache\ncoherency issues (when reading data from an ATA device using PIO,\nthe kernel dirties the D-cache but there is no flush_dcache_page()\nrequired on Harvard architectures).\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "9a8fd68b15e7b047678a651b7f7e2f3dcd19d20d",
      "tree": "2fcd55dc63893d0c2a0a2f27878b2528596c4d43",
      "parents": [
        "b2dec48ccaad004fc706352f82725d43369d9bd7"
      ],
      "author": {
        "name": "Robert Hancock",
        "email": "hancockrwd@gmail.com",
        "time": "Tue Dec 08 20:48:10 2009 -0600"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Dec 17 01:08:29 2009 -0500"
      },
      "message": "libata: fix reporting of drained bytes when clearing DRQ\n\nWhen we drain data from a device to clear DRQ during error recovery,\nthe number of bytes reported as drained is too low by a factor of 2\nbecause the count is actually reporting the number of words drained,\nnot bytes. Fix this.\n\nSigned-off-by: Robert Hancock \u003chancockrwd@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "4ef58d4e2ad1fa2a3e5bbf41af2284671fca8cf8",
      "tree": "856ba96302a36014736747e8464f80eeb827bbdd",
      "parents": [
        "f6c4c8195b5e7878823caa1181be404d9e86d369",
        "d014d043869cdc591f3a33243d3481fa4479c2d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 09 19:43:33 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (42 commits)\n  tree-wide: fix misspelling of \"definition\" in comments\n  reiserfs: fix misspelling of \"journaled\"\n  doc: Fix a typo in slub.txt.\n  inotify: remove superfluous return code check\n  hdlc: spelling fix in find_pvc() comment\n  doc: fix regulator docs cut-and-pasteism\n  mtd: Fix comment in Kconfig\n  doc: Fix IRQ chip docs\n  tree-wide: fix assorted typos all over the place\n  drivers/ata/libata-sff.c: comment spelling fixes\n  fix typos/grammos in Documentation/edac.txt\n  sysctl: add missing comments\n  fs/debugfs/inode.c: fix comment typos\n  sgivwfb: Make use of ARRAY_SIZE.\n  sky2: fix sky2_link_down copy/paste comment error\n  tree-wide: fix typos \"couter\" -\u003e \"counter\"\n  tree-wide: fix typos \"offest\" -\u003e \"offset\"\n  fix kerneldoc for set_irq_msi()\n  spidev: fix double \"of of\" in comment\n  comment typo fix: sybsystem -\u003e subsystem\n  ...\n"
    },
    {
      "commit": "972b94ffb90ea6d20c589d9a47215df103388ddd",
      "tree": "6e95297c4a653c0cfbd9d910f875a39450cc596f",
      "parents": [
        "e281d75e21ca4a876044d1dd5fa2f4336c7c43d0"
      ],
      "author": {
        "name": "Krzysztof Halasa",
        "email": "khc@pm.waw.pl",
        "time": "Wed Nov 11 00:55:27 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:54 2009 +0100"
      },
      "message": "drivers/ata/libata-sff.c: comment spelling fixes\n\nComment spelling fixes and whitespace adjustment.\n\nSigned-off-by: Krzysztof Halasa \u003ckhc@pm.waw.pl\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "294264a94215f5a16a92e8e6b05252ed22fed249",
      "tree": "77dc52ca9928e5d1321b858d592e4b53b7e986e2",
      "parents": [
        "18f0f97850059303ed73b1f02084f55ca330a80c"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Wed Dec 02 11:36:28 2009 +1100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Dec 03 02:46:36 2009 -0500"
      },
      "message": "libata/sff: Use ops-\u003ebmdma_stop instead of ata_bmdma_stop()\n\nIn libata-sff, ata_sff_post_internal_cmd() directly calls ata_bmdma_stop()\ninstead of ap-\u003eops-\u003ebmdma_stop(). This can be a problem for controllers\nthat use their own bmdma_stop for which the generic sff one isn\u0027t suitable\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "2102d7497393e982bf38ffe8f5fd3d487104880d",
      "tree": "9693052c22db544384d433e95052d50779377c4a",
      "parents": [
        "4da646b7b52552f3b43eae27ffa5aa2c200f6db6"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Sun Feb 15 23:30:38 2009 +0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Jun 10 07:50:16 2009 -0400"
      },
      "message": "libata-sff: avoid byte swapping in ata_sff_data_xfer()\n\nHandling of the trailing byte in ata_sff_data_xfer() is suboptimal bacause:\n\n- it always initializes the padding buffer to 0 which is not really needed in\n  both the read and write cases;\n\n- it has to use memcpy() to transfer a single byte from/to the padding buffer;\n\n- it uses io{read|write}16() accessors which swap bytes on the big endian CPUs\n  and so have to additionally convert the data from/to the little endian format\n  instead of using io{read|write}16_rep() accessors which are not supposed to\n  change the byte ordering.\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "e3cf95dd6d352954b663d2934110d6e30af2406d",
      "tree": "f3245e91c30e0c1e12a169af637373a8b5ff670a",
      "parents": [
        "62afe5d744047df8ff15a369f4c1ebad71c937d4"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Apr 09 17:31:17 2009 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 16 15:28:23 2009 -0400"
      },
      "message": "ata: Report 16/32bit PIO as best we can\n\nThe legacy old IDE ioctl API for this is a bit primitive so we try\nand map stuff sensibly onto it.\n\n- Set PIO over DMA devices to report 32bit\n- Add ability to change the PIO32 settings if the controller permits it\n- Add that functionality into the sff drivers\n- Add that functionality into the VLB legacy driver\n- Turn on the 32bit PIO on the ninja32 and add support there\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "c96f1732e25362d10ee7bcac1df8412a2e6b7d23",
      "tree": "66e24eddb174d6751579ec5952f72cbbac0fb038",
      "parents": [
        "3d47aa8e7e7b2aa09256590388aa8dddc79280f9"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Tue Mar 24 10:23:46 2009 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Mar 24 22:52:39 2009 -0400"
      },
      "message": "[libata] Improve timeout handling\n\nOn a timeout call a device specific handler early in the recovery so that\nwe can complete and process successful commands which timed out due to IRQ\nloss or the like rather more elegantly.\n\n[Revised to exclude the timeout handling on a few devices that inherit from\n SFF but are not SFF enough to use the default timeout handler]\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "3d47aa8e7e7b2aa09256590388aa8dddc79280f9",
      "tree": "82f4c85842e5e02489eb0533609dabb865e55198",
      "parents": [
        "c0f2ee34a5a0b79fd98d965ad8ae765d4639bfa5"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Tue Mar 24 10:23:19 2009 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Mar 24 22:48:26 2009 -0400"
      },
      "message": "[libata] Drain data on errors\n\nIf the device is signalling that there is data to drain after an error we\nshould read the bytes out and throw them away. Without this some devices\nand controllers get wedged and don\u0027t recover.\n\nBased on earlier work by Mark Lord\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "e3e4385f6181f434c0d786998ad1d0eef4e21c9b",
      "tree": "b5195b312ca7acebe99d0125e60fcc4eebb7e458",
      "parents": [
        "9d51af7bd2f1d730cb6eeeb9ff837e3441ad4e07"
      ],
      "author": {
        "name": "Stuart MENEFY",
        "email": "stuart.menefy@st.com",
        "time": "Tue Mar 10 11:38:13 2009 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Mar 13 14:55:58 2009 -0400"
      },
      "message": "libata: Keep shadow last_ctl up to date during resets\n\nlibata keeps a shadow copy of the ATA CTL register (which is write only),\nand only writes to the hardware when the required value doesn\u0027t match\nthe shadow. However this copy wasn\u0027t being maintained when performing\nreset functions. This could cause problems for the first operation after\na reset when the correct value might not be written to the CTL register.\n\nThis problem was observed when hotplugging a drive: the identify command\nwas being issued with interrupts enabled, when they should have been\ndisabled.\n\nSigned-off-by: Stuart Menefy \u003cstuart.menefy@st.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "d1b3525b4126d7acad0493b62642b80b71442661",
      "tree": "e8b55a52e5a57f92b997f84365fa9a72ded106c8",
      "parents": [
        "d2f8d7ee1a9b4650b4e43325b321801264f7c37a"
      ],
      "author": {
        "name": "Sergei Shtylyov",
        "email": "sshtylyov@ru.mvista.com",
        "time": "Sun Feb 15 23:24:24 2009 +0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Feb 16 18:55:56 2009 -0500"
      },
      "message": "libata-sff: fix 32-bit PIO ATAPI regression\n\nCommit 871af1210f13966ab911ed2166e4ab2ce775b99d (libata: Add 32bit\nPIO support) has caused all kinds of errors on the ATAPI devices, so\nit has been empirically proven that one shouldn\u0027t try to read/write\nan extra data word when a device is not expecting it already. \"Don\u0027t\ndo it then\"; however, still use a chance to do 32-bit read/write one\nlast time when there are exactly 3 trailing bytes.\n\nOh, and stop pointlessly swapping the bytes to and fro on big-endian\nmachines by using io*_rep() accessors which shouldn\u0027t byte-swap.\n\nThis patch should fix the kernel.org bug #12609.\n\nSigned-off-by: Sergei Shtylyov \u003csshtylyov@ru.mvista.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "b919930c34e99a48d6b13a5ec9db8c059ec44d72",
      "tree": "09c5b53cac420a4fa2509ca970f8c80b7c9fbb80",
      "parents": [
        "80ee6f54f51ffc623843dd8955248d4fab064b99"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Jan 25 10:26:00 2009 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Jan 26 06:36:26 2009 -0500"
      },
      "message": "libata: set NODEV_HINT for 0x7f status\n\nAsus Pundit-R with atiixp controller has the second port missing and,\nvery unusually, its status is stuck at 0x7f and all others at 0.  This\nmeanst that it fails TF access test but gets detected as a disk due to\nclassification code check and then evades polling IDENTIFY presence\ndetection thanks to the missing BSY in the status value causing\nexcessive delays during boot.\n\nThis patch makes libata-sff HSM set NODEV_HINT if the status is 0x7f\nto make polling IDENTIFY presence detection work for these machines.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "80ee6f54f51ffc623843dd8955248d4fab064b99",
      "tree": "b2877a2e9b8ad8177f5c740ea6aea94888e421db",
      "parents": [
        "f3b8436ad9a8ad36b3c9fa1fe030c7f38e5d3d0b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 23 14:12:59 2009 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Jan 26 06:36:16 2009 -0500"
      },
      "message": "libata-sff: fix incorrect EH message\n\nThe EH message for NODEV_HINT path was describing the opposite\ncondition.  Fix it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "a0f79f7ad3e52b908786462cf5446ebe20fe14fa",
      "tree": "f2a62710f5ed0c42f56e3efa6667821ec216ce8e",
      "parents": [
        "37a76bd4f1b716949fc38a6842e89f0ccb8384d0"
      ],
      "author": {
        "name": "Christian Borntraeger",
        "email": "borntraeger@de.ibm.com",
        "time": "Tue Jan 13 10:38:36 2009 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue Jan 13 10:34:59 2009 -0500"
      },
      "message": "ata: fix wrong WARN_ON_ONCE\n\nThis patch fixes a wrong WARN_ON that was triggered by 32bit PIO support:\nWARNING: at drivers/ata/libata-sff.c:1017 ata_sff_hsm_move+0x45e/0x750()\n\n__atapi_pio_bytes simply doesnt know enough to decide if there is a bug.\n\nSigned-off-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "efcb3cf7f00c3c424db012380a8a974c2676a3c8",
      "tree": "eaff0a3d6fed469629b81e8781ac80ca7c75eec1",
      "parents": [
        "43529c97122f2c851126447963eedcb8cba74fbe"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 09 19:19:14 2009 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 09 11:54:22 2009 -0800"
      },
      "message": "libata: use WARN_ON_ONCE on hot paths\n\nConvert WARN_ON() on command issue/completion paths to WARN_ON_ONCE()\nso that libata doesn\u0027t spam the machine even when one of those\nconditions triggers repeatedly.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0fe40ff891faa940e539bd5a92c4a5dd9ae49b0b",
      "tree": "1741ce3f2f9ef275d129776eebdf04ecd6bccb4a",
      "parents": [
        "871af1210f13966ab911ed2166e4ab2ce775b99d"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Jan 05 14:16:13 2009 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Jan 08 16:40:25 2009 -0500"
      },
      "message": "libata: clean up the SFF code for coding style\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "871af1210f13966ab911ed2166e4ab2ce775b99d",
      "tree": "f17f0016f6e966d54a379a3de6e6bbde3b9359fe",
      "parents": [
        "e427fe042cf90c0652eed9a85e57a8fd8af89890"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Mon Jan 05 14:16:39 2009 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Jan 08 16:34:27 2009 -0500"
      },
      "message": "libata: Add 32bit PIO support\n\nThis matters for some controllers and in one or two cases almost doubles\nPIO performance. Add a bmdma32 operations set we can inherit and activate\nit for some controllers\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "6a6b97d360702b98c02c7fca4c4e088dcf3a2985",
      "tree": "6b0d6a504c11bbea7096706065c31bd12e7d7e78",
      "parents": [
        "58e20d8d344b0ee083febb18c2b021d2427e56ca"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Nov 13 10:04:46 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Nov 14 18:51:57 2008 -0500"
      },
      "message": "libata: improve phantom device detection\n\nCurrently libata uses four methods to detect device presence.\n\n1. PHY status if available.\n2. TF register R/W test (only promotes presence, never demotes)\n3. device signature after reset\n4. IDENTIFY failure detection in SFF state machine\n\nCombination of the above works well in most cases but recently there\nhave been a few reports where a phantom device causes unnecessary\ndelay during probe.  In both cases, PHY status wasn\u0027t available.  In\none case, it passed #2 and #3 and failed IDENTIFY with ATA_ERR which\ndidn\u0027t qualify as #4.  The other failed #2 but as it passed #3 and #4,\nit still caused failure.\n\nIn both cases, phantom device reported diagnostic failure, so these\ncases can be safely worked around by considering any !ATA_DRQ IDENTIFY\nfailure as NODEV_HINT if diagnostic failure is set.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "570106df6bdb4907ad7f70793079c762f34d561a",
      "tree": "7f81d9eb2cf24a9882c59706d7e1e4c4107e60c9",
      "parents": [
        "f667fdbbbea8bcce6cf9f7acb51b7cb4c264cc61"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Oct 20 13:10:21 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Oct 22 20:40:15 2008 -0400"
      },
      "message": "libata-sff: fix ata_sff_post_internal_cmd()\n\nata_sff_post_internal_cmd() needs to grab port lock before calling\nata_bmdma_stop() and also need to clear hsm_task_state.  Fix it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "9c2676b61a5a4b6d99e65fb2f438fb3914302eda",
      "tree": "b52a7d20fbebee27edefac35ff5139c0daef0df2",
      "parents": [
        "2fd673ecf0378ddeeeb87b3605e50212e0c0ddc6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 29 16:27:43 2008 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Sep 08 12:15:38 2008 -0400"
      },
      "message": "libata-sff: kill spurious WARN_ON() in ata_hsm_move()\n\nOn HSM_ST_ERR, ata_hsm_move() triggers WARN_ON() if AC_ERR_DEV or\nAC_ERR_HSM is not set.  PHY events may trigger HSM_ST_ERR with other\nerror codes and, with or without it, there just isn\u0027t much reason to\ndo WARN_ON() on it.  Even if error code is not set there, core EH\nlogic won\u0027t have any problem dealing with the error condition.\n\nOSDL bz#11065 reports this problem.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "341c2c958ec7bdd9f54733a8b0b432fe76842a82",
      "tree": "1af1983fe82ad032de6142229fe6c70f04466918",
      "parents": [
        "bce7f793daec3e65ec5c5705d2457b81fe7b5725"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue May 20 02:17:51 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Jul 14 15:59:32 2008 -0400"
      },
      "message": "libata: consistently use msecs for time durations\n\nlibata has been using mix of jiffies and msecs for time druations.\nThis is getting confusing.  As writing sub HZ values in jiffies is\nPITA and msecs_to_jiffies() can\u0027t be used as initializer, unify unit\nfor all time durations to msecs.  So, durations are in msecs and\ndeadlines are in jiffies.  ata_deadline() is added to compute deadline\nfrom a start time and duration in msecs.\n\nWhile at it, drop now superflous _msec suffix from arguments and\nrename @timeout to @deadline if it represents a fixed point in time\nrather than duration.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "a836d3e882161c562b3ddacee5d8842a033c5b2c",
      "tree": "8bcec0610b77bf4b7772f97b54af6aa80dca0a81",
      "parents": [
        "ea0c62f7cf70f13a67830471b613337bd0c9a62e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Jun 28 01:39:43 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Jul 04 09:06:02 2008 -0400"
      },
      "message": "libata-sff: improve HSM violation reporting\n\nImprove SFF HSM violation reporting such that each HSM violation can\nbe distinguished using ehi_desc.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "6311c90a9ea16b4ab93ed48f1a9022647f6b3c43",
      "tree": "b3b76eb4c6087f3caf7b55b2d216ce5716a36398",
      "parents": [
        "53c8ba95402be65d412a806cda3430f0e72cd107"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Thu Jun 05 14:44:39 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 05 08:36:37 2008 -0700"
      },
      "message": "libata: fix G5 SATA broken on -rc5\n\nFix G5 SATA irq 18: nobody cared, reported on -rc5 by Olaf Hering:\nfixlet to a57c1bade5a0ee5cd8b74502db9cbebb7f5780b2 libata-sff:\nFix oops reported in kerneloops.org for pnp devices with no ctl\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nTested-by: Olaf Hering \u003colaf@aepfle.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a57c1bade5a0ee5cd8b74502db9cbebb7f5780b2",
      "tree": "7919f7e4d85d512442698819db2ef98ed9121574",
      "parents": [
        "4f0ebe3cc57f18ba26317b56b80b108c2848b1de"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu May 29 22:10:58 2008 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Wed Jun 04 06:40:41 2008 -0400"
      },
      "message": "libata-sff: Fix oops reported in kerneloops.org for pnp devices with no ctl\n\n- Make ata_sff_altstatus private so nobody uses it by mistake\n- Drop the 400nS delay from it\n\nAdd\n\nata_sff_irq_status\t-\tencapsulates the IRQ check logic\n\nThis function keeps the existing behaviour for altstatus using devices. I\nactually suspect the logic was wrong before the changes but -rc isn\u0027t the\ntime to play with that\n\nata_sff_sync\t\t-\tensure writes hit the device\n\nReally we want an io* operation for \u0027is posted\u0027 eg ioisposted(ioaddr) so\nthat we can fix the nasty delay this causes on most systems.\n\n- ata_sff_pause\t\t-\t400nS delay\n\nEnsure the command hit the device and delay 400nS\n\n- ata_sff_dma_pause\n\nEnsure the I/O hit the device and enforce an HDMA1:0 transition delay.\nRequires altstatus register exists, BUG if not so we don\u0027t risk\ncorruption in MWDMA modes. (UDMA the checksum will save your backside in\ntheory)\n\nThe only other complication then is devices with their own handlers.\nrb532 can use dma_pause but scc needs to access its own altstatus\nregister for internal errata workarounds so directly call the drivers own\naltstatus function.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "78ab88f04f44bed566d51dce0c7cbfeff6449a06",
      "tree": "f60d9ebf37fca7af191cc16665c9025bc5cf56f4",
      "parents": [
        "a15306365a16380f3bafee9e181ba01231d4acd7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu May 01 23:41:41 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Tue May 06 11:32:02 2008 -0400"
      },
      "message": "libata: improve post-reset device ready test\n\nSome controllers (jmb and inic162x) use 0x77 and 0x7f to indicate that\nthe device isn\u0027t ready yet.  It looks like they use 0xff if device\npresence is detected but connection isn\u0027t established.  0x77 or 0x7f\nafter connection is established and use the value from signature FIS\nafter receiving it.\n\nThis patch implements ata_check_ready(), which takes TF status value\nand determines whether the port is ready or not considering the above\nand other conditions, and use it in @check_ready() functions.  This is\nsafe as both 0x77 and 0x7f aren\u0027t valid ready status value even though\nthey have BSY bit cleared.\n\nThis fixes hot plug detection failures which can be triggered with\ncertain drives if they aren\u0027t already spun up when the data connector\nis hot plugged.\n\nTested on sil, sil24, ahci (jmb/ich), piix and inic162x combined with\neight drives from all major vendors.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "411cb3869afd91ed40e8f12df64cd9e315356305",
      "tree": "dde48c3147d784d6ecfee093a1e6575291d6a177",
      "parents": [
        "458622fcdc5b316de8d74efd7e610803f0308c14"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Apr 23 20:48:36 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Fri Apr 25 00:45:09 2008 -0400"
      },
      "message": "libata: make WARN_ON conditions in ata_sff_hsm_move() more strict\n\nWARN_ON()\u0027s in ata_hsm_move() was too liberal and got triggerred when\nit shouldn\u0027t (e.g. hotplug events at the right moment).  As the HSM\nonly deals with device errors and state machine violations, make it\ncheck only against them.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Mark Lord \u003climl@rtr.ca\u003e\nCc: Albert Lee \u003calbertcc@tw.ibm.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "45db2f6c95eee7c6622ea1b3edb9abafba58e3ab",
      "tree": "1c57efcf3e118b177dd7c9c1070b8af70694aff3",
      "parents": [
        "2a0c15ca39f5881aa1b472ca856bb7a2e584ece7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Apr 08 01:46:56 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:25 2008 -0400"
      },
      "message": "libata: move link onlineness check out of softreset methods\n\nCurrently, SATA softresets should do link onlineness check before\nactually performing SRST protocol but it doesn\u0027t really belong to\nsoftreset.\n\nThis patch moves onlineness check in softreset to ata_eh_reset() and\nata_eh_followup_srst_needed() to clean up code and help future sata_mv\nchanges which need clear separation between SCR and TF accesses.\n\nsata_fsl is peculiar in that its softreset really isn\u0027t softreset but\ncombination of hardreset and softreset.  This patch adds dummy private\n-\u003eprereset to keep the current behavior but the driver really should\nimplement separate hard and soft resets and return -EAGAIN from\nhardreset if it should be follwed by softreset.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "4c9bf4e799ce06a7378f1196587084802a414c03",
      "tree": "70a7d3741e756b975468850537f222349143a0be",
      "parents": [
        "79f97dadfe9b4b561634d202225ba2fa910dc225"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:20 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:23 2008 -0400"
      },
      "message": "libata: replace tf_read with qc_fill_rtf for non-SFF drivers\n\nNow that all SFF stuff is separated out of core layer, core layer\ndoesn\u0027t call ops-\u003etf_read directly.  It gets called only via\nops-\u003eqc_fill_rtf() for non-SFF drivers.  This patch directly\nimplements private ops-\u003eqc_fill_rtf() for non-SFF controllers and kill\nops-\u003etf_read().\n\nThis is much cleaner for non-SFF controllers as some of them have to\ncache SFF register values in private data structure and report the\ncached values via ops-\u003etf_read().  Also, ops-\u003etf_read() gets nasty for\ncontrollers which don\u0027t have clear notion of TF registers when\noperation is not in progress.\n\nAs this change makes default ops-\u003eqc_fill_rtf unnecessary, move\nata_sff_qc_fill_rtf() form ata_base_port_ops to ata_sff_port_ops where\nit belongs.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "22183bf569c8600ff414ac25f23134044e0ef453",
      "tree": "1dea79cdbe439637477e1c4214b600b6823cb866",
      "parents": [
        "305d2a1ab137d11d573319c315748a87060fe82d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:20 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:23 2008 -0400"
      },
      "message": "libata: add qc_fill_rtf port operation\n\nOn command completion, ata_qc_complete() directly called ops-\u003etf_read\nto fill qc-\u003eresult_tf.  This patch adds ops-\u003eqc_fill_rtf to replace\nhardcoded ops-\u003etf_read usage.\n\nata_sff_qc_fill_rtf() which uses ops-\u003etf_read to fill result_tf is\nimplemented and set in ata_base_port_ops and other ops tables which\ndon\u0027t inherit from ata_base_port_ops, so this patch doesn\u0027t introduce\nany behavior change.\n\nops-\u003eqc_fill_rtf() is similar to ops-\u003esff_tf_read() but can only be\ncalled when a command finishes.  As some non-SFF controllers don\u0027t\nhave TF registers defined unless they\u0027re associated with in-flight\ncommands, this limited operation makes life easier for those drivers\nand help lifting SFF assumptions from libata core layer.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "305d2a1ab137d11d573319c315748a87060fe82d",
      "tree": "8dcf81b1742db21c6a745688de96a18944c83617",
      "parents": [
        "5958e3025fd9d97429163e074d9cfa3848f51f28"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:20 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:23 2008 -0400"
      },
      "message": "libata: unify mechanism to request follow-up SRST\n\nPreviously, there were two ways to trigger follow-up SRST from\nhardreset method - returning -EAGAIN and leaving all device classes\nunmodified.  Drivers never used the latter mechanism and the only use\ncase for the former was when hardreset couldn\u0027t classify.\n\nDrop the latter mechanism and let -EAGAIN mean \"perform follow-up SRST\nif classification is required\".  This change removes unnecessary\nfollow-up SRSTs and simplifies reset implementations.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "57c9efdfb3cee5d4564fcb5f70555e2edb1bc52a",
      "tree": "c2289500f093736853a94d2d9577036658676498",
      "parents": [
        "9dadd45b24145d6aee2fabb28d7aef972301892b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:19 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:23 2008 -0400"
      },
      "message": "libata: implement and use sata_std_hardreset()\n\nImplement sata_std_hardreset(), which simply wraps around\nsata_link_hardreset().  sata_std_hardreset() becomes new standard\nhardreset method for sata_port_ops and sata_sff_hardreset() moves from\nata_base_port_ops to ata_sff_port_ops, which is where it really\nbelongs.\n\nata_is_builtin_hardreset() is added so that both\nata_std_error_handler() and ata_sff_error_handler() skip both builtin\nhardresets if SCR isn\u0027t accessible.\n\npiix_sidpr_hardreset() in ata_piix.c is identical to\nsata_std_hardreset() in functionality and got replaced with the\nstandard function.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "9dadd45b24145d6aee2fabb28d7aef972301892b",
      "tree": "c97c323e2edd400bc94eaceddf20f84e9a6da005",
      "parents": [
        "a89611e8489ac24f371c9fd6fef6605b170b16ba"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:19 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:22 2008 -0400"
      },
      "message": "libata: move generic hardreset code from sata_sff_hardreset() to sata_link_hardreset()\n\nsata_sff_hardreset() contains link readiness wait logic which isn\u0027t\nSFF specific.  Move that part into sata_link_hardreset(), which now\ntakes two more parameters - @online and @check_ready.  Both are\noptional.  The former is out parameter for link onlineness after\nreset.  The latter is used to wait for link readiness after hardreset.\n\nUsers of sata_link_hardreset() is updated to use new funtionality and\nahci_hardreset() is updated to use sata_link_hardreset() instead of\nsata_sff_hardreset().  This doesn\u0027t really cause any behavior change.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "aa2731ad9ad80ac3fca48bd1c4cf0eceede4810e",
      "tree": "db6d3327017b9b84355aba49a5ccd5c322d3f248",
      "parents": [
        "705e76beb90b97421e1f61e857c4246799781bb5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:19 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:22 2008 -0400"
      },
      "message": "libata: separate out ata_wait_ready() and implement ata_wait_after_reset()\n\nFactor out waiting logic (which is common to all ATA controllers) from\nata_sff_wait_ready() into ata_wait_ready().  ata_wait_ready() takes\n@check_ready function pointer and uses it to poll for readiness.  This\nallows non-SFF controllers to use ata_wait_ready() to wait for link\nreadiness.\n\nThis patch also implements ata_wait_after_reset() - generic version of\nata_sff_wait_after_reset() - using ata_wait_ready().\n\nata_sff_wait_ready() is reimplemented using ata_wait_ready() and\nata_sff_check_ready().  Functionality remains the same.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "705e76beb90b97421e1f61e857c4246799781bb5",
      "tree": "e571ad9229d469cd73d1388c76823922400823d5",
      "parents": [
        "203c75b8245c5386044721d9c5eda5c6b71b3d14"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:19 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:22 2008 -0400"
      },
      "message": "libata: restructure SFF post-reset readiness waits\n\nPreviously, post-softreset readiness is waited as follows.\n\n1. ata_sff_wait_after_reset() waits for 150ms and then for\n   ATA_TMOUT_FF_WAIT if status is 0xff and other conditions meet.\n\n2. ata_bus_softreset() finishes with -ENODEV if status is still 0xff.\n   If not, continue to #3.\n\n3. ata_bus_post_reset() waits readiness of dev0 and/or dev1 depending\n   on devmask using ata_sff_wait_ready().\n\nAnd for post-hardreset readiness,\n\n1. ata_sff_wait_after_reset() waits for 150ms and then for\n   ATA_TMOUT_FF_WAIT if status is 0xff and other conditions meet.\n\n2. sata_sff_hardreset waits for device readiness using\n   ata_sff_wait_ready().\n\nThis patch merges and unifies post-reset readiness waits into\nata_sff_wait_ready() and ata_sff_wait_after_reset().\n\nATA_TMOUT_FF_WAIT handling is merged into ata_sff_wait_ready().  If TF\nstatus is 0xff, link status is unknown and the port is SATA, it will\ncontinue polling till ATA_TMOUT_FF_WAIT.\n\nata_sff_wait_after_reset() is updated to perform the following steps.\n\n1. waits for 150ms.\n\n2. waits for dev0 readiness using ata_sff_wait_ready().  Note that\n   this is done regardless of devmask, as ata_sff_wait_ready() handles\n   0xff status correctly, this preserves the original behavior except\n   that it may wait longer after softreset if link is online but\n   status is 0xff.  This behavior change is very unlikely to cause any\n   actual difference and is intended.  It brings softreset behavior to\n   that of hardreset.\n\n3. waits for dev1 readiness just the same way ata_bus_post_reset() did.\n\nNow both soft and hard resets call ata_sff_wait_after_reset() after\nreset to wait for readiness after resets.  As\nata_sff_wait_after_reset() contains calls to -\u003esff_dev_select(),\nexplicit call near the end of sata_sff_hardreset() is removed.\n\nThis change makes reset implementation simpler and more consistent.\n\nWhile at it, make the magical 150ms wait post-reset wait duration a\nconstant and ata_sff_wait_ready() and ata_sff_wait_after_reset() take\n@link instead of @ap.  This is to make them consistent with other\nreset helpers and ease core changes.\n\npata_scc is updated accordingly.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "203c75b8245c5386044721d9c5eda5c6b71b3d14",
      "tree": "5a8c446c483a77dc86aca145b0b38c4a2b410dfa",
      "parents": [
        "0aa1113d544226bc2c4a20d6ac1d71170512a361"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:18 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:22 2008 -0400"
      },
      "message": "libata: separate out ata_std_postreset() from ata_sff_postreset()\n\nSeparate out generic ATA portion from ata_sff_postreset() into\nata_std_postreset() and implement ata_sff_postreset() using the std\nversion.\n\nata_base_port_ops now has ata_std_postreset() for its postreset and\nata_sff_port_ops overrides it to ata_sff_postreset().\n\nThis change affects pdc_adma, ahci, sata_fsl and sata_sil24.  pdc_adma\nnow specifies postreset to ata_sff_postreset() explicitly.  sata_fsl\nand sata_sil24 now use ata_std_postreset() which makes no difference\nto them.  ahci now calls ata_std_postreset() from its own postreset\nmethod, which causes no behavior difference.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "0aa1113d544226bc2c4a20d6ac1d71170512a361",
      "tree": "503b33b0805424d312abddd3535c941bb85c03bc",
      "parents": [
        "288623a06c652239d2f57d271af12bb024cf7218"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:18 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:22 2008 -0400"
      },
      "message": "libata: separate out ata_std_prereset() from ata_sff_prereset()\n\nSeparate out generic ATA portion from ata_sff_prereset() into\nata_std_prereset() and implement ata_sff_prereset() using the std\nversion.  Waiting for device readiness is the only SFF specific part.\n\nata_base_port_ops now has ata_std_prereset() for its prereset and\nata_sff_port_ops overrides it to ata_sff_prereset().  This change can\naffect pdc_adma, ahci, sata_fsl and sata_sil24.  pdc_adma implements\nits own prereset using ata_sff_prereset() and the rest has hardreset\nand thus are unaffected by this change.\n\nThis change reflects real world situation.  There is no generic way to\nwait for device readiness for non-SFF controllers and some of them\ndon\u0027t have any mechanism for that.  Non-sff drivers which don\u0027t have\nhardreset should wrap ata_std_prereset() and wait for device readiness\nitself but there\u0027s no such driver now and isn\u0027t likely to be popular\nin the future either.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "288623a06c652239d2f57d271af12bb024cf7218",
      "tree": "e693ca8a46cbedc522cb6f5ca3395d3dc692cfb3",
      "parents": [
        "5682ed33aae05d10a25c95633ef9d9c062825888"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:17 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:22 2008 -0400"
      },
      "message": "libata: clean up port_ops-\u003esff_irq_clear()\n\n-\u003esff_irq_clear() is called only from SFF interrupt handler, so there\nis no reason to initialize it for non-SFF controllers.  Also,\nata_sff_irq_clear() can handle both BMDMA and non-BMDMA SFF\ncontrollers.\n\nThis patch kills ata_noop_irq_clear() and removes it from base\nport_ops and sets -\u003esff_irq_clear to ata_sff_irq_clear() in sff\nport_ops instead of bmdma port_ops.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "5682ed33aae05d10a25c95633ef9d9c062825888",
      "tree": "1632d4d70f4fd2dc25596a5cde1183f70f162ac3",
      "parents": [
        "9363c3825ea9ad76561eb48a395349dd29211ed6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:16 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:22 2008 -0400"
      },
      "message": "libata: rename SFF port ops\n\nAdd sff_ prefix to SFF specific port ops.\n\nThis rename is in preparation of separating SFF support out of libata\ncore layer.  This patch strictly renames ops and doesn\u0027t introduce any\nbehavior difference.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "9363c3825ea9ad76561eb48a395349dd29211ed6",
      "tree": "abe89a0f7c82b805d84b1a211c97b317f6628d5f",
      "parents": [
        "b67a1064cb1c1d3b43e01e8b43a6a8dcdefed733"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Apr 07 22:47:16 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:21 2008 -0400"
      },
      "message": "libata: rename SFF functions\n\nSFF functions have confusing names.  Some have sff prefix, some have\nbmdma, some std, some pci and some none.  Unify the naming by...\n\n* SFF functions which are common to both BMDMA and non-BMDMA are\n  prefixed with ata_sff_.\n\n* SFF functions which are specific to BMDMA are prefixed with\n  ata_bmdma_.\n\n* SFF functions which are specific to PCI but apply to both BMDMA and\n  non-BMDMA are prefixed with ata_pci_sff_.\n\n* SFF functions which are specific to PCI and BMDMA are prefixed with\n  ata_pci_bmdma_.\n\n* Drop generic prefixes from LLD specific routines.  For example,\n  bfin_std_dev_select -\u003e bfin_dev_select.\n\nThe following renames are noteworthy.\n\n  ata_qc_issue_prot() -\u003e ata_sff_qc_issue()\n  ata_pci_default_filter() -\u003e ata_bmdma_mode_filter()\n  ata_dev_try_classify() -\u003e ata_sff_dev_classify()\n\nThis rename is in preparation of separating SFF support out of libata\ncore layer.  This patch strictly renames functions and doesn\u0027t\nintroduce any behavior difference.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "ed82f96425e744dffe62115e46f08eb785c0b2f3",
      "tree": "a4c61c016c6bd340d941ad141c14a8f7d837ab7f",
      "parents": [
        "d8b81b8008a0f131e01bb6eb5c681c900c327e2b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Mar 25 21:34:39 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:20 2008 -0400"
      },
      "message": "libata/pdc_adma: make SFF EH handle non-bmdma SFF drivers and standardize pdc_adma ops\n\npdc_adma has interface similar to SFF but has its own DMA interface.\nIt currently implements noop bmdma ops to avoid crashing\nata_bmdma_error_handler() which BTW actually is EH for SFF drivers.\n\nThis patch makes ata_bmdma_error_handler() dereference bmdma ops iff\nbmdma_addr is initialized as done in ata_bmdma_post_internal_cmd.\nThis change allows pdc_adma to standardize ops and use SFF\nerror_handler and post_internal_cmd.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Mark Lord \u003climl@rtr.ca\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6fd36390117f7844ad147377878ddb52088f583a",
      "tree": "c25d9a8357ff173ce46eb057cc50370b87b9cca8",
      "parents": [
        "3d5a3d67a578d95ac3a11a862d16a054e2d4d9cd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Mar 25 22:16:44 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:18 2008 -0400"
      },
      "message": "libata: kill ata_chk_status()\n\nata_chk_status() just calls ops-\u003echeck_status and it only adds\nconfusion with other status functions.  Kill it.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "071ce34d57924edb76b76f7de460eb4991463959",
      "tree": "10400b05bd2649fe25a8c3aa4d41c08bd29c6347",
      "parents": [
        "624d5c514eed18d5a93062e9d86d67065175f30a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Mar 25 22:16:42 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:18 2008 -0400"
      },
      "message": "libata: move ata_pci_default_filter() out of CONFIG_PCI\n\nata_pci_default_filter() doesn\u0027t really have anything to do with PCI.\nIt\u0027s generally applicable to BMDMA controllers.  Move it out of\nCONFIG_PCI.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "624d5c514eed18d5a93062e9d86d67065175f30a",
      "tree": "61f89b05b70e9b443cf09083b4ae3d102dd357b7",
      "parents": [
        "272f7884e8c0effe594e5537092b9c0ccc0140b0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Mar 25 22:16:41 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:18 2008 -0400"
      },
      "message": "libata: reorganize SFF related stuff\n\n* Move SFF related functions from libata-core.c to libata-sff.c.\n\n  ata_[bmdma_]sff_port_ops, ata_devchk(), ata_dev_try_classify(),\n  ata_std_dev_select(), ata_tf_to_host(), ata_busy_sleep(),\n  ata_wait_after_reset(), ata_wait_ready(), ata_bus_post_reset(),\n  ata_bus_softreset(), ata_bus_reset(), ata_std_softreset(),\n  sata_std_hardreset(), ata_fill_sg(), ata_fill_sg_dumb(),\n  ata_qc_prep(), ata_dump_qc_prep(), ata_data_xfer(),\n  ata_data_xfer_noirq(), ata_pio_sector(), ata_pio_sectors(),\n  atapi_send_cdb(), __atapi_pio_bytes(), atapi_pio_bytes(),\n  ata_hsm_ok_in_wq(), ata_hsm_qc_complete(), ata_hsm_move(),\n  ata_pio_task(), ata_qc_issue_prot(), ata_host_intr(),\n  ata_interrupt(), ata_std_ports()\n\n* Make ata_pio_queue_task() global as it\u0027s now called from\n  libata-sff.c.\n\n* Move SFF related stuff in include/linux/libata.h and\n  drivers/ata/libata.h into one place.  While at it, move timing\n  constants into the global enum definition and fortify comments a\n  bit.\n\nThis patch strictly moves stuff around and as such doesn\u0027t cause any\nfunctional difference.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "272f7884e8c0effe594e5537092b9c0ccc0140b0",
      "tree": "c05ac4d9004943c2a47e74b88eba95483408809c",
      "parents": [
        "21572ea58a1f99a59044febde90c31167d2f59ae"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Mar 25 22:16:40 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:18 2008 -0400"
      },
      "message": "libata: reorder functions in libata-sff.c\n\nReorder functions in drivers/ata/libata-sff.c such that functions\ngenerally follow ops table order and init functions come last.  This\nis in preparation of SFF cleanup.\n\nThis patch strictly moves stuff around and as such doesn\u0027t cause any\nfunctional difference.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "a1efdaba2dbd6fb89e23a87b66d3f4dd92c9f5af",
      "tree": "6197c537892e0d887b2a90e369b74abf0500b9ac",
      "parents": [
        "959471936241bd83da7d0a76411cef6772140fe6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Mar 25 12:22:50 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:18 2008 -0400"
      },
      "message": "libata: make reset related methods proper port operations\n\nCurrently reset methods are not specified directly in the\nata_port_operations table.  If a LLD wants to use custom reset\nmethods, it should construct and use a error_handler which uses those\nreset methods.  It\u0027s done this way for two reasons.\n\nFirst, the ops table already contained too many methods and adding\nfour more of them would noticeably increase the amount of necessary\nboilerplate code all over low level drivers.\n\nSecond, as -\u003eerror_handler uses those reset methods, it can get\nconfusing.  ie. By overriding -\u003eerror_handler, those reset ops can be\nmade useless making layering a bit hazy.\n\nNow that ops table uses inheritance, the first problem doesn\u0027t exist\nanymore.  The second isn\u0027t completely solved but is relieved by\nproviding default values - most drivers can just override what it has\nimplemented and don\u0027t have to concern itself about higher level\ncallbacks.  In fact, there currently is no driver which actually\nmodifies error handling behavior.  Drivers which override\n-\u003eerror_handler just wraps the standard error handler only to prepare\nthe controller for EH.  I don\u0027t think making ops layering strict has\nany noticeable benefit.\n\nThis patch makes -\u003eprereset, -\u003esoftreset, -\u003ehardreset, -\u003epostreset and\ntheir PMP counterparts propoer ops.  Default ops are provided in the\nbase ops tables and drivers are converted to override individual reset\nmethods instead of creating custom error_handler.\n\n* ata_std_error_handler() doesn\u0027t use sata_std_hardreset() if SCRs\n  aren\u0027t accessible.  sata_promise doesn\u0027t need to use separate\n  error_handlers for PATA and SATA anymore.\n\n* softreset is broken for sata_inic162x and sata_sx4.  As libata now\n  always prefers hardreset, this doesn\u0027t really matter but the ops are\n  forced to NULL using ATA_OP_NULL for documentation purpose.\n\n* pata_hpt374 needs to use different prereset for the first and second\n  PCI functions.  This used to be done by branching from\n  hpt374_error_handler().  The proper way to do this is to use\n  separate ops and port_info tables for each function.  Converted.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "887125e3740283be25564bfc6fb5d24974b651ab",
      "tree": "bd037e1c17a468fabe1834e707b70b4b43513e4a",
      "parents": [
        "1bd5b715a305f6f13455e89becbd839010dd14b5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Mar 25 12:22:49 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:17 2008 -0400"
      },
      "message": "libata: stop overloading port_info-\u003eprivate_data\n\nport_info-\u003eprivate_data is currently used for two purposes - to record\nprivate data about the port_info or to specify host-\u003eprivate_data to\nuse when allocating ata_host.\n\nThis overloading is confusing and counter-intuitive in that\nport_info-\u003eprivate_data becomes host-\u003eprivate_data instead of\nport-\u003eprivate_data.  In addition, port_info and host don\u0027t correspond\nto each other 1-to-1.  Currently, the first non-NULL\nport_info-\u003eprivate_data is used.\n\nThis patch makes port_info-\u003eprivate_data just be what it is -\nprivate_data for the port_info where LLD can jot down extra info.\nlibata no longer sets host-\u003eprivate_data to the first non-NULL\nport_info-\u003eprivate_data, @host_priv argument is added to\nata_pci_init_one() instead.  LLDs which use ata_pci_init_one() can use\nthis argument to pass in pointer to host private data.  LLDs which\ndon\u0027t should use init-register model anyway and can initialize\nhost-\u003eprivate_data directly.\n\nAdding @host_priv instead of using init-register model for LLDs which\nuse ata_pci_init_one() is suggested by Alan Cox.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\n"
    },
    {
      "commit": "1bd5b715a305f6f13455e89becbd839010dd14b5",
      "tree": "22e74b38495c51cda92145b7ae31f504f80d9fd3",
      "parents": [
        "029cfd6b74fc5c517865fad78cf4a3ea8d9b664a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Mar 25 12:22:49 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:17 2008 -0400"
      },
      "message": "libata: make ata_pci_init_one() not use ops-\u003eirq_handler and pi-\u003esht\n\nata_pci_init_one() is the only function which uses ops-\u003eirq_handler\nand pi-\u003esht.  Other initialization functions take the same information\nas arguments.  This causes confusion and duplicate unused entries in\nstructures.\n\nMake ata_pci_init_one() take sht as an argument and use ata_interrupt\nimplicitly.  All current users use ata_interrupt and if different irq\nhandler is necessary open coding ata_pci_init_one() using\nata_prepare_sff_host() and ata_activate_sff_host can be done under ten\nlines including error handling and driver which requires custom\ninterrupt handler is likely to require custom initialization anyway.\n\nAs ata_pci_init_one() was the last user of ops-\u003eirq_handler, this\npatch also kills the field.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "358f9a77a668660729e705fde9c3cf69f013aa98",
      "tree": "a249660fdd9f252925eff9eaac3ed7836c839f91",
      "parents": [
        "c1bc899f5805771926c9198e2ab4d77122c356a1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Mar 25 12:22:47 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Thu Apr 17 15:44:16 2008 -0400"
      },
      "message": "libata: implement and use ata_noop_irq_clear()\n\n-\u003eirq_clear() is used to clear IRQ bit of a SFF controller and isn\u0027t\nuseful for drivers which don\u0027t use libata SFF HSM implementation.\nHowever, it\u0027s a required callback and many drivers implement their own\nnoop version as placeholder.  This patch implements ata_noop_irq_clear\nand use it to replace those custom placeholders.\n\nAlso, SFF drivers which don\u0027t support BMDMA don\u0027t need to use\nata_bmdma_irq_clear().  It becomes noop if BMDMA address isn\u0027t\ninitialized.  Convert them to use ata_noop_irq_clear().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\n"
    },
    {
      "commit": "f659f0e4480bb82e6dcf3db8ba1e8485444084e5",
      "tree": "23ede4117c50f6794628fe5084bfd91027be12e3",
      "parents": [
        "eec59f76e9010e22d5736cf1907af4a92067522e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Thu Mar 06 13:12:54 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Mon Mar 10 20:50:36 2008 -0400"
      },
      "message": "libata-sff: handle controllers w/o ctl register\n\nSFF incorrectly assumed that ctl register is available for all\ncontrollers while some old SFF controllers don\u0027t have ctl register.\nMake SFF handle controllers w/o ctl register by conditionalizing ctl\nregister access and softreset method.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "4e6b79fa61091a0ed9b0af0f573cc257772cd88d",
      "tree": "cd3e9dca0355741713d038b0068cd4ba32f87b56",
      "parents": [
        "cadb7345d92628d46cccd3765cc15cb9cd6abccf"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Jan 18 18:36:28 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:16 2008 -0500"
      },
      "message": "libata: factor out ata_pci_activate_sff_host() from ata_pci_one()\n\nFactor out ata_pci_activate_sff_host() from ata_pci_one().  This does\nabout the same thing as ata_host_activate() but needs to be separate\nbecause SFF controllers use different and multiple IRQs in legacy\nmode.\n\nThis will be used to make SFF LLD initialization more flexible.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "35a10a80daa04b7316d6bac1b1402cc347c35b1e",
      "tree": "b62c64999bfb646ed8881eca3fae4bcbf6402506",
      "parents": [
        "723159c58371b860cf6ef38affd19d16290e4898"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri Jan 04 18:42:21 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:15 2008 -0500"
      },
      "message": "libata: use dev_driver_string() instead of \"libata\" in libata-sff.c\n\nlibata-sff code used DRV_NAME which is hardcoded to \"libata\" when\nrequesting resources.  Use dev_driver_string() such that low level\ndriver names are used in resource listing.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "0dc36888d4422140f9eaf50f24953ec109f750a3",
      "tree": "80253b1831849e4063b73c31c15011c5e4c48404",
      "parents": [
        "537b53c1692960b8b3b0324e886fbe48cb9e5c00"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Dec 18 16:34:43 2007 -0500"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:14 2008 -0500"
      },
      "message": "libata: rename ATA_PROT_ATAPI_* to ATAPI_PROT_*\n\nATA_PROT_ATAPI_* are ugly and naming schemes between ATA_PROT_* and\nATA_PROT_ATAPI_* are inconsistent causing confusion.  Rename them to\nATAPI_PROT_* and make them consistent with ATA counterpart.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "76548eda8c47e50260bc87196d40b26ce7a7bcd6",
      "tree": "3e5d8e8627a3828e1b729274cfaf01ff13d59668",
      "parents": [
        "b9f8ab2dafba2dc12dd94e5d2db31d5cf495775f"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Nov 19 14:34:56 2007 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Jan 23 05:24:09 2008 -0500"
      },
      "message": "libata-sff: tf_load\n\nJeff said he preferred that the SFF tf_load followed the spec and we\ndocumented that anyone who needed different overrode it, rather than it\nusing the -\u003echeck_status methods. No driver relies on the current behaviour.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "277d72a37431d200727189693b14488368b7c258",
      "tree": "40284a8d0ab950034bf85525f68fb1d37f7cb4be",
      "parents": [
        "b14dabcdb651ddd9f85c69c9042322c139e7da84"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Jan 03 17:22:28 2008 +0000"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Jan 10 16:52:51 2008 -0500"
      },
      "message": "libata-sff: PCI IRQ handling fix\n\nIt is legitimate (although annoying and silly) for a PCI IDE controller\nnot to be assigned an interrupt and to be polled. The libata-sff code\nshould therefore not try and request IRQ 0 in this case.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "2dcb407e61458ded17503d6bd12b8c064965368b",
      "tree": "6044e032197b84f9943a385b0c9dbb6656c3f97f",
      "parents": [
        "01e7ae8c13bb06a2ce622ebace33bb7e28ef596c"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 19 06:42:56 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Oct 23 20:59:42 2007 -0400"
      },
      "message": "[libata] checkpatch-inspired cleanups\n\nTackle the relatively sane complaints of checkpatch --file.\n\nThe vast majority is indentation and whitespace changes, the rest are\n\n* #include fixes\n* printk KERN_xxx prefix addition\n* BSS/initializer cleanups\n\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "3a4fa0a25da81600ea0bcd75692ae8ca6050d165",
      "tree": "a4de1662e645c029cf3cf58f0646cbb1959861dc",
      "parents": [
        "18735dd8d2d37031b97f9e9e106acbaed01eb896"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Fri Oct 19 23:10:43 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Oct 19 23:10:43 2007 +0200"
      },
      "message": "Fix misspellings of \"system\", \"controller\", \"interrupt\" and \"necessary\".\n\nFix the various misspellings of \"system\", controller\", \"interrupt\" and\n\"[un]necessary\".\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "2af170dd241810212cbdbdc802ba7d39e3fb23b9",
      "tree": "3d16719aa102444337f161c457502704a4967a53",
      "parents": [
        "ab08ed1770140ebcf1be1657087689832b755874",
        "3be6cbd73f74b4a3da82cc7d6e1688a4ae595fc7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 15:08:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 15:08:35 2007 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev\n\n* \u0027upstream-linus\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:\n  [libata] kill ata_sg_is_last()\n  Update libata driver for bf548 atapi controller against the 2.6.24 tree.\n  libata-sff: Correct use of check_status()\n  drivers/ata: add support to Freescale 3.0Gbps SATA Controller\n  pata_acpi: fix build breakage if !CONFIG_PM\n"
    },
    {
      "commit": "c80544dc0b87bb65038355e7aafdc30be16b26ab",
      "tree": "176349304bec88a9de16e650c9919462e0dd453c",
      "parents": [
        "0e9663ee452ffce0d429656ebbcfe69417a30e92"
      ],
      "author": {
        "name": "Stephen Hemminger",
        "email": "shemminger@linux-foundation.org",
        "time": "Thu Oct 18 03:07:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:31 2007 -0700"
      },
      "message": "sparse pointer use of zero as null\n\nGet rid of sparse related warnings from places that use integer as NULL\npointer.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Stephen Hemminger \u003cshemminger@linux-foundation.org\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Ian Kent \u003craven@themaw.net\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01839f6ddef011878e905d72786d95cee21ca039",
      "tree": "c381091011421a7232d081111a20bb13d78a4c0f",
      "parents": [
        "faf0b2e5afe7dae072d2715763c7f992b612b628"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Oct 15 19:25:29 2007 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Oct 17 20:49:02 2007 -0400"
      },
      "message": "libata-sff: Correct use of check_status()\n\nata_check_status() does an SFF compliant check\nata_chk_status() does a generic call to ap-\u003eops-\u003echeck_status (usually\nata_check_status)\n\nlibata-sff uses the wrong one. Hardly suprising given the naming here,\nwhich ought to get fixed to ata_sff_check_status() perhaps ?\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "cbcdd87593a1d85c5c4b259945a3a09eee12814d",
      "tree": "ee03df963a12ec7f30f6c3a8742421daf2c34f50",
      "parents": [
        "e923090ddd9fef1d4e06dc6c5295e29baced19f3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sat Aug 18 13:14:55 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:37 2007 -0400"
      },
      "message": "libata: implement and use ata_port_desc() to report port configuration\n\nCurrently, port configuration reporting has the following problems.\n\n* iomapped address is reported instead of raw address\n* report contains irrelevant fields or lacks necessary fields for\n  non-SFF controllers.\n* host-\u003eirq/irq2 are there just for reporting and hacky.\n\nThis patch implements and uses ata_port_desc() and\nata_port_pbar_desc().  ata_port_desc() is almost identical to\nata_ehi_push_desc() except that it takes @ap instead of @ehi, has no\nlocking requirement, can only be used during host initialization and \"\n\" is used as separator instead of \", \".  ata_port_pbar_desc() is a\nhelper to ease reporting of a PCI BAR or an offsetted address into it.\n\nLLD pushes whatever description it wants using the above two\nfunctions.  The accumulated description is printed on host\nregistration after \"[S/P]ATA max MAX_XFERMODE \".\n\nSFF init helpers and ata_host_activate() automatically add\ndescriptions for addresses and irq respectively, so only LLDs which\nisn\u0027t standard SFF need to add custom descriptions.  In many cases,\nsuch controllers need to report different things anyway.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6d32d30f55020d766388df7515f771f68c973033",
      "tree": "ec0efe48460b5b3f177fed2698ccd04b7964359b",
      "parents": [
        "cb94c1cf5a6beffbd8935eb91227df0dd1987644"
      ],
      "author": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Aug 15 05:38:46 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:34 2007 -0400"
      },
      "message": "[libata] Remove -\u003eirq_ack() hook, and ata_dummy_irq_on()\n\n* -\u003eirq_ack() is redundant to what the irq handler already\n  performs... chk-status + irq-clear.  Furthermore, it is only\n  called in one place, when screaming-irq-debugging is enabled,\n  so we don\u0027t want to bother with a hook just for that.\n\n* ata_dummy_irq_on() is only ever used in drivers that have\n  no callpath reaching -\u003eirq_on().  Remove .irq_on hook from\n  those drivers, and the now-unused ata_dummy_irq_on()\n\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "936fd7328657884d5a69a55666c74a55aa83ca27",
      "tree": "83a78a02d2c65ce835fe33882dfe5043d3240bff",
      "parents": [
        "f58229f8060055b08b34008ea08f31de1e2f003c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:23 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:30 2007 -0400"
      },
      "message": "libata-link: linkify PHY-related functions\n\nMake the following PHY-related functions to deal with ata_link instead\nof ata_port.\n\n* sata_print_link_status()\n* sata_down_spd_limit()\n* ata_set_sata_spd_limit() and friends\n* sata_link_debounce/resume()\n* sata_scr_valid/read/write/write_flush()\n* ata_link_on/offline()\n\nThis patch introduces no behavior change.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "9af5c9c97dc9d599281778864c72b385f0c63341",
      "tree": "8359986bd42c4a9a5b1993078aa9ee4c7971ac3d",
      "parents": [
        "640fdb504941fa2b9f6f274716fc9f97f2bf6bff"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Mon Aug 06 18:36:22 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Oct 12 14:55:30 2007 -0400"
      },
      "message": "libata-link: introduce ata_link\n\nIntroduce ata_link.  It abstracts PHY and sits between ata_port and\nata_device.  This new level of abstraction is necessary to support\nSATA Port Multiplier, which basically adds a bunch of links (PHYs) to\na ATA host port.  Fields related to command execution, spd_limit and\nEH are per-link and thus moved to ata_link.\n\nThis patch only defines the host link.  Multiple link handling will be\nadded later.  Also, a lot of ap-\u003elink derefences are added but many of\nthem will be removed as each part is converted to deal directly with\nata_link instead of ata_port.\n\nThis patch introduces no behavior change.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "e1cc9de8361f267101402a1181cff4d3d3225a6d",
      "tree": "ddb57a3bd49a33cb869a399daa6ba094f20fa26c",
      "parents": [
        "0e3dbc01d53940fe10e5a5cfec15ede3e929c918"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Sep 20 15:03:07 2007 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Thu Sep 20 15:58:26 2007 -0400"
      },
      "message": "libata-sff: Fix documentation\n\nCode moved to ioread/iowrite but the comment didn\u0027t\nAlso note a posting issue\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "6fdc99a224bd52020c602c3d4d57e5f8a75f6bb8",
      "tree": "34eccedf0dd9d24e6c9b73d7d24bacaac7595446",
      "parents": [
        "dbf0c89c80e47a2a132048dcded0dcc2a59c74ad"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Jul 26 18:41:30 2007 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Wed Aug 01 10:00:56 2007 -0400"
      },
      "message": "libata-sff; Unbreak non DMA capable controllers again\n\nSeems nobody else is checking/testing this case as it keeps getting\nhorked.\n\nIf we have no BAR4 mapping on an SFF controller this is *NOT* an error,\nit just means it isn\u0027t doing BMDMA.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "fe36cb53cfd82f3c0796a0826e1c9caf198c8f97",
      "tree": "81c85f1b6e8277ba075eae74e6dd4bec22106896",
      "parents": [
        "f3a03b0934fb83a030ccd3e6f1fbe845a9c44d49"
      ],
      "author": {
        "name": "Petr Vandrovec",
        "email": "petr@vandrovec.name",
        "time": "Fri Jul 20 07:44:44 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 07:44:44 2007 -0400"
      },
      "message": "[libata] Fix reported task file values in sense data\n\nata_tf_read was setting HOB bit when lba48 command was submitted, but\nwas not clearing it before reading \"normal\" data.  As it is only place\nwhich sets HOB bit in control register, and register reads should not\nbe affected by other bits, let\u0027s just clear it when we are done with\nreading upper bytes so non-48bit commands do not have to touch ctl\nat all.\n\npata_scc suffered from same problem...\n\nSigned-off-by: Petr Vandrovec \u003cpetr@vandrovec.name\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "f3a03b0934fb83a030ccd3e6f1fbe845a9c44d49",
      "tree": "286f7277ae99cd9c0f01d7196b45eb92d9c8cfe6",
      "parents": [
        "dcd0344775c1c0bf8ff3b9541863beea5088a7c9"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Jul 16 11:23:03 2007 -0400"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri Jul 20 07:16:24 2007 -0400"
      },
      "message": "Correct comment in libata-sff.c\n\nThe filename in the file header is incorrect.\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d583bc18812f8da52bf25eef9cd111e5fd46a6ab",
      "tree": "7b886a4ce61b7c0bf8085da5e56b323a9a2fa193",
      "parents": [
        "35142ddbf7d81ff3f1d9521611e734b8d5014df2"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Wed Jul 04 18:02:07 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Jul 10 21:27:09 2007 -0400"
      },
      "message": "libata: simplify PCI legacy SFF host handling\n\nWith PCI resource fix up for legacy hosts.  We can use the same code\npath to allocate IO resources and initialize host for both legacy and\nnative SFF hosts.  Only IRQ requesting needs to be different.\n\nRename ata_pci_*_native_host() to ata_pci_*_sff_host(), kill all\nlegacy specific functions and use the renamed functions instead.  This\nsimplifies code a lot.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "4031826b3ca40982880f6b9f2282c7d7fad60d77",
      "tree": "69dba5acc2180bd34752483a2ce777c51686b01d",
      "parents": [
        "aa2e09da2a332e748532aa2a71b090e7e7c3203d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Jul 03 01:38:47 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Tue Jul 03 10:06:35 2007 -0400"
      },
      "message": "libata: fix assigned IRQ reporting\n\nhost-\u003eirq and host-\u003eirq2 should be set before ata_host_register() for\nIRQ reporting to work.  Move up host-\u003eirq assignment in\nata_host_activate() and add it to ata_pci_init_one() native path and\npata_cs5520.\n\nThe port info printing in ata_host_register() doesn\u0027t fit all the\ndifferent controllers.  It should probably be moved out to LLDs with\nsome helpers in the future.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "d92e74d353345d19f762e9501a50b0a5f43f7ba8",
      "tree": "9a526823ddba8dd8cd07bb5d918acf7c5e820db7",
      "parents": [
        "0522b2869d89b095bf417c8cc6fa404842e91903"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Thu Jun 07 16:19:15 2007 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Jun 09 22:40:28 2007 -0400"
      },
      "message": "libata-core/sff: Fix multiple assumptions about DMA\n\nThe ata IRQ ack functions are only used when debugging. Unfortunately\nalmost every controller that calls them can cause crashes in some\nconfigurations as there are missing checks for bmdma presence.\n\nIn addition ata_port_start insists of installing DMA buffers and pad\nbuffers for controllers regardless. The SFF controllers actually need to\nmake that decision dynamically at controller setup time and all need the\nsame helper - so we add ata_sff_port_start. Future patches will switch\nthe SFF drivers to use this.\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "1626aeb881236c8cb022b5e4ca594146a951d669",
      "tree": "30f3457e4b5d76e62ee192fcc0d52b0ee8a829df",
      "parents": [
        "920a4b1038e442700a1cfac77ea7e20bd615a2c3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Fri May 04 12:43:58 2007 +0200"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Fri May 11 18:09:18 2007 -0400"
      },
      "message": "libata: clean up SFF init mess\n\nThe intention of using port_mask in SFF init helpers was to eventually\nsupport exoctic configurations such as combination of legacy and\nnative port on the same controller.  This never became actually\nnecessary and the related code always has been subtly broken one way\nor the other.  Now that new init model is in place, there is no reason\nto make common helpers capable of handling all corner cases.  Exotic\ncases can simply dealt within LLDs as necessary.\n\nThis patch removes port_mask handling in SFF init helpers.  SFF init\nhelpers don\u0027t take n_ports argument and interpret it into port_mask\nanymore.  All information is carried via port_info.  n_ports argument\nis dropped and always two ports are allocated.  LLD can tell SFF to\nskip certain port by marking it dummy.  Note that SFF code has been\ntreating unuvailable ports this way for a long time until recent\nbreakage fix from Linus and is consistent with how other drivers\nhandle with unavailable ports.\n\nThis fixes 1-port legacy host handling still broken after the recent\nnative mode fix and simplifies SFF init logic.  The following changes\nare made...\n\n* ata_pci_init_native_host() and ata_init_legacy_host() both now try\n  to initialized whatever they can and mark failed ports dummy.  They\n  return 0 if any port is successfully initialized.\n\n* ata_pci_prepare_native_host() and ata_pci_init_one() now doesn\u0027t\n  take n_ports argument.  All info should be specified via port_info\n  array.  Always two ports are allocated.\n\n* ata_pci_init_bmdma() exported to be used by LLDs in exotic cases.\n\n* port_info handling in all LLDs are standardized - all port_info\n  arrays are const stack variable named ppi.  Unless the second port\n  is different from the first, its port_info is specified as NULL\n  (tells libata that it\u0027s identical to the last non-NULL port_info).\n\n* pata_hpt37x/hpt3x2n: don\u0027t modify static variable directly.  Make an\n  on-stack copy instead as ata_piix does.\n\n* pata_uli: It has 4 ports instead of 2.  Don\u0027t use\n  ata_pci_prepare_native_host().  Allocate the host explicitly and use\n  init helpers.  It\u0027s simple enough.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "dc87c3985e9b442c60994308a96f887579addc39",
      "tree": "3299ea602d673f11739b4d3656e9ab069ec7269b",
      "parents": [
        "14e38ac823b7b25e3f4e563c182f93fde78167d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Apr 30 17:43:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Apr 30 17:43:48 2007 -0700"
      },
      "message": "libata: honour host controllers that want just one host\n\nThe Marvell IDE interface on my machine would hit a BUG_ON() in\nlib/iomem.c because it was calling ata_pci_init_one() specifying just a\nsingle port on the host, but that would actually end up trying to\ninitialize two ports, the second one with bogus information.\n\nThis fixes \"ata_pci_init_one()\" so that it actually passes down the\nn_ports variable that it got from the low-level driver to the host\nallocation routine (\"ata_host_alloc_pinfo()\"), which results in the ATA\nlayer actually having the correct port number information.\n\nAnd in order to make it all work, I also needed to fix a few places that\nhad incorrectly hard-coded the fact that a host always had exactly two\nports (both ata_pci_init_bmdma() and ata_request_legacy_irqs() would\njust always iterate over both ports).\n\nAcked-by: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6bfff31e77cfa1b13490337e5a4dbaa3407e83ac",
      "tree": "89f7dc5379453381aed939741fc3a7e46b0465fa",
      "parents": [
        "5d728824efeda61d304153bfcf1378a3c18b7d70"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Apr 17 23:44:08 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:06 2007 -0400"
      },
      "message": "libata: kill probe_ent and related helpers\n\nAll drivers are converted to new init model.  Kill probe_ent,\nata_device_add() and ata_pci_init_native_mode().\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    },
    {
      "commit": "21b0ad4fb8306ac2bf5a249ffc978b1b8924c7d0",
      "tree": "9f82cc6a4bca146ce1021f0825cc12f18f9063b9",
      "parents": [
        "d491b27b1959565671e2c05dff09b5f535a854ce"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Tue Apr 17 23:44:07 2007 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jeff@garzik.org",
        "time": "Sat Apr 28 14:16:03 2007 -0400"
      },
      "message": "libata: add init helpers including ata_pci_prepare_native_host()\n\nThese will be used to convert LLDs to new init model.\n\n* Add irq_handler field to port_info.  In new init model, requesting\n  IRQ is LLD\u0027s responsibility and libata doesn\u0027t need to know about\n  irq_handler.  Most LLDs can simply register their irq_handler but\n  some need different irq_handler depending on specific chip.  The\n  added port_info-\u003eirq_handler field can be used by LLDs to select\n  the matching IRQ handler in such cases.\n\n* Add ata_dummy_port_info.\n\n* Implement ata_pci_prepare_native_host(), a helper to alloc ATA host,\n  acquire all resources and init the host in one go.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Jeff Garzik \u003cjeff@garzik.org\u003e\n"
    }
  ],
  "next": "d491b27b1959565671e2c05dff09b5f535a854ce"
}
