Merge branch 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jikos/hid
authorLinus Torvalds <torvalds@woody.linux-foundation.org>
Fri, 11 May 2007 16:56:05 +0000 (09:56 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Fri, 11 May 2007 16:56:05 +0000 (09:56 -0700)
* 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jikos/hid:
  USB HID: hiddev - fix race between hiddev_send_event() and hiddev_release()
  HID: add hooks for getkeycode() and setkeycode() methods
  HID: switch to using input_dev->dev.parent
  USB HID: Logitech wheel 0x046d/0xc294 needs HID_QUIRK_NOGET quirk
  USB HID: usb_buffer_free() cleanup
  USB HID: report descriptor of Cypress USB barcode readers needs fixup
  Bluetooth HID: HIDP - don't initialize force feedback
  USB HID: update CONFIG_USB_HIDINPUT_POWERBOOK description
  HID: add input mappings for non-working keys on Logitech S510 remote

1  2 
net/bluetooth/hidp/core.c

index 0ea40ab4dbae2f1dfd5da97fa84547850b3c84f8,3e77e8102e086b20f58a4e3fcf8392eed6cb7403..ceadfcf457c1d6346cf839cf0922d1d57f2a5e91
@@@ -174,7 -174,7 +174,7 @@@ static inline int hidp_queue_event(stru
  
  static int hidp_hidinput_event(struct input_dev *dev, unsigned int type, unsigned int code, int value)
  {
 -      struct hid_device *hid = dev->private;
 +      struct hid_device *hid = input_get_drvdata(dev);
        struct hidp_session *session = hid->driver_data;
  
        return hidp_queue_event(session, dev, type, code, value);
  
  static int hidp_input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value)
  {
 -      struct hidp_session *session = dev->private;
 +      struct hidp_session *session = input_get_drvdata(dev);
  
        return hidp_queue_event(session, dev, type, code, value);
  }
@@@ -630,7 -630,7 +630,7 @@@ static inline void hidp_setup_input(str
        struct input_dev *input = session->input;
        int i;
  
 -      input->private = session;
 +      input_set_drvdata(input, session);
  
        input->name = "Bluetooth HID Boot Protocol Device";
  
                input->relbit[0] |= BIT(REL_WHEEL);
        }
  
 -      input->cdev.dev = hidp_get_device(session);
 +      input->dev.parent = hidp_get_device(session);
  
        input->event = hidp_input_event;
  
@@@ -737,10 -737,8 +737,8 @@@ static inline void hidp_setup_hid(struc
        list_for_each_entry(report, &hid->report_enum[HID_FEATURE_REPORT].report_list, list)
                hidp_send_report(session, report);
  
-       if (hidinput_connect(hid) == 0) {
+       if (hidinput_connect(hid) == 0)
                hid->claimed |= HID_CLAIMED_INPUT;
-               hid_ff_init(hid);
-       }
  }
  
  int hidp_add_connection(struct hidp_connadd_req *req, struct socket *ctrl_sock, struct socket *intr_sock)
@@@ -864,7 -862,7 +862,7 @@@ failed
        if (session->hid)
                hid_free_device(session->hid);
  
 -      kfree(session->input);
 +      input_free_device(session->input);
        kfree(session);
        return err;
  }