Re: "i2c_hid: Could not register for interrupt, irq = -1" on Thinkpad Tablet 10

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

 



On Mon, Feb 02, 2015 at 11:32:19PM +0800, Sébastien Bourdeauducq wrote:
> On 02/02/2015 09:48 PM, Mika Westerberg wrote:
> > On Mon, Feb 02, 2015 at 09:19:51PM +0800, Sebastien Bourdeauducq wrote:
> >> With this computer nothing is normal. Every single component except the CPU,
> >> display and USB has major issues under Linux.
> > 
> > We need to get one here then. Can you point me to the exact model?
> 
> That's a Lenovo Thinkpad Tablet 10, P/N 20C3001VHH. What would be the
> plan for you to get one?

Thanks.

We've been purchasing these problematic devices from time to time and
then trying to enable what we can in the mainline kernel. I'll ask my
boss if I can order one of these as well.

> > Since it has 20k internal pull-up configured, I'm guessing something
> > (the digitizer) drives it low like it still has something to report. Do
> > you see in the dmesg if the i2c-hid.c is able to read reports from the
> > device?
> 
> When I made the interrupt falling edge sensitive, i2c-hid was able to
> read the first report as I could move the mouse cursor once using the
> stylus.
> 
> A possible scenario is:
> 1) the digitizer is holding the interrupt line low after booting
> 2) enumerating or otherwise initializing the digitizer causes it to
> release the interrupt line
> 3) using the stylus queues several reports in the device and it asserts
> the interrupt line again. However, with the interrupt configured as edge
> sensitive, only the first of those reports are retrieved and subsequent
> ones are lost, with the interrupt line stuck.

That seems plausible explanation.

> Maybe the interrupt should be level sensitive and enabled only after
> certain parts of the device initialization have taken place.

The device should respond to reset by asserting an interrupt. You could
try so that you only enable the interrupt in i2c_hid_parse() right
before i2c_hid_hwreset() is called.
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[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