)]}'
{
  "commit": "a5f912f0745712817ff0ec6744b8b205928c50d0",
  "tree": "11d79e9c13347423b92b9bebc4e940d5da8c34de",
  "parents": [
    "b7f6e60851637f183f11a20b80690d105ef3f7b6"
  ],
  "author": {
    "name": "David Herrmann",
    "email": "dh.herrmann@googlemail.com",
    "time": "Sun Jun 10 15:16:25 2012 +0200"
  },
  "committer": {
    "name": "andrew.boren",
    "email": "andrew.boren@gmail.com",
    "time": "Sun Dec 30 13:54:53 2012 -0700"
  },
  "message": "HID: uhid: implement feature requests\n\nHID standard allows sending a feature request to the device which is\nanswered by an HID report. uhid implements this by sending a UHID_FEATURE\nevent to user-space which then must answer with UHID_FEATURE_ANSWER. If it\ndoesn\u0027t do this in a timely manner, the request is discarded silently.\n\nWe serialize the feature requests, that is, there is always only a single\nactive feature-request sent to user-space, other requests have to wait.\nHIDP and USB-HID do it the same way.\n\nBecause we discard feature-requests silently, we must make sure to match\na response to the corresponding request. We use sequence-IDs for this so\nuser-space must copy the ID from the request into the answer.\nFeature-answers are ignored if they do not contain the same ID as the\ncurrently pending feature request.\n\nInternally, we must make sure that feature-requests are synchronized with\nUHID_DESTROY and close() events. We must not dead-lock when closing the\nHID device, either, so we have to use separate locks.\n\nSigned-off-by: David Herrmann \u003cdh.herrmann@googlemail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "421c492dc8246197c99f6dce7c9a47a7ebf00056",
      "old_mode": 33188,
      "old_path": "drivers/hid/uhid.c",
      "new_id": "ea560bfa033d2a101db20102f104e01368a16eef",
      "new_mode": 33188,
      "new_path": "drivers/hid/uhid.c"
    },
    {
      "type": "modify",
      "old_id": "2c972550a62459a841a00f1242be4d263b177ba9",
      "old_mode": 33188,
      "old_path": "include/linux/uhid.h",
      "new_id": "9c6974f169661d6495069e15018dad33a5b237f5",
      "new_mode": 33188,
      "new_path": "include/linux/uhid.h"
    }
  ]
}
