From: Sebastien Bourdeauducq <sb@m-labs.hk>
To: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Cc: linux-input <linux-input@vger.kernel.org>,
Mika Westerberg <mika.westerberg@linux.intel.com>
Subject: Re: "i2c_hid: Could not register for interrupt, irq = -1" on Thinkpad Tablet 10
Date: Sun, 01 Feb 2015 11:27:09 +0800 [thread overview]
Message-ID: <54CD9D0D.20402@m-labs.hk> (raw)
In-Reply-To: <CAN+gG=Gzi-gm1Hxvb1dt8xjLe4d_tBXEruu9HAru0x73dMAMCw@mail.gmail.com>
Hi,
On Sunday, February 01, 2015 04:39 AM, Benjamin Tissoires wrote:
> Mika sent a patch recently which should solve your problem.
> Can you give a try to the following patch?
> https://patchwork.kernel.org/patch/5709961/
With this patch and IRQF_TRIGGER_LOW | IRQF_ONESHOT, I get an interrupt
flood and the kernel disables the interrupt line. I have reverted it to
IRQF_TRIGGER_FALLING | IRQF_ONESHOT, and the i2c_hid initialization
completes successfully.
The next problem is that the tablet has product ID 0x0114 and this is
not recognized by the wacom_wac driver. I have added those entries in it:
static const struct wacom_features wacom_features_0x114 =
{ "Wacom ISDv4 114", 26202, 16325, 255, 0,
TABLETPCE, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
...
#define ANY_DEVICE_WACOM(prod) \
HID_DEVICE(HID_BUS_ANY, HID_GROUP_WACOM, USB_VENDOR_ID_WACOM, prod),\
.driver_data = (kernel_ulong_t)&wacom_features_##prod
...
{ ANY_DEVICE_WACOM(0x114) },
I am just guessing here and copied the existing entry for product ID
0x116. I don't know if those numbers are correct - also, should I have
used the existing USB_DEVICE_WACOM macro instead of defining
ANY_DEVICE_WACOM?
After those changes, I'm able to move the mouse pointer only once (and
to the correct position) using the stylus, after which the digitizer
crashes and becomes inoperable until a reboot. Unloading and reloading
i2c_hid results in a "failed to reset device" message.
I have copied my DSDT entry below.
Thanks,
Sebastien
Device (DIGI)
{
Name (_ADR, Zero) // _ADR: Address
Name (_HID, "WCOM0008") // _HID: Hardware ID
Name (_CID, "PNP0C50") // _CID: Compatible ID
Name (_DDN, "Digitizer") // _DDN: DOS Device Name
Name (_UID, One) // _UID: Unique ID
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Name (RBUF, ResourceTemplate ()
{
I2cSerialBus (0x0009, ControllerInitiated, 0x00061A80,
AddressingMode7Bit, "\\_SB.I2C3",
0x00, ResourceConsumer, ,
)
GpioInt (Level, ActiveLow, Exclusive, PullUp, 0x0000,
"\\_SB.GPO0", 0x00, ResourceConsumer, ,
)
{ // Pin list
0x0038
}
})
Return (RBUF)
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (LEqual (And (COMP, 0x04), 0x04))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
{
Store ("Method _DSM begin", Debug)
While (One)
{
Name (_T_0, Buffer (One) // _T_x: Emitted by ASL Compiler
{
0x00
})
CopyObject (ToBuffer (Arg0), _T_0)
If (LEqual (_T_0, Buffer (0x10)
{
/* 0000 */ 0xF7, 0xF6, 0xDF, 0x3C, 0x67,
0x42, 0x55, 0x45,
/* 0008 */ 0xAD, 0x05, 0xB3, 0x0A, 0x3D,
0x89, 0x38, 0xDE
}))
{
While (One)
{
Name (_T_1, Zero) // _T_x: Emitted by ASL Compiler
Store (ToInteger (Arg2), _T_1)
If (LEqual (_T_1, Zero))
{
While (One)
{
Name (_T_2, Zero) // _T_x: Emitted by ASL
Compiler
Store (ToInteger (Arg1), _T_2)
If (LEqual (_T_2, One))
{
Store ("Method _DSM Function Query", Debug)
Return (Buffer (One)
{
0x03
})
}
Else
{
Return (Buffer (One)
{
0x00
})
}
Break
}
}
Else
{
If (LEqual (_T_1, One))
{
Store ("Method _DSM Function HID", Debug)
Return (One)
}
Else
{
Return (Zero)
}
}
Break
}
}
Else
{
Return (Buffer (One)
{
0x00
})
}
Break
}
}
}
next prev parent reply other threads:[~2015-02-01 3:27 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-31 15:01 "i2c_hid: Could not register for interrupt, irq = -1" on Thinkpad Tablet 10 Sebastien Bourdeauducq
2015-01-31 20:39 ` Benjamin Tissoires
2015-02-01 3:27 ` Sebastien Bourdeauducq [this message]
2015-02-02 10:00 ` Mika Westerberg
2015-02-02 13:19 ` Sebastien Bourdeauducq
2015-02-02 13:48 ` Mika Westerberg
2015-02-02 15:32 ` Sébastien Bourdeauducq
2015-02-02 15:42 ` Benjamin Tissoires
2015-02-02 15:55 ` Sébastien Bourdeauducq
2015-02-02 15:57 ` Mika Westerberg
2015-02-03 8:53 ` Sébastien Bourdeauducq
2015-02-03 11:25 ` Mika Westerberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54CD9D0D.20402@m-labs.hk \
--to=sb@m-labs.hk \
--cc=benjamin.tissoires@gmail.com \
--cc=linux-input@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).