)]}'
{
  "commit": "2822888c810eaf2d68271f4dac4a0ad639221fd3",
  "tree": "a6e81bc8cf557252479496bc3a655c1981b6303e",
  "parents": [
    "ec489e4ec65ec416a6c41ded6d5eae0b6ebd7103"
  ],
  "author": {
    "name": "Carl-Daniel Hailfinger",
    "email": "c-d.hailfinger.devel.2006@gmx.net",
    "time": "Wed Sep 15 00:17:37 2010 +0000"
  },
  "committer": {
    "name": "Carl-Daniel Hailfinger",
    "email": "c-d.hailfinger.devel.2006@gmx.net",
    "time": "Wed Sep 15 00:17:37 2010 +0000"
  },
  "message": "SPI bitbanging: request/release bus\n\nSPI bitbanging on devices which speak SPI natively has a dual-use\nproblem: We need to shut down normal SPI operations to do the bitbanging\nourselves. Once we\u0027re done, it makes a lot of sense to reenable \"normal\"\nSPI operations again. Add request_bus/release_bus functions to struct\nbitbang_spi_master.\nAdd a bitbang shutdown function (not used yet).\nChange MCP SPI and Intel NIC SPI to use the new request/release bus\ninfrastructure.\nCosmetic changes to a few error messages (80 column limit).\n\nThere are multiple possible strategies for bus request/release:\n- Request at the start of a SPI command, release immediately afterwards.\n- Request at the start of a SPI multicommand, release once all commands\nof the multicommand are done.\n- Request on programmer init, release on shutdown.\nEach strategy has its own advantages. For now, we will stay with the\nfirst strategy which worked fine so far.\n\nCorresponding to flashrom svn r1171.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nAcked-by: Uwe Hermann \u003cuwe@hermann-uwe.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f697f5a113fa2f94dbc56bbcdb1f33df7a963883",
      "old_mode": 33188,
      "old_path": "bitbang_spi.c",
      "new_id": "fe85b6091603d6aeb2d50f5eea6d70600f5c300e",
      "new_mode": 33188,
      "new_path": "bitbang_spi.c"
    },
    {
      "type": "modify",
      "old_id": "6635ddd5df2e7677a3acb1d4f08356cf36d85f41",
      "old_mode": 33188,
      "old_path": "mcp6x_spi.c",
      "new_id": "97c0a1c57f3ed0481bdb8c09636f05e5b732d008",
      "new_mode": 33188,
      "new_path": "mcp6x_spi.c"
    },
    {
      "type": "modify",
      "old_id": "d09facc12f6a4168ae2460b935ab5a81b280e66b",
      "old_mode": 33188,
      "old_path": "nicintel_spi.c",
      "new_id": "75dc423d46a99b30e184bec45272cf4452914677",
      "new_mode": 33188,
      "new_path": "nicintel_spi.c"
    },
    {
      "type": "modify",
      "old_id": "0d8e161a5f0065bd06e6f6c9d07160212cb5abf7",
      "old_mode": 33188,
      "old_path": "programmer.h",
      "new_id": "640769522a38367b2cafd7f6ec7427a2276f2457",
      "new_mode": 33188,
      "new_path": "programmer.h"
    }
  ]
}
