)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3d8b62f7441cef78bd4e74f4fd3fa6a1e29e2b74",
      "old_mode": 33188,
      "old_path": "drivers/ata/libata-core.c",
      "new_id": "cc49a0d3089f233d5b683139a95e841397ddab23",
      "new_mode": 33188,
      "new_path": "drivers/ata/libata-core.c"
    },
    {
      "type": "modify",
      "old_id": "6400e87513917d74e5b44fa9c09e58bd7b8d03e0",
      "old_mode": 33188,
      "old_path": "drivers/ata/libata-sff.c",
      "new_id": "f1c99a3e8b2c45e464bd4086b8ccae795c210ccd",
      "new_mode": 33188,
      "new_path": "drivers/ata/libata-sff.c"
    },
    {
      "type": "modify",
      "old_id": "1ea2be0f4b94fea1ff90137a15b891191b47bab9",
      "old_mode": 33188,
      "old_path": "drivers/ata/pata_acpi.c",
      "new_id": "1a5a309abccdfc9b0036c7e64194b494d851651c",
      "new_mode": 33188,
      "new_path": "drivers/ata/pata_acpi.c"
    },
    {
      "type": "modify",
      "old_id": "dc61b72f751c7f8cbaf912fda1a2d57f30498fc6",
      "old_mode": 33188,
      "old_path": "drivers/ata/pata_ali.c",
      "new_id": "f306e10c748deb004b88126f22b9ab4d41828087",
      "new_mode": 33188,
      "new_path": "drivers/ata/pata_ali.c"
    },
    {
      "type": "modify",
      "old_id": "c6a946aa252c1f05d40e847921435a40439eb201",
      "old_mode": 33188,
      "old_path": "drivers/ata/pata_at91.c",
      "new_id": "0da0dcc7dd089427a988171c3f1a8b62c1b8f90f",
      "new_mode": 33188,
      "new_path": "drivers/ata/pata_at91.c"
    },
    {
      "type": "modify",
      "old_id": "3d94c800e9d1b6794a9beccb3ee66751b04eb861",
      "old_mode": 33188,
      "old_path": "drivers/ata/pata_bf54x.c",
      "new_id": "6422cfd13d0d4823102e7c78b4db3e2ceed78f1c",
      "new_mode": 33188,
      "new_path": "drivers/ata/pata_bf54x.c"
    },
    {
      "type": "modify",
      "old_id": "60ab2d2b1ccd545ae781952fcce1103e00f19748",
      "old_mode": 33188,
      "old_path": "drivers/ata/pata_cmd640.c",
      "new_id": "e5f289f59ca3203cc1d2ef7938925e60ef727159",
      "new_mode": 33188,
      "new_path": "drivers/ata/pata_cmd640.c"
    },
    {
      "type": "modify",
      "old_id": "af49bfb57247613537d6bcce2484ade417aaf49d",
      "old_mode": 33188,
      "old_path": "drivers/ata/pata_hpt366.c",
      "new_id": "8580eb3cd54db8b31f0049e68bbb7429e05124f7",
      "new_mode": 33188,
      "new_path": "drivers/ata/pata_hpt366.c"
    },
    {
      "type": "modify",
      "old_id": "8839307a64cf52d14301f7a52b3af99ad565c4d6",
      "old_mode": 33188,
      "old_path": "drivers/ata/pata_hpt37x.c",
      "new_id": "98b498b6907c441de3a2d95b6ce5df000a1ed943",
      "new_mode": 33188,
      "new_path": "drivers/ata/pata_hpt37x.c"
    },
    {
      "type": "modify",
      "old_id": "832c8ccd0e8056e79b72016751c5e8a4a6d1d6f2",
      "old_mode": 33188,
      "old_path": "drivers/ata/pata_icside.c",
      "new_id": "ee85a9ce0a11d9c8ef8e98468458e464abeb7750",
      "new_mode": 33188,
      "new_path": "drivers/ata/pata_icside.c"
    },
    {
      "type": "modify",
      "old_id": "5cb286fd839e62d6e4ecc51843f43a9ce4a80ea6",
      "old_mode": 33188,
      "old_path": "drivers/ata/pata_it821x.c",
      "new_id": "8d73438f292cf62ed63fc1be919f4fe68b83b834",
      "new_mode": 33188,
      "new_path": "drivers/ata/pata_it821x.c"
    },
    {
      "type": "modify",
      "old_id": "17e4e5d19696ec23c981ec0241bef26b2919871f",
      "old_mode": 33188,
      "old_path": "drivers/ata/pata_macio.c",
      "new_id": "25df50f51c046d44c9a3f0579eb247b0029228d1",
      "new_mode": 33188,
      "new_path": "drivers/ata/pata_macio.c"
    },
    {
      "type": "modify",
      "old_id": "ca5cad0fd80b2a44043eb48f3aaac38f95ce563b",
      "old_mode": 33188,
      "old_path": "drivers/ata/pata_pdc2027x.c",
      "new_id": "09f1f22c030712d31589fe9a711c94dce1b0fb6c",
      "new_mode": 33188,
      "new_path": "drivers/ata/pata_pdc2027x.c"
    },
    {
      "type": "modify",
      "old_id": "9ac0897cf8b0488c3403c2db844c153d8f07f524",
      "old_mode": 33188,
      "old_path": "drivers/ata/pata_pdc202xx_old.c",
      "new_id": "fa1e2f3bc0fda64264992da81e0034c289d5c264",
      "new_mode": 33188,
      "new_path": "drivers/ata/pata_pdc202xx_old.c"
    },
    {
      "type": "modify",
      "old_id": "3f6ebc6c665a4f2f6189ec1852b642fb31e040a2",
      "old_mode": 33188,
      "old_path": "drivers/ata/pata_platform.c",
      "new_id": "50400fa120feb107e25439b7152cc5f4b259dc16",
      "new_mode": 33188,
      "new_path": "drivers/ata/pata_platform.c"
    },
    {
      "type": "modify",
      "old_id": "d3988991ca68597f7e326a1221c8e87067df40ab",
      "old_mode": 33188,
      "old_path": "drivers/ata/pata_scc.c",
      "new_id": "70d549e28f0fd822d38c69d6594eccacdee2dc7d",
      "new_mode": 33188,
      "new_path": "drivers/ata/pata_scc.c"
    },
    {
      "type": "modify",
      "old_id": "9524d54035f70288d2bd3f114ca69b235da2a2f6",
      "old_mode": 33188,
      "old_path": "drivers/ata/pata_serverworks.c",
      "new_id": "43ea389df2b3bca935224445eb8dcf461da6417e",
      "new_mode": 33188,
      "new_path": "drivers/ata/pata_serverworks.c"
    },
    {
      "type": "modify",
      "old_id": "87fb89e407f716bca2b9757eda96dac52a453df0",
      "old_mode": 33188,
      "old_path": "drivers/ata/pata_via.c",
      "new_id": "7e3e0a5598b7f28b487d4b2bf9792b319d0befae",
      "new_mode": 33188,
      "new_path": "drivers/ata/pata_via.c"
    },
    {
      "type": "modify",
      "old_id": "ed18d8b42c5244eedd9f9852dc216984ee6a58b4",
      "old_mode": 33188,
      "old_path": "drivers/ata/pdc_adma.c",
      "new_id": "bb4f838655b6144f36ea88b59b312aa1552b46da",
      "new_mode": 33188,
      "new_path": "drivers/ata/pdc_adma.c"
    },
    {
      "type": "modify",
      "old_id": "d3e1bab2a7ad06475b72cea0861a25a38b64c364",
      "old_mode": 33188,
      "old_path": "drivers/ata/sata_inic162x.c",
      "new_id": "a36149ebf4a2c835717ab820915a4f76af0201ee",
      "new_mode": 33188,
      "new_path": "drivers/ata/sata_inic162x.c"
    },
    {
      "type": "modify",
      "old_id": "a03371075990f8b7b5e3ae40d89d4cfd820b7f22",
      "old_mode": 33188,
      "old_path": "drivers/ata/sata_mv.c",
      "new_id": "83491861d110da10657ad329b808c39b37f679ca",
      "new_mode": 33188,
      "new_path": "drivers/ata/sata_mv.c"
    },
    {
      "type": "modify",
      "old_id": "20cc510595dbe991498d08aad967bed2b502a75d",
      "old_mode": 33188,
      "old_path": "drivers/ata/sata_nv.c",
      "new_id": "a007b20c1991f1b124dc5c27dcc9bc3e63f3611e",
      "new_mode": 33188,
      "new_path": "drivers/ata/sata_nv.c"
    },
    {
      "type": "modify",
      "old_id": "2c029ea12c54d5409cd82d1e1ac35f7eb9be6072",
      "old_mode": 33188,
      "old_path": "drivers/ata/sata_promise.c",
      "new_id": "e80628a776696da96a7ccefd04ef0a55b4ee00ee",
      "new_mode": 33188,
      "new_path": "drivers/ata/sata_promise.c"
    },
    {
      "type": "modify",
      "old_id": "febc6e748420b0649fc450593b09b872e1d65b26",
      "old_mode": 33188,
      "old_path": "drivers/ata/sata_qstor.c",
      "new_id": "da84ea9e4fb0863a6c2f656574e8462b5d02e113",
      "new_mode": 33188,
      "new_path": "drivers/ata/sata_qstor.c"
    },
    {
      "type": "modify",
      "old_id": "7e3a25ec93b10cbee366b6ca1d7df3213fc4f750",
      "old_mode": 33188,
      "old_path": "drivers/ata/sata_sx4.c",
      "new_id": "a4e552a325b0ac633e084b6492756fe5150140e8",
      "new_mode": 33188,
      "new_path": "drivers/ata/sata_sx4.c"
    },
    {
      "type": "modify",
      "old_id": "011e098590d16f80f714e12e8808e036a7e3c0f7",
      "old_mode": 33188,
      "old_path": "drivers/ata/sata_uli.c",
      "new_id": "d8dac17dc2c8c13b06e631b2697eaba8c5f98677",
      "new_mode": 33188,
      "new_path": "drivers/ata/sata_uli.c"
    },
    {
      "type": "modify",
      "old_id": "d735728873b51f0e34fefad5c62ab6aba93a4cc0",
      "old_mode": 33188,
      "old_path": "include/linux/libata.h",
      "new_id": "45a547e42d478c3a984985a8893595b2a9f5ec49",
      "new_mode": 33188,
      "new_path": "include/linux/libata.h"
    }
  ]
}
