[Bug 501331] New: There is a bug/conflict between mouse and touch screen
http://bugzilla.novell.com/show_bug.cgi?id=501331 Summary: There is a bug/conflict between mouse and touch screen Classification: openSUSE Product: openSUSE 11.0 Version: Final Platform: x86 OS/Version: openSUSE 11.0 Status: NEW Severity: Normal Priority: P5 - None Component: Kernel AssignedTo: bnc-team-screening@forge.provo.novell.com ReportedBy: william@eeti.com QAContact: qa@suse.de Found By: --- Created an attachment (id=290383) --> (http://bugzilla.novell.com/attachment.cgi?id=290383) Screenshot of conflict User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1) Since the Linux kernel recognizes eGalaxTouch USB touchscreen as a mouse device. There are two device drivers handle touchscreen at the same time under many Linux distributions, such as openSuSE, Ubuntu and so on. One is our touchscreen driver and other is inbuilt mouse driver. Unfortunely, the mouse status will be confused when touching touchscreen. Please refer to attahced picture for details. In order to fix this conflict between mouse and touchscreen. We would like to suggest that blacklist our product during mouse recognition. Could you add our USB VID: 0eef and PID: 0001 into blacklist in mousedev.c? For example: static struct input_device_id mousedev_blacklist[] = { { .flags = INPUT_DEVICE_ID_MATCH_VENDOR/*EVBIT*/ | INPUT_DEVICE_ID_MATCH_PRODUCT/*KEYBIT | INPUT_DEVICE_ID_MATCH_ABSBIT*/, /*.evbit = { BIT(EV_KEY) | BIT(EV_ABS) },*/ .evbit = { BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS) }, /*.keybit = { [LONG(BTN_TOUCH)] = BIT(BTN_TOUCH) },*/ .keybit = { [BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH) }, /*.absbit = { BIT_MASK(ABS_X) | BIT_MASK(ABS_Y) },*/ .vendor = 0x0eef, .product = 0x0001, }, /* Avoid itouchpads, touchscreens and tablets */ { }, /* Terminating entry */ }; static struct input_handler mousedev_handler = { .event = mousedev_event, .connect = mousedev_connect, .disconnect = mousedev_disconnect, .fops = &mousedev_fops, .minor = MOUSEDEV_MINOR_BASE, .name = "mousedev", .id_table = mousedev_ids, .blacklist = mousedev_blacklist, }; In addition, is it possible if only check VID(Ignore PID) and then blacklist it? It is deeply appreciated if you can help us to solve this conflict. Reproducible: Always Steps to Reproduce: 1. Connect eGalaxTouch USB touchscreen to PC 2. Download and install its Linux driver and reboot 3. After booting, drag on touchscreen and you will find many rectangles as attahchment and mouse status will be confused. Actual Results: 1. Drag on touchscreen, many rectangles survive on the desktop. 2. Mouse status is confused even if you use external mouse. Expected Results: 1. Do not read touchscreen data through "/dev/input/mice". 2. Do not recognize touchscreen as a mouse during mouse recognition. Please see attahced picture and you will find the touchscreen is recognized as a mouse devivce. This information could be found in /proc/bus/input/devices file, thanks. -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
http://bugzilla.novell.com/show_bug.cgi?id=501331
Anthony Wong
http://bugzilla.novell.com/show_bug.cgi?id=501331
User gregkh@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=501331#c1
Greg Kroah-Hartman
http://bugzilla.novell.com/show_bug.cgi?id=501331
User william@eeti.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=501331#c2
William Chang
Does this happen on opensuse 11.1?
Sorry, we have not tested this problem on opensuse 11.1 yet.
Also, please point us at the driver you are using here.
Please find the driver by the following link: http://home.eeti.com.tw/web20/eGalaxTouchDriver/linuxDriver.htm -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
http://bugzilla.novell.com/show_bug.cgi?id=501331
User gregkh@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=501331#c3
Greg Kroah-Hartman
http://bugzilla.novell.com/show_bug.cgi?id=501331
User william@eeti.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=501331#c4
--- Comment #4 from William Chang
We do not support adding new things to opensuse 11.0 anymore, sorry. Your kernel driver looks to be licensed under the GPL, do you object to me adding it to the main kernel.org source tree for inclusion with all other drivers? Also, are you sure you can't just use the normal HID driver with this device? The device is reporting to the operating system that it is a HID device, why would it lie?
That would be a story. Basically, USB Touchscreen device is HID device. Normally, eGalaxTouch USB HID report descriptor contains 2 top collections at least according to Microsoft HID touch digitizer guideline. It contains one Touch digitizer top collection and one dummy mouse top collection. By default, the USB touchscreen device reports with "Touch digitizer collection report ID". For example, the report ID for dummy mouse top collection is REPORTID_MOUSE and report ID for touchscreen top collection is REPORTID_TOUCH. By default, eGalaxTouch device report for "touch digitizer" top collection with report ID REPORTID_TOUCH. However, in Linux kernel system, usbhid kernel module is loaded for such device, kernel mousedev will connect it and process any data input from this USB device no matter which Report ID the touchscreen device reports. Which means it handle and process the report data not only for "mouse top collection" with Report ID REPORTID_MOUSE but also for "touch digitizer top collection" with report ID REPORTID_TOUCH. Therefore, such behavior cause serious bug because mousedev.c may not and should not understand how to handle the data from other top collection since it is not an universal driver for all kinds of input device. Actually, I think this should be because a serious bug in usbhid and other input device architecture. But, we think the simplest workaround method is "blacklist" it. -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
http://bugzilla.novell.com/show_bug.cgi?id=501331
User gregkh@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=501331#c5
--- Comment #5 from Greg Kroah-Hartman
http://bugzilla.novell.com/show_bug.cgi?id=501331
User aliao@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=501331#c6
armani liao
Does this happen on opensuse 11.1?
Also, please point us at the driver you are using here.
Dear Greg, Due to EETI is our OEM partner for ASUS project, so I ask him to provide the bug here. And I'd sent the SLED11 to him in our last meeting with them in this week. He'll try it on SLED11 and then report the status here. Now, as this question, there are 2 different firmware with the same device (EETI's touchscreen). And as the different firmware, the response from firmware will conduct to two different touchscreen model for linux kernel. The first one is HID touchscreen and another one is Non-HID. For the HID touchscreen, they will use usbhid.ko to enable it in kernel layer, and link with their X's driver provide by their packages. And another Non-HID touchscreen will use usbtouchscreen.ko to enable it in the kernel layer. For the SLED11, William will feedback the status to here, then I'd like to change the Platform we discussed to SLED11. Let's make sure SLED 11 will work well here first. -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
http://bugzilla.novell.com/show_bug.cgi?id=501331
User aliao@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=501331#c7
--- Comment #7 from armani liao
We do not support adding new things to opensuse 11.0 anymore, sorry.
Your kernel driver looks to be licensed under the GPL, do you object to me adding it to the main kernel.org source tree for inclusion with all other drivers?
Also, are you sure you can't just use the normal HID driver with this device? The device is reporting to the operating system that it is a HID device, why would it lie?
Greg, Per talk with William, he'd tried to describe the detail to me, maybe the following description is helpful to understand the issue they met. 1. When usbhid.ko is loaded into kernel, it will generate a /dev/input/usbhidx device to receive the event from X's touchscreen driver which come from user's finger. 2. And at the same time user's finger will also trigger an event to /dev/input/mice by mouse's driver. 3. Due to the event send to /dev/input/mice is not correct packet format for mouse (that's touchscreen HID format), so it will make some error event to mouse device. So that the cursor in the X window's panel will be confused for it's location. 4. So they want to disable by the blacklist way from kernel, then they disable the event which sent to /dev/input/mice to avoid the weird situation, although they report to kernel they are a real point device. 5. Eventually, this way may keep the touchscreen works well with mouse together. As William's comment, this narrative apply to any touchscreen driver. So commit to upstream is also a requirement to do that. That's what I know, and if there is any update, William will comment here. -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
http://bugzilla.novell.com/show_bug.cgi?id=501331
User gregkh@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=501331#c8
Greg Kroah-Hartman
http://bugzilla.novell.com/show_bug.cgi?id=501331
Leon Wang
http://bugzilla.novell.com/show_bug.cgi?id=501331
User william@eeti.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=501331#c9
--- Comment #9 from William Chang
http://bugzilla.novell.com/show_bug.cgi?id=501331
User william@eeti.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=501331#c10
William Chang
If this is really a SLE11 issue, please change the bug to reflect it, openSUSE 11.0 bugs do not get worked on much, if at all anymore :)
Sorry for the wait. We have already set up SuSE11 desktop system and checked this issue on it. Unfortunately, the behavior is the same as openSuSE 11 system. I updated/uploaded a picture for your reference.
So, either way we don't need the additional usb driver to be added to our kernel, as either the usbhid or usbtouchscreen driver will be used, right?
Yes.
If so, can someone provide the needed blacklist/enable patches for just those two drivers so that I can review them?
Could you tell us how to do it?
Do we have one of these machines around to test with to verify that we get this working properly?
Dear Armani, can you help to prepare the machine for Greg. -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
(In reply to comment #8)
If this is really a SLE11 issue, please change the bug to reflect it, openSUSE 11.0 bugs do not get worked on much, if at all anymore :)
Sorry for the wait.
We have already set up SuSE11 desktop system and checked this issue on it. Unfortunately, the behavior is the same as openSuSE 11 system. I updated/uploaded a picture for your reference.
So, either way we don't need the additional usb driver to be added to our kernel, as either the usbhid or usbtouchscreen driver will be used, right?
Yes.
If so, can someone provide the needed blacklist/enable patches for just those two drivers so that I can review them?
Could you tell us how to do it?
Do we have one of these machines around to test with to verify that we get this working properly?
Dear Armani, can you help to prepare the machine for Greg. Sure. But we just got only one from our partner, I'll ask this partner to
http://bugzilla.novell.com/show_bug.cgi?id=501331
User aliao@novell.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=501331#c11
--- Comment #11 from armani liao
participants (1)
-
bugzilla_noreply@novell.com