)]}'
{
  "log": [
    {
      "commit": "03951e2b1d17d00293a575a443021f5bbcda46cb",
      "tree": "b28e2fe31efe3dee2ca38c64a3940952f17e02c7",
      "parents": [
        "ccd8749d4cc2cd926fa37b78bf905d210e65dcf2"
      ],
      "author": {
        "name": "David Herrmann",
        "email": "dh.herrmann@googlemail.com",
        "time": "Sun Jun 10 15:16:25 2012 +0200"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Sep 05 22:35:58 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"
    },
    {
      "commit": "ccd8749d4cc2cd926fa37b78bf905d210e65dcf2",
      "tree": "82f4a81d85cdc11d35a62be22504ebf35fea4bf0",
      "parents": [
        "fd2076e07fcaa909b74593998d14814aec65acb4"
      ],
      "author": {
        "name": "David Herrmann",
        "email": "dh.herrmann@googlemail.com",
        "time": "Sun Jun 10 15:16:24 2012 +0200"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Sep 05 22:35:48 2012 -0700"
      },
      "message": "HID: uhid: forward raw output reports to user-space\n\nSome drivers that use non-standard HID features require raw output reports\nsent to the device. We now forward these requests directly to user-space\nso the transport-level driver can correctly send it to the device or\nhandle it correspondingly.\n\nThere is no way to signal back whether the transmission was successful,\nmoreover, there might be lots of messages coming out from the driver\nflushing the output-queue. However, there is currently no driver that\ncauses this so we are safe. If some drivers need to transmit lots of data\nthis way, we need a method to synchronize this and can implement another\nUHID_OUTPUT_SYNC event.\n\nSigned-off-by: David Herrmann \u003cdh.herrmann@googlemail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "fd2076e07fcaa909b74593998d14814aec65acb4",
      "tree": "074436c9ba6bd727f8d63a56e75e1fe26f16d8ba",
      "parents": [
        "8fba798ed01778c5f1e82153ae6ecc0172bc1ac2"
      ],
      "author": {
        "name": "David Herrmann",
        "email": "dh.herrmann@googlemail.com",
        "time": "Sun Jun 10 15:16:23 2012 +0200"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Sep 05 22:35:40 2012 -0700"
      },
      "message": "HID: uhid: forward output request to user-space\n\nIf the hid-driver wants to send standardized data to the device it uses a\nlinux input_event. We forward this to the user-space transport-level\ndriver so they can perform the requested action on the device.\n\nSigned-off-by: David Herrmann \u003cdh.herrmann@googlemail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "8fba798ed01778c5f1e82153ae6ecc0172bc1ac2",
      "tree": "cefad327cfaa19b8cd229ad3cf00c1d1053004b4",
      "parents": [
        "d11acf20aad515a8097fac17afced8278a2ea9dd"
      ],
      "author": {
        "name": "David Herrmann",
        "email": "dh.herrmann@googlemail.com",
        "time": "Sun Jun 10 15:16:22 2012 +0200"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Sep 05 22:34:49 2012 -0700"
      },
      "message": "HID: uhid: forward open/close events to user-space\n\nHID core notifies us with *_open/*_close callbacks when there is an actual\nuser of our device. We forward these to user-space so they can react on\nthis. This allows user-space to skip I/O unless they receive an OPEN\nevent. When they receive a CLOSE event they can stop I/O again to save\nenergy.\n\nSigned-off-by: David Herrmann \u003cdh.herrmann@googlemail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "d11acf20aad515a8097fac17afced8278a2ea9dd",
      "tree": "f381b0a453dbf9e75aa2e5fcc3210763cb47afc0",
      "parents": [
        "978bc394f7b917923cb4caa13b25cadcbf46330f"
      ],
      "author": {
        "name": "David Herrmann",
        "email": "dh.herrmann@googlemail.com",
        "time": "Sun Jun 10 15:16:21 2012 +0200"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Sep 05 22:34:39 2012 -0700"
      },
      "message": "HID: uhid: add UHID_START and UHID_STOP events\n\nWe send UHID_START and UHID_STOP events to user-space when the HID core\nstarts/stops the device. This notifies user-space about driver readiness\nand data-I/O can start now.\n\nThis directly forwards the callbacks from hid-core to user-space.\n\nSigned-off-by: David Herrmann \u003cdh.herrmann@googlemail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "dfa8d986d2a6b02e5499215360f860a383c7b209",
      "tree": "45161c9ab8306d6c4630e1930732516a21bdeeb7",
      "parents": [
        "8a850b92f5a53524a2b5678ff4dcb8a8d37bea9e"
      ],
      "author": {
        "name": "David Herrmann",
        "email": "dh.herrmann@googlemail.com",
        "time": "Sun Jun 10 15:16:19 2012 +0200"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Sep 05 22:34:26 2012 -0700"
      },
      "message": "HID: uhid: allow feeding input data into uhid devices\n\nThis adds a new event type UHID_INPUT which allows user-space to feed raw\nHID reports into the HID subsystem. We copy the data into kernel memory\nand directly feed it into the HID core.\n\nThere is no error handling of the events couldn\u0027t be parsed so user-space\nshould consider all events successfull unless read() returns an error.\n\nSigned-off-by: David Herrmann \u003cdh.herrmann@googlemail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "8a850b92f5a53524a2b5678ff4dcb8a8d37bea9e",
      "tree": "5652baeecb48d1129964893e66486d14940c12d9",
      "parents": [
        "fd7d6340712fccf60552677395bc5be125da8130"
      ],
      "author": {
        "name": "David Herrmann",
        "email": "dh.herrmann@googlemail.com",
        "time": "Sun Jun 10 15:16:18 2012 +0200"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Sep 05 22:34:20 2012 -0700"
      },
      "message": "HID: uhid: add UHID_CREATE and UHID_DESTROY events\n\nUHID_CREATE and UHID_DESTROY are used to create and destroy a device on an\nopen uhid char-device. Internally, we allocate and register an HID device\nwith the HID core and immediately start the device. From now on events may\nbe received or sent to the device.\n\nThe UHID_CREATE event has a payload similar to the data used by\nBluetooth-HIDP when creating a new connection.\n\nSigned-off-by: David Herrmann \u003cdh.herrmann@googlemail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "0f66301e5141c1b760b8a69265460d9c024cd3d2",
      "tree": "9cf18f820862394ca95dce2d4f6d25e816100769",
      "parents": [
        "11c4b3e44349472b2e0085cce3cbdac5e800cd6c"
      ],
      "author": {
        "name": "David Herrmann",
        "email": "dh.herrmann@googlemail.com",
        "time": "Sun Jun 10 15:16:14 2012 +0200"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Sep 05 22:33:47 2012 -0700"
      },
      "message": "HID: uhid: add internal message buffer\n\nWhen receiving messages from the HID subsystem, we need to process them\nand store them in an internal buffer so user-space can read() on the char\ndevice to retrieve the messages.\n\nThis adds a static buffer for 32 messages to each uhid device. Each\nmessage is dynamically allocated so the uhid_device structure does not get\ntoo big.\n\nuhid_queue() adds a message to the buffer. If the buffer is full, the\nmessage is discarded. uhid_queue_event() is an helper for messages without\npayload.\n\nThis also adds a public header: uhid.h. It contains the declarations for\nthe user-space API. It is built around \"struct uhid_event\" which contains\na type field which specifies the event type and each event can then add a\nvariable-length payload. For now, there is only a dummy event but later\npatches will add new event types and payloads.\n\nSigned-off-by: David Herrmann \u003cdh.herrmann@googlemail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    }
  ]
}
