)]}'
{
  "commit": "ccd71c21222cd73c55284265d306d52e88d8c6c8",
  "tree": "d2ddcfc5b5c2f1e4f212280c7aa81f9ac2d42d96",
  "parents": [
    "8ee180d9114925c9337ed061502f4a02910e3ff7"
  ],
  "author": {
    "name": "Carl-Daniel Hailfinger",
    "email": "c-d.hailfinger.devel.2006@gmx.net",
    "time": "Thu Mar 01 22:38:27 2012 +0000"
  },
  "committer": {
    "name": "Carl-Daniel Hailfinger",
    "email": "c-d.hailfinger.devel.2006@gmx.net",
    "time": "Thu Mar 01 22:38:27 2012 +0000"
  },
  "message": "Fix parallel-style programmer access from ITE IT87/Winbond W83627 SPI\n\nThe ITE IT87 SPI driver uses a trick to speed up reading and writing:\nIf a flash chip is 512 kByte or less, the flash chip can be completely\nmapped in memory and both read and write accesses are faster that way.\nThe current IT87 SPI code did use the parallel programmer interface for\nmemory mapped reads and writes, but that\u0027s the wrong abstraction. It has\nbeen fixed to use mmio_read*/mmio_write* for that purpose.\n\nThe Winbond W83627 SPI driver uses the same trick in its read path for\nall supported chip sizes. Fix it the same way.\n\nSwitch internal_chip_readn to use mmio_readn as proper abstraction.\n\nKudos to Michael Karcher for spotting the bugs.\n\nTested-by: Johan Svensson \u003cflashrom.js@crypt.se\u003e\n\nCorresponding to flashrom svn r1511.\n\nReported-by: Johan Svensson \u003cflashrom.js@crypt.se\u003e\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0efcb6d49787e8e93fbb228e1a60b5931f4d286d",
      "old_mode": 33188,
      "old_path": "hwaccess.c",
      "new_id": "571edd70385ece5b457a6d0c72ccc0cf823a56fc",
      "new_mode": 33188,
      "new_path": "hwaccess.c"
    },
    {
      "type": "modify",
      "old_id": "5716e6412458e02c80466b10a4b189df9aed171e",
      "old_mode": 33188,
      "old_path": "internal.c",
      "new_id": "479cbf7dd314c4f930e1628065c642b324c88725",
      "new_mode": 33188,
      "new_path": "internal.c"
    },
    {
      "type": "modify",
      "old_id": "f089d78d337f222b4798a369ed11f521a032e543",
      "old_mode": 33188,
      "old_path": "it87spi.c",
      "new_id": "fa37d52c4bd2d5ec5018f0ae5de097f641a244b0",
      "new_mode": 33188,
      "new_path": "it87spi.c"
    },
    {
      "type": "modify",
      "old_id": "240e1af9f6c1f7b74e67f83ce67e7264d51bd430",
      "old_mode": 33188,
      "old_path": "programmer.h",
      "new_id": "c99e37fdda261db4e4a237c8ba9ba970ab88ee67",
      "new_mode": 33188,
      "new_path": "programmer.h"
    },
    {
      "type": "modify",
      "old_id": "740a48c980deb02a8dc417683d2c8c6d4a944266",
      "old_mode": 33188,
      "old_path": "wbsio_spi.c",
      "new_id": "774890efa97f231b584a2e83108a9cad8cf0d624",
      "new_mode": 33188,
      "new_path": "wbsio_spi.c"
    }
  ]
}
