)]}'
{
  "commit": "842d678f07439e133e69fc775a848dcd66369446",
  "tree": "c01716fbc4220c1211749772d6a566e6d70701d7",
  "parents": [
    "aa714dd3dd7090e1fa7175f3a32a252b04817261"
  ],
  "author": {
    "name": "Richard Hughes",
    "email": "richard@hughsie.com",
    "time": "Fri Jan 15 09:48:12 2021 +0000"
  },
  "committer": {
    "name": "Nico Huber",
    "email": "nico.h@gmx.de",
    "time": "Wed Mar 27 08:32:15 2024 +0000"
  },
  "message": "libflashrom: Return progress state to the library user\n\nProjects using libflashrom like fwupd expect the user to wait for the\noperation to complete. To avoid the user thinking the process has\n\"hung\" or \"got stuck\" report back the progress complete of the erase,\nwrite and read operations.\n\nAdd a new --progress flag to the CLI to report progress of operations.\n\nInclude a test for the dummy spi25 device.\n\nTested: ./test_build.sh; ./flashrom -p lspcon_i2c_spi:bus\u003d7 -r /dev/null --progress\n\nflashrom-stable:\n* Closer to original libflashrom API.\n* Split update_progress() into progress_start/_set/_add/_finish:\n  Simplifies progress calls scattered through the code base. We let\n  the core code in `flashprog.c` handle the total progress. Only API\n  is flashprog_progress_add().  Erase progress is completely handled\n  in `flashprog.c`. Fine grained read/write progress can be reported\n  at the chip/programmer level.\n* Add calls to all chip read/write paths and opaque programmers\n  except for read_memmapped() (which is handled in follow ups).\n* At least one wrinkle left: Erasing unaligned regions will slightly\n  overshoot total progress.\n\nChange-Id: I7197572bb7f19e3bdb2bde855d70a0f50fd3854c\nSigned-off-by: Richard Hughes \u003crichard@hughsie.com\u003e\nSigned-off-by: Daniel Campello \u003ccampello@chromium.org\u003e\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/49643\nOriginal-Reviewed-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nOriginal-Reviewed-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-by: Thomas Heijligen \u003csrc@posteo.de\u003e\nReviewed-on: https://review.sourcearcade.org/c/flashprog/+/74731\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a348347395e33d87950318da66637d6c862dd2c9",
      "old_mode": 33188,
      "old_path": "82802ab.c",
      "new_id": "0e45e3d58977d690bd6986cde0823dbb7f886b46",
      "new_mode": 33188,
      "new_path": "82802ab.c"
    },
    {
      "type": "modify",
      "old_id": "acde996982805ceab530d0023be4ca4c4a4a8e9b",
      "old_mode": 33188,
      "old_path": "at45db.c",
      "new_id": "985d3caa0805d1230142c3a25a0379771989348b",
      "new_mode": 33188,
      "new_path": "at45db.c"
    },
    {
      "type": "modify",
      "old_id": "fede2ca767a62f52eea754e4ec50ad447e74a876",
      "old_mode": 33188,
      "old_path": "cli_classic.c",
      "new_id": "ab5f8b18d9da39035b55362ce241a209669ad142",
      "new_mode": 33188,
      "new_path": "cli_classic.c"
    },
    {
      "type": "modify",
      "old_id": "2108e921cae4492b7988571c524ed2f3b959cea1",
      "old_mode": 33188,
      "old_path": "cli_output.c",
      "new_id": "90743562c3e242137b14677821af963dea4daf39",
      "new_mode": 33188,
      "new_path": "cli_output.c"
    },
    {
      "type": "modify",
      "old_id": "4d6df5c82a42c4e22a9bf4a66532b6eb4a6942aa",
      "old_mode": 33188,
      "old_path": "dediprog.c",
      "new_id": "af9e157a5e2ab6f987189c6284ca8c446473afa4",
      "new_mode": 33188,
      "new_path": "dediprog.c"
    },
    {
      "type": "modify",
      "old_id": "a2219ac6c4262fe2397d94fbabf6a3c92ee589a1",
      "old_mode": 33188,
      "old_path": "edi.c",
      "new_id": "5b4b4c9a19f75fdbf7f43902aa53d58de5872b78",
      "new_mode": 33188,
      "new_path": "edi.c"
    },
    {
      "type": "modify",
      "old_id": "5b019047e931fbe20ed14a02011db934e56b6a23",
      "old_mode": 33188,
      "old_path": "en29lv640b.c",
      "new_id": "2daeef134551f8fc0b0e66c66bbf4d29d9b5ff1e",
      "new_mode": 33188,
      "new_path": "en29lv640b.c"
    },
    {
      "type": "modify",
      "old_id": "a6076fe99db4b15517f6861049de11576a510fdc",
      "old_mode": 33188,
      "old_path": "flashprog.8.tmpl",
      "new_id": "ec6c044af1c5cc821832bf04f52932ed1fb1440f",
      "new_mode": 33188,
      "new_path": "flashprog.8.tmpl"
    },
    {
      "type": "modify",
      "old_id": "c1a1b2fc91178fd0b08ddd703edd26034f5be42d",
      "old_mode": 33188,
      "old_path": "flashprog.c",
      "new_id": "e525f4852a02bee882bd2ec5086b8bd3a98ea165",
      "new_mode": 33188,
      "new_path": "flashprog.c"
    },
    {
      "type": "modify",
      "old_id": "0eb5bf901a7baae4669ccbd91ec2891e3de2f5a4",
      "old_mode": 33188,
      "old_path": "fmap.c",
      "new_id": "0e8dd951b8a4351d5906fc72f64e96d4cc1a8473",
      "new_mode": 33188,
      "new_path": "fmap.c"
    },
    {
      "type": "modify",
      "old_id": "74b4e3e0971da8b83266063a09308fd3a5c9b2eb",
      "old_mode": 33188,
      "old_path": "ichspi.c",
      "new_id": "18f0d3f50e65a52939b3255d7b44be3b1b889a6e",
      "new_mode": 33188,
      "new_path": "ichspi.c"
    },
    {
      "type": "modify",
      "old_id": "db4721903249cc02402f552972d03fd898f3df9f",
      "old_mode": 33188,
      "old_path": "include/flash.h",
      "new_id": "b411f34c620549f3f976ee28950c540ceb8e5ea8",
      "new_mode": 33188,
      "new_path": "include/flash.h"
    },
    {
      "type": "modify",
      "old_id": "9c39f5f1eba941100867750569b7fca849135674",
      "old_mode": 33188,
      "old_path": "include/libflashprog.h",
      "new_id": "40050e311f07c5512fd6dce8b9c567a31ec222a6",
      "new_mode": 33188,
      "new_path": "include/libflashprog.h"
    },
    {
      "type": "modify",
      "old_id": "25e826e2be4da509b926ee55639d0154164f24f9",
      "old_mode": 33188,
      "old_path": "it87spi.c",
      "new_id": "70b1a8fa8cc55dec71072b4a9770b2050f1d3a60",
      "new_mode": 33188,
      "new_path": "it87spi.c"
    },
    {
      "type": "modify",
      "old_id": "a8b734b96bd043f96aaba50b90f2d544ec61fd98",
      "old_mode": 33188,
      "old_path": "jedec.c",
      "new_id": "83eb44bb670710a4e12cb84d6d11d9f249361443",
      "new_mode": 33188,
      "new_path": "jedec.c"
    },
    {
      "type": "modify",
      "old_id": "6c2a9c95a23366a1fcf48b3c8427f68fea370ba8",
      "old_mode": 33188,
      "old_path": "libflashprog.c",
      "new_id": "2b389d12547cc8fdf96ea35379e7320d362183ab",
      "new_mode": 33188,
      "new_path": "libflashprog.c"
    },
    {
      "type": "modify",
      "old_id": "5294d9629d60904fe5cc061b2e919f88266f3b18",
      "old_mode": 33188,
      "old_path": "libflashprog.map",
      "new_id": "9bf8ec042dd657c4386c0c9c78d60f3116cc8caa",
      "new_mode": 33188,
      "new_path": "libflashprog.map"
    },
    {
      "type": "modify",
      "old_id": "cbc971773d54912da84d04c4d43bd7a979054974",
      "old_mode": 33188,
      "old_path": "linux_mtd.c",
      "new_id": "23041d46345ef241199626fd60e5fc4bd2a96845",
      "new_mode": 33188,
      "new_path": "linux_mtd.c"
    },
    {
      "type": "modify",
      "old_id": "ca301e053907f7c1bdae799417f43c5ac058e3a3",
      "old_mode": 33188,
      "old_path": "nicintel_eeprom.c",
      "new_id": "2839e7b38ccd525185c4e169fb826744c8865e1f",
      "new_mode": 33188,
      "new_path": "nicintel_eeprom.c"
    },
    {
      "type": "modify",
      "old_id": "d6c00c23d9bc3ba4dbec3a72e8f1cd454dc6f7c9",
      "old_mode": 33188,
      "old_path": "spi25.c",
      "new_id": "5f427caf3267ce25aec6c656fdafaa30364d10d8",
      "new_mode": 33188,
      "new_path": "spi25.c"
    },
    {
      "type": "modify",
      "old_id": "3da25f127f10df3de1e352810e93c68b827d1650",
      "old_mode": 33188,
      "old_path": "sst28sf040.c",
      "new_id": "fb3fea626d515da1727c1350147ceafb122ef02c",
      "new_mode": 33188,
      "new_path": "sst28sf040.c"
    }
  ]
}
