Thread (13 messages) 13 messages, 5 authors, 2012-06-19

Re: [RFC/PATCH] Revert "Input: wacom - add 0xE5 (MT device) support"

From: Chris Bagwell <hidden>
Date: 2012-06-17 00:43:59

On Sat, Jun 16, 2012 at 5:25 PM, Jonathan Nieder [off-list ref] wrote:
Hi Ping,

Ping Cheng wrote:
quoted
Here is an update on my testing (for hardware, I have to test to be
sure). The result shows driver in upstream and 3.2.20 both work with
TPC2FG.
Again, thanks much for this.

Nils (cc-ed) tested Linus's "master" branch (3.5-rc2+) this morning.
The outcome:

| I built the kernel from the git repository as you described. The tablet
| does not work.
|
| lsusb -t gives:
| Port 5: Dev 5, If 0, Class=HID, Driver=, 12M
|
| The dmesg output is attached. The two input files mentioned in this
| file, which are related to the wacom tablet, are not there after
| booting.

Logs at [1].

For comparison, v3.4.2 works fine.  v3.4.2 plus some unrelated
Intuous5 support patches (9fee619505bd + f860e581fd47 + 9b5b95dd516a +
ae584ca47328) also works fine.

Nils also tested v3.4.2 plus the following patch.

 f393ee2b814e Input: wacom - retrieve maximum number of touch points
              from the HID usage table when it is supported

The exact patch used is at [2].  That produced:

| Linux video capture interface: v2.00
| ------------[ cut here ]------------
| kernel BUG at mm/slab.c:505!
| invalid opcode: 0000 [#1] SMP
[...]
| Pid: 579, comm: modprobe Not tainted 3.4.2-amd64 #1 LENOVO 42992QG/42992QG
[...]
| Call Trace:
|  [<ffffffff810ef84e>] ? kfree+0x50/0x6c
|  [<ffffffffa04029cd>] ? wacom_probe+0x52c/0x957 [wacom]
|  [<ffffffffa006866b>] ? usb_probe_interface+0xf2/0x15d [usbcore]

which is "BUG_ON(!PageSlab(page))" in page_get_cache() and represents
a free of an invalid pointer.

Full log at [3].

Known problem?  Any ideas for tracking it down?

Thanks again and hope that helps,
Jonathan

[1] http://bugs.debian.org/677164#87
[2] http://bugs.debian.org/677164#50
[3] http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=77;filename=dmesg_0001;att=1;bug=677164
Its not obvious to me yet why patch [2] would cause the crash in log
[1].  The only reason I see for wacom_probe() to be calling kfree() is
in error case were its trying to unload the interface.  Since the
dmesg shows Pen loading, this is most likely crashing while processing
the Finger/touch interface.

That makes some sense because patch [2] adds logic that should only be
invoked on the touch interface.

Can you "rmmod wacom" and this run "lsusb -vvv" and email me directly
or post to debian bug report the section for Wacom?  I'd like to look
at HID report for MAXCONTACTS and other items for touch interface.  In
this part of patch [2]:

+			case HID_USAGE_CONTACTMAX:
+				wacom_retrieve_report_data(intf, features);
+				i++;
+				break;

that i++ may not be needed and may cause it to ignore an important
piece of data on this 0xE6 device.

Thats my only guess right now.  From here, you may need to sprinkle
the wacom_probe() function with a bunch of printk()'s to see exactly
which part is failing and requesting to jump to "fail1:" label.

Chris
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help