1. 07 Jun, 2011 1 commit
    • Tomoki Sekiyama's avatar
      HID: yurex: recognize GeneralKeys wireless presenter as generic HID · 6dc1418e
      Tomoki Sekiyama authored
      Unfortunately, the device seems to have the same Vendor ID and Product ID
      as YUREX leg-shakes sensors, and the commit 6bc235a2 ("USB: add driver
      for Meywa-Denki & Kayac YUREX") added the ID to hid_ignore_list.
      I believe that we can distinguish YUREX and the Wireless Presenter by
      device type.  The patch below makes the driver ignore only YUREX
      (bInterfaceProtocol==0), and recognize Wireless Presenter
      (bInterfaceProtocol is keyboard or mouse) as generic HID.  (I don't have
      the Wireless Presenter, so not yet ested.)
      ** YUREX lsusb information:
      Bus 002 Device 007: ID 0c45:1010 Microdia
      Device Descriptor:
         bLength                18
         bDescriptorType         1
         bcdUSB               1.10
         bDeviceClass            0 (Defined at Interface level)
         bDeviceSubClass         0
         bDeviceProtocol         0
         bMaxPacketSize0         8
         idVendor           0x0c45 Microdia
         idProduct          0x1010
         bcdDevice            0.03
         iManufacturer           1 JESS
         iProduct                2 YUREX
         iSerial                 3 10000269
         bNumConfigurations      1
         Configuration Descriptor:
           bLength                 9
           bDescriptorType         2
           wTotalLength           34
           bNumInterfaces          1
           bConfigurationValue     1
           iConfiguration          0
           bmAttributes         0xa0
             (Bus Powered)
             Remote Wakeup
           MaxPower              100mA
           Interface Descriptor:
             bLength                 9
             bDescriptorType         4
             bInterfaceNumber        0
             bAlternateSetting       0
             bNumEndpoints           1
             bInterfaceClass         3 Human Interface Device
             bInterfaceSubClass      1 Boot Interface Subclass
             bInterfaceProtocol      0 None
             iInterface              0
               HID Device Descriptor:
                 bLength                 9
                 bDescriptorType        33
                 bcdHID               1.10
                 bCountryCode            0 Not supported
                 bNumDescriptors         1
                 bDescriptorType        34 Report
                 wDescriptorLength      31
                Report Descriptors:
                  ** UNAVAILABLE **
             Endpoint Descriptor:
               bLength                 7
               bDescriptorType         5
               bEndpointAddress     0x81  EP 1 IN
               bmAttributes            3
                 Transfer Type            Interrupt
                 Synch Type               None
                 Usage Type               Data
               wMaxPacketSize     0x0008  1x 8 bytes
               bInterval              10
      Device Status:     0x0002
         (Bus Powered)
         Remote Wakeup Enabled
      Addresses https://bugzilla.kernel.org/show_bug.cgi?id=26922Signed-off-by: default avatarTomoki Sekiyama <tomoki.sekiyama@gmail.com>
      Cc: Greg KH <gregkh@suse.de>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Maciej Rutecki <maciej.rutecki@gmail.com>
      Reported-by: default avatarThomas B?chler <thomas@archlinux.org>
      Tested-by: default avatarThomas B?chler <thomas@archlinux.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
  2. 31 Mar, 2011 1 commit
  3. 01 Mar, 2011 1 commit
  4. 11 Feb, 2011 1 commit
  5. 11 Jan, 2011 2 commits
  6. 10 Dec, 2010 1 commit
    • Joe Perches's avatar
      HID: Add and use hid_<level>: dev_<level> equivalents · 4291ee30
      Joe Perches authored
      Neaten current uses of dev_<level> by adding and using
      hid specific hid_<level> macros.
      Convert existing uses of dev_<level> uses to hid_<level>.
      Convert hid-pidff printk uses to hid_<level>.
      Remove err_hid and use hid_err instead.
      Add missing newlines to logging messages where necessary.
      Coalesce format strings.
      Add and use pr_fmt(fmt) KBUILD_MODNAME ": " fmt
      Other miscellaneous changes:
      Add const struct hid_device * argument to hid-core functions
      extract() and implement() so hid_<level> can be used by them.
      Fix bad indentation in hid-core hid_input_field function
      that calls extract() function above.
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
  7. 08 Dec, 2010 1 commit
  8. 21 Sep, 2010 1 commit
  9. 09 Aug, 2010 1 commit
  10. 19 Jul, 2010 1 commit
  11. 27 Apr, 2010 1 commit
  12. 19 Apr, 2010 1 commit
    • Bastien Nocera's avatar
      Bastien Nocera authored
      Add two quirks to make it possible for usbhid module options to
      override whether a device is ignored (HID_QUIRK_NO_IGNORE) and
      whether to connect a hiddev device (HID_QUIRK_HIDDEV_FORCE).
      Passing HID_QUIRK_NO_IGNORE for your device means that it will
      not be ignored by the HID layer, even if present in a blacklist.
      HID_QUIRK_HIDDEV_FORCE will force the creation of a hiddev for that
      device, making it accessible from user-space.
      Tested with an Apple IR Receiver, switching it from using appleir
      to using lirc's macmini driver.
      Signed-off-by: default avatarBastien Nocera <hadess@hadess.net>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
  13. 10 Feb, 2010 1 commit
  14. 03 Feb, 2010 1 commit
    • Jiri Kosina's avatar
      HID: make raw reports possible for both feature and output reports · d4bfa033
      Jiri Kosina authored
      In commit 2da31939 ("Bluetooth: Implement raw output support for HIDP
      layer"), support for Bluetooth hid_output_raw_report was added, but it
      pushes the data to the intr socket instead of the ctrl one. This has been
      fixed by 6bf8268f ("Bluetooth: Use the control channel for raw HID reports")
      Still, it is necessary to distinguish whether the report in question should be
      either FEATURE or OUTPUT. For this, we have to extend the generic HID API,
      so that hid_output_raw_report() callback provides means to specify this
      value so that it can be passed down to lower level hardware drivers (currently
      Bluetooth and USB).
      Based on original patch by Bastien Nocera <hadess@hadess.net>
      Acked-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
  15. 17 Jan, 2010 1 commit
  16. 05 Nov, 2009 1 commit
    • Jiri Kosina's avatar
      HID: fixup quirk for NCR devices · 5b915d9e
      Jiri Kosina authored
      NCR devices are terminally broken by design -- they claim themselves to contain
      proper input applications in their HID report descriptor, but behave very badly
      if treated in standard way.
      According to NCR developers, the devices get confused when queried for reports
      in a standard way, rendering them unusable.
      NCR is shipping application called "RPSL" that can be used to drive these
      devices through hiddev, under the assumption that in-kernel driver doesn't
      perform initial report query.
      If it does, neither in-kernel nor hiddev-based driver can operate with these
      devices any more.
      Introduce a quirk that skips the report query for all NCR devices. The previous
      NOGET quirk was wrong and had been introduced because I misunderstood the nature
      of brokenness of these devices.
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
  17. 17 Sep, 2009 1 commit
  18. 12 Jun, 2009 2 commits
    • Jiri Kosina's avatar
      HID: use debugfs for events/reports dumping · cd667ce2
      Jiri Kosina authored
      This is a followup patch to the one implemeting rdesc representation in debugfs
      rather than being dependent on compile-time CONFIG_HID_DEBUG setting.
      The API of the appropriate formatting functions is slightly modified -- if
      they are passed seq_file pointer, the one-shot output for 'rdesc' file mode
      is used, and therefore the message is formatted into the corresponding seq_file
      Otherwise the called function allocated a new buffer, formats the text into the
      buffer and returns the pointer to it, so that it can be queued into the ring-buffer
      of the processess blocked waiting on input on 'events' file in debugfs.
      'debug' parameter to the 'hid' module is now used solely for the prupose of inetrnal
      driver state debugging (parser, transport, etc).
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    • Jiri Kosina's avatar
      HID: use debugfs for report dumping descriptor · a635f9dd
      Jiri Kosina authored
      It is a little bit inconvenient for people who have some non-standard
      HID hardware (usually violating the HID specification) to have to
      recompile kernel with CONFIG_HID_DEBUG to be able to see kernel's perspective
      of the HID report descriptor and observe the parsed events. Plus the messages
      are then mixed up inconveniently with the rest of the dmesg stuff.
      This patch implements /sys/kernel/debug/hid/<device>/rdesc file, which
      represents the kernel's view of report descriptor (both the raw report
      descriptor data and parsed contents).
      With all the device-specific debug data being available through debugfs, there
      is no need for keeping CONFIG_HID_DEBUG, as the 'debug' parameter to the
      hid module will now only output only driver-specific debugging options, which has
      absolutely minimal memory footprint, just a few error messages and one global
      flag (hid_debug).
      We use the current set of output formatting functions. The ones that need to be
      used both for one-shot rdesc seq_file and also for continuous flow of data
      (individual reports, as being sent by the device) distinguish according to the
      passed seq_file parameter, and if it is NULL, it still output to kernel ringbuffer,
      otherwise the corresponding seq_file is used for output.
      The format of the output is preserved.
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
  19. 20 May, 2009 1 commit
  20. 30 Mar, 2009 2 commits
    • Jiri Slaby's avatar
      HID: remove compat stuff · afa5eb7c
      Jiri Slaby authored
      This removal was scheduled and there is no problem with later
      distros to adapt for the new bus, thanks to aliases.
      module-init-tools map files are deprecated nowadays, so that
      the patch which introduced hid ones into the m-i-t won't be
      accepted and hence there is no reason for leaving compat stuff in.
      Signed-off-by: default avatarJiri Slaby <jirislaby@gmail.com>
      Cc: Jiri Kosina <jkosina@suse.cz>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    • Jiri Kosina's avatar
      HID: bring back possibility to specify vid/pid ignore on module load · 6f4303fb
      Jiri Kosina authored
      When hid quirks were converted to specialized driver, the HID_QUIRK_IGNORE
      has been moved completely, as the hid_ignore_list[] has been moved into the
      generic code.
      However userspace already got used to the possibility that modprobing
      usbhid with
      makes the device ignored by usbhid driver. So keep this quirk flag in place
      for backwards compatibility.
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
  21. 25 Mar, 2009 1 commit
    • Oliver Neukum's avatar
      HID: autosuspend support for USB HID · 0361a28d
      Oliver Neukum authored
      This uses the USB busy mechanism for aggessive autosuspend of USB
      HID devices. It autosuspends all opened devices supporting remote wakeup
      after a timeout unless
      - output is being done to the device
      - a key is being held down (remote wakeup isn't triggered upon key release)
      - LED(s) are lit
      - hiddev is opened
      As in the current driver closed devices will be autosuspended even if they
      don't support remote wakeup.
      The patch is quite large because output to devices is done in hard interrupt
      context meaning a lot a queuing and locking had to be touched. The LED stuff
      has been solved by means of a simple counter. Additions to the generic HID code
      could be avoided. In addition it now covers hidraw. It contains an embryonic
      version of an API to let the generic HID code tell the lower levels which
      capabilities with respect to power management are needed.
      Signed-off-by: default avatarOliver Neukum <oneukum@suse.de>
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
  22. 30 Jan, 2009 1 commit
  23. 03 Jan, 2009 3 commits
  24. 27 Oct, 2008 1 commit
  25. 22 Oct, 2008 1 commit
  26. 14 Oct, 2008 10 commits