]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'bluetooth/master'
authorStephen Rothwell <sfr@canb.auug.org.au>
Mon, 5 Aug 2013 01:43:42 +0000 (11:43 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Mon, 5 Aug 2013 01:43:42 +0000 (11:43 +1000)
1  2 
net/bluetooth/hci_core.c
net/bluetooth/hidp/core.c

Simple merge
index d38ab152700698baf92f3e7dc128495f3beca713,13863de433a4f2bd6c96ce67716163f00cff2a1a..bdc35a7a7feeaf4ac7a918547e82d5d19a7ef537
@@@ -236,13 -235,34 +236,38 @@@ static int hidp_send_report(struct hidp
        hid_output_report(report, buf);
        hdr = HIDP_TRANS_DATA | HIDP_DATA_RTYPE_OUPUT;
  
 -      return hidp_send_intr_message(session, hdr, buf, rsize);
 +      rsize = ((report->size - 1) >> 3) + 1 + (report->id > 0);
 +      ret = hidp_send_intr_message(session, hdr, buf, rsize);
 +
 +      kfree(buf);
 +      return ret;
  }
  
+ static int hidp_hidinput_event(struct input_dev *dev, unsigned int type,
+                              unsigned int code, int value)
+ {
+       struct hid_device *hid = input_get_drvdata(dev);
+       struct hidp_session *session = hid->driver_data;
+       struct hid_field *field;
+       int offset;
+       BT_DBG("session %p type %d code %d value %d",
+              session, type, code, value);
+       if (type != EV_LED)
+               return -1;
+       offset = hidinput_find_field(hid, type, code, &field);
+       if (offset == -1) {
+               hid_warn(dev, "event field not found\n");
+               return -1;
+       }
+       hid_set_field(field, offset, value);
+       return hidp_send_report(session, field->report);
+ }
  static int hidp_get_raw_report(struct hid_device *hid,
                unsigned char report_number,
                unsigned char *data, size_t count,