)]}'
{
  "commit": "8624e8cfa88ebd17ecf3bfd55c8dc1a799f47573",
  "tree": "f61a16e60f193b5e3f13a377a81d1308b1b4f0ad",
  "parents": [
    "2d62572d1dd0c37eb626fd8faa17b26690f20b15"
  ],
  "author": {
    "name": "Nico Huber",
    "email": "nico.h@gmx.de",
    "time": "Mon Nov 05 21:46:33 2012 +0100"
  },
  "committer": {
    "name": "Nico Huber",
    "email": "nico.h@gmx.de",
    "time": "Thu Jun 22 11:14:15 2017 +0000"
  },
  "message": "udelay: Use clock_gettime() if available and precise\n\nInstead of calibrating our busy loop against a coarse clock, check if\na precise clock is available and loop against that. The former is unre-\nliable by definition on any modern system that may dynamically reclock\nthe processor.\n\nv2: Apparently _POSIX_MONOTONIC_CLOCK being defined only means that\n    the library knows about CLOCK_MONOTONIC. So check for its support\n    at runtime and fall back to CLOCK_REALTIME if it\u0027s missing.\n\nTEST\u003dManually added a 10s loop and compared to real time. Run\n     on Linux RPi3, Linux x86 and my original use case Linux in\n     VirtualBox (Linux host).\n\nChange-Id: I85ad359823875237ada9cd027af3017d62e9a235\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/19391\nReviewed-by: Stefan Reinauer \u003cstefan.reinauer@coreboot.org\u003e\nReviewed-by: Philippe Mathieu-Daudé \u003cf4bug@amsat.org\u003e\nReviewed-by: David Hendricks \u003cdavid.hendricks@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "65026daedb407ca477d9b5cafce77675c8e836f6",
      "old_mode": 33188,
      "old_path": "Makefile",
      "new_id": "8b21431e2d392789a08ad36d99581aecc2f2554d",
      "new_mode": 33188,
      "new_path": "Makefile"
    },
    {
      "type": "modify",
      "old_id": "7c6961d13991f7d66fcd19d59fb5db2a82565fd3",
      "old_mode": 33188,
      "old_path": "udelay.c",
      "new_id": "3a44c165932e771f7c5f14c9e86796f8bf1672dd",
      "new_mode": 33188,
      "new_path": "udelay.c"
    }
  ]
}
