)]}'
{
  "commit": "c40cff7b86848f5b248d7fcf20f7d517b60c385d",
  "tree": "7f9db61c7b4868e513c4702cfe57bb35ae695266",
  "parents": [
    "8a3c60cdd0e5632173567923ae1927763e31e857"
  ],
  "author": {
    "name": "Carl-Daniel Hailfinger",
    "email": "c-d.hailfinger.devel.2006@gmx.net",
    "time": "Tue Dec 20 00:19:29 2011 +0000"
  },
  "committer": {
    "name": "Carl-Daniel Hailfinger",
    "email": "c-d.hailfinger.devel.2006@gmx.net",
    "time": "Tue Dec 20 00:19:29 2011 +0000"
  },
  "message": "Have all programmer init functions register bus masters/programmers\n\nAll programmer types (Parallel, SPI, Opaque) now register themselves\ninto a generic programmer list and probing is now programmer-centric\ninstead of chip-centric.\nRegistering multiple SPI/... masters at the same time is now possible\nwithout any problems. Handling multiple flash chips is still unchanged,\nbut now we have the infrastructure to deal with \"dual BIOS\" and \"one\nflash behind southbridge and one flash behind EC\" sanely.\n\nA nice side effect is that this patch kills quite a few global variables\nand improves the situation for libflashrom.\n\nHint for developers:\nstruct {spi,par,opaque}_programmer now have a void *data pointer to\nstore any additional programmer-specific data, e.g. hardware\nconfiguration info.\n\nNote:\nflashrom -f -c FOO -r forced_read.bin\ndoes not work anymore. We have to find an architecturally clean way to\nsolve this.\n\nCorresponding to flashrom svn r1475.\n\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": "5ee52f54242e672e20c85ba73c3deebb8ecdade7",
      "old_mode": 33188,
      "old_path": "bitbang_spi.c",
      "new_id": "51fc9c6063973a56756158c5e70f0c5b85073baf",
      "new_mode": 33188,
      "new_path": "bitbang_spi.c"
    },
    {
      "type": "modify",
      "old_id": "bb8c29f8d383f69b6f512061d1e1d859650a9f64",
      "old_mode": 33188,
      "old_path": "cli_classic.c",
      "new_id": "543b644f447d8dd5f2d3bd23b88e4114e57b7013",
      "new_mode": 33188,
      "new_path": "cli_classic.c"
    },
    {
      "type": "modify",
      "old_id": "29ba1932e78dccf99b41353c0fc91d6fe6788f56",
      "old_mode": 33188,
      "old_path": "flash.h",
      "new_id": "e21a98615be11bb612ccd8ecb0c54cc362ce7fec",
      "new_mode": 33188,
      "new_path": "flash.h"
    },
    {
      "type": "modify",
      "old_id": "f7a17d1398aa921cb0d52f419a1bccc01e32ca68",
      "old_mode": 33188,
      "old_path": "flashrom.c",
      "new_id": "f1a61656aea58cdde132be81c0ab4bdacb6d6c83",
      "new_mode": 33188,
      "new_path": "flashrom.c"
    },
    {
      "type": "modify",
      "old_id": "6bcea45eb9b57b913b0bd1a04882753aa733c327",
      "old_mode": 33188,
      "old_path": "ichspi.c",
      "new_id": "163ecf1d21804e41e5dd76a4d3c3b7988534f164",
      "new_mode": 33188,
      "new_path": "ichspi.c"
    },
    {
      "type": "modify",
      "old_id": "d2c31bef56d1d70817e8b73ed15e2da79194f987",
      "old_mode": 33188,
      "old_path": "mcp6x_spi.c",
      "new_id": "23f39a5331a8306b22f2e933c255c6af64010888",
      "new_mode": 33188,
      "new_path": "mcp6x_spi.c"
    },
    {
      "type": "modify",
      "old_id": "aacd68c72d60b4371d9c297ea693037e37aa1010",
      "old_mode": 33188,
      "old_path": "nicintel_spi.c",
      "new_id": "f9432eca0902e010fe5294555774d15841769bde",
      "new_mode": 33188,
      "new_path": "nicintel_spi.c"
    },
    {
      "type": "modify",
      "old_id": "dbaa57a0edc92af3b0749da7b0f0e1b940df556c",
      "old_mode": 33188,
      "old_path": "ogp_spi.c",
      "new_id": "812420c5f3b3f2b20f8652202a5eb739ad96e5c8",
      "new_mode": 33188,
      "new_path": "ogp_spi.c"
    },
    {
      "type": "modify",
      "old_id": "43ddb07ef67de2e5f60df593501a4a1afad2b4d5",
      "old_mode": 33188,
      "old_path": "opaque.c",
      "new_id": "6acaa63552c7d5eb33371fd995fc6d2864294b76",
      "new_mode": 33188,
      "new_path": "opaque.c"
    },
    {
      "type": "modify",
      "old_id": "2928d68b35a649dfffa66fccb4cc54dccbb87317",
      "old_mode": 33188,
      "old_path": "programmer.c",
      "new_id": "3b4def0dc018a8b8239d091fb9136dc2153c4a66",
      "new_mode": 33188,
      "new_path": "programmer.c"
    },
    {
      "type": "modify",
      "old_id": "9942686b30bca31bebce578e8567ab41ab40968d",
      "old_mode": 33188,
      "old_path": "programmer.h",
      "new_id": "a40d037c4fd3afffbb1f975c181b9809c8eeb739",
      "new_mode": 33188,
      "new_path": "programmer.h"
    },
    {
      "type": "modify",
      "old_id": "417fde99d8e12dd19a619934d337196e29c69d9f",
      "old_mode": 33188,
      "old_path": "rayer_spi.c",
      "new_id": "0011bc0e71737bae8e0accabdf44dd1d28ed2685",
      "new_mode": 33188,
      "new_path": "rayer_spi.c"
    },
    {
      "type": "modify",
      "old_id": "02c83f7bfafca72c404bce95fc1ba87edbcd2f2f",
      "old_mode": 33188,
      "old_path": "spi.c",
      "new_id": "b2d3eb0c7db498cbfb1566016276cae1682f2076",
      "new_mode": 33188,
      "new_path": "spi.c"
    },
    {
      "type": "modify",
      "old_id": "1e3bed953b96e913d68b645cfed6f0f487fac87c",
      "old_mode": 33188,
      "old_path": "spi25.c",
      "new_id": "3ce7f08f2a15450a39e86814b7da25035e73ad04",
      "new_mode": 33188,
      "new_path": "spi25.c"
    }
  ]
}
