1. 22 7月, 2013 2 次提交
    • N
      HID: hid-logitech-dj: querying_devices was never set · 407a2c2a
      Nestor Lopez Casado 提交于
      Set querying_devices flag to true when we start the enumeration
      process.
      
      This was missing from the original patch. It never produced
      undesirable effects as it is highly improbable to have a second
      enumeration triggered while a first one was still in progress.
      Signed-off-by: NNestor Lopez Casado <nlopezcasad@logitech.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      407a2c2a
    • N
      HID: Revert "Revert "HID: Fix logitech-dj: missing Unifying device issue"" · c63e0e37
      Nestor Lopez Casado 提交于
      This reverts commit 8af6c088.
      
      This patch re-adds the workaround introduced by 59626408
      which was reverted by 8af6c088.
      
      The original patch 596264 was needed to overcome a situation where
      the hid-core would drop incoming reports while probe() was being
      executed.
      
      This issue was solved by c849a614 which added
      hid_device_io_start() and hid_device_io_stop() that enable a specific
      hid driver to opt-in for input reports while its probe() is being
      executed.
      
      Commit a9dd22b7 modified hid-logitech-dj so as to use the
      functionality added to hid-core. Having done that, workaround 596264
      was no longer necessary and was reverted by 8af6c088.
      
      We now encounter a different problem that ends up 'again' thwarting
      the Unifying receiver enumeration. The problem is time and usb controller
      dependent. Ocasionally the reports sent to the usb receiver to start
      the paired devices enumeration fail with -EPIPE and the receiver never
      gets to enumerate the paired devices.
      
      With dcd9006b the problem was "hidden" as the call to the usb
      driver became asynchronous and none was catching the error from the
      failing URB.
      
      As the root cause for this failing SET_REPORT is not understood yet,
      -possibly a race on the usb controller drivers or a problem with the
      Unifying receiver- reintroducing this workaround solves the problem.
      
      Overall what this workaround does is: If an input report from an
      unknown device is received, then a (re)enumeration is performed.
      
      related bug:
      https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1194649Signed-off-by: NNestor Lopez Casado <nlopezcasad@logitech.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      c63e0e37
  2. 04 7月, 2013 38 次提交