Re: hid: egalax 0x0eef:0x0001 no longer detected by hid-multitouch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sebastian,

On Fri, Aug 30, 2013 at 07:59:46PM +0200, Sebastian Dalfuß wrote:
> In 3.6.x the egalax touch panel (Vendor: 0eef, Dev: 0001) worked 
> perfectly well with hid-multitouch, right out of the box. In 3.9 and 
> 3.10 it doesn't; the panel doesn't show up in /proc/bus/input/devices .
> If the module usbtouchscreen is present, 3.9/3.10 wrongly try to use 
> that one (flipped y-axis, wrong scale, get's stuck) instead of 
> hid-multitouch(worked previously perfectly well, no need for 
> calibration, quirks, configuration). If usbtouchscreen isn't present, 
> the panel isn't detected, even if hid-multitouch gets poked with appropriate
> parameters in /sys/module/hid_multitouch/drivers/hid\:hid-multitouch/new_id .
> In an desperate attempt, I manually added the device/vendor id to
> hid-multitouch.c, which didn't yield any improvement. It seems that the hid
> subsystem doesn't even recognize that this device is indeed a hid 
> touchpanel.

That's probably this:

commit 729b814acec20db66fc891b5392cb653ad6598ef
Author: Forest Bond <forest.bond@xxxxxxxxxxxxxxxx>
Date:   Tue Nov 6 13:41:22 2012 -0500

    HID: Ignore D-WAV/eGalax devices handled by usbtouchscreen
    
    Previously, both usbhid and usbtouchscreen would bind to D-WAV devices
    with class HID and protocol None, so they would be claimed by whichever
    driver was loaded first.  Some of these devices do in fact work with
    usbhid, but not all of them do.  OTOH they all work with usbtouchscreen
    as of commit 037a833ed05a86d01ea27a2c32043b86c549be1b ("Input:
    usbtouchscreen - initialize eGalax devices").  So we ignore them in
    usbhid to prevent getting in the way of usbtouchscreen and claiming an
    interface that we may not be able to do anything useful with.
    
    Signed-off-by: Forest Bond <forest.bond@xxxxxxxxxxxxxxxx>
    Signed-off-by: Jiri Kosina <jkosina@xxxxxxx>

The primary issue is that 0eef:0001 has been repeatedly re-used for a wide
variety of devices and as such cannot be meaningfully used on its own to select
a driver.  Some of these devices have class HID and worked fine with
usbtouchscreen.  When usbhid was introduced they stopped working because they
don't actually work with the HID driver.

Historically this is dealt with by submitting a patch that regresses everyone
else's screens but makes yours work better. ;)

So we need to figure out how to handle these devices.  I need to dig out the
screen I have that did not work with the HID driver and test it again.  Might
take some time for me to get to this.

> Is there a way to force hid to take care of that vendor/device-id, as a
> temporary workaround?

For now look at hid_ignore in hid-core.c.  You can probably set
HID_QUIRK_NO_IGNORE to work around the problem.  You'll probably also want to
blacklist usbtouchscreen.

Hope this helps.

Thanks,
Forest
-- 
Forest Bond
http://www.alittletooquiet.net
http://www.rapidrollout.com

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux