diff mbox

HID: sensor-hub: Add quirk for Lenovo Yoga 900 with ITE Chips

Message ID 1450463680-10400-1-git-send-email-srinivas.pandruvada@linux.intel.com (mailing list archive)
State New, archived
Delegated to: Jiri Kosina
Headers show

Commit Message

Srinivas Pandruvada Dec. 18, 2015, 6:34 p.m. UTC
This needs same quirk as applied to other YOGA sensor hubs.
Refer to
47eeca8a48 (" HID: sensor-hub: Add in quirk for Lenovo Yogas with ITE")

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Tested-by: Nishanth Aravamudan <nish.aravamudan@gmail.com>
---
 drivers/hid/hid-ids.h        | 1 +
 drivers/hid/hid-sensor-hub.c | 3 +++
 2 files changed, 4 insertions(+)

Comments

Nish Aravamudan Dec. 19, 2015, 6:31 a.m. UTC | #1
On Fri, Dec 18, 2015 at 10:34 AM, Srinivas Pandruvada
<srinivas.pandruvada@linux.intel.com> wrote:
> This needs same quirk as applied to other YOGA sensor hubs.
> Refer to
> 47eeca8a48 (" HID: sensor-hub: Add in quirk for Lenovo Yogas with ITE")
>
> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
> Tested-by: Nishanth Aravamudan <nish.aravamudan@gmail.com>

Ok, maybe I spoke too soon! It did work once, at least. But since then
it seems to have stopped working again? That is, the *raw* files are
still working, but iio-sensor-proxy is again not seeing any updates
via the chardev(s). Any notion of what might be going on?

Note that dmesg does contain (it always has):

i2c_hid i2c-ITE8396:00: error in i2c_hid_init_report size:19 / ret_size:18

but I have no idea if that's relevant to the IIO sensors? I was told
in another thread that it shouldn't have any negative consequence.
-Nish
--
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
Nish Aravamudan Dec. 19, 2015, 5:21 p.m. UTC | #2
On Fri, Dec 18, 2015 at 10:31 PM, Nish Aravamudan
<nish.aravamudan@gmail.com> wrote:
> On Fri, Dec 18, 2015 at 10:34 AM, Srinivas Pandruvada
> <srinivas.pandruvada@linux.intel.com> wrote:
>> This needs same quirk as applied to other YOGA sensor hubs.
>> Refer to
>> 47eeca8a48 (" HID: sensor-hub: Add in quirk for Lenovo Yogas with ITE")
>>
>> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
>> Tested-by: Nishanth Aravamudan <nish.aravamudan@gmail.com>
>
> Ok, maybe I spoke too soon! It did work once, at least. But since then
> it seems to have stopped working again? That is, the *raw* files are
> still working, but iio-sensor-proxy is again not seeing any updates
> via the chardev(s). Any notion of what might be going on?
>
> Note that dmesg does contain (it always has):
>
> i2c_hid i2c-ITE8396:00: error in i2c_hid_init_report size:19 / ret_size:18
>
> but I have no idea if that's relevant to the IIO sensors? I was told
> in another thread that it shouldn't have any negative consequence.

Very strrange! After resuming from suspend this morning to check my
e-mail, it worked again! So maybe there is some bug/race still in the
init/suspend/resume path?

-Nish
--
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
Srinivas Pandruvada Dec. 19, 2015, 5:26 p.m. UTC | #3
On Fri, 2015-12-18 at 22:31 -0800, Nish Aravamudan wrote:
> On Fri, Dec 18, 2015 at 10:34 AM, Srinivas Pandruvada
> <srinivas.pandruvada@linux.intel.com> wrote:
> > This needs same quirk as applied to other YOGA sensor hubs.
> > Refer to
> > 47eeca8a48 (" HID: sensor-hub: Add in quirk for Lenovo Yogas with
> > ITE")
> > 
> > Signed-off-by: Srinivas Pandruvada <
> > srinivas.pandruvada@linux.intel.com>
> > Tested-by: Nishanth Aravamudan <nish.aravamudan@gmail.com>
> 
> Ok, maybe I spoke too soon! It did work once, at least. But since
> then
> it seems to have stopped working again? 

This patch is still relevant like other YOGAs. Can you try different
motions like quick movements with jerk?

> That is, the *raw* files are
> still working, but iio-sensor-proxy is again not seeing any updates
> via the chardev(s). Any notion of what might be going on?
> 
> Note that dmesg does contain (it always has):
> 
> i2c_hid i2c-ITE8396:00: error in i2c_hid_init_report size:19 /
> ret_size:18

We have to enable debug in the i2c-hid driver and see if this device
getting powered off. You can google i2c-hid specification from
Microsoft to get details about the protocol.

Thanks,
Srinivas

> but I have no idea if that's relevant to the IIO sensors? I was told
> in another thread that it shouldn't have any negative consequence.
> -Nish
--
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
Srinivas Pandruvada Dec. 19, 2015, 5:29 p.m. UTC | #4
On Sat, 2015-12-19 at 09:21 -0800, Nish Aravamudan wrote:
> On Fri, Dec 18, 2015 at 10:31 PM, Nish Aravamudan
> <nish.aravamudan@gmail.com> wrote:
> > On Fri, Dec 18, 2015 at 10:34 AM, Srinivas Pandruvada
> > <srinivas.pandruvada@linux.intel.com> wrote:
> > > This needs same quirk as applied to other YOGA sensor hubs.
> > > Refer to
> > > 47eeca8a48 (" HID: sensor-hub: Add in quirk for Lenovo Yogas with
> > > ITE")
> > > 
> > > Signed-off-by: Srinivas Pandruvada <
> > > srinivas.pandruvada@linux.intel.com>
> > > Tested-by: Nishanth Aravamudan <nish.aravamudan@gmail.com>
> > 
> > Ok, maybe I spoke too soon! It did work once, at least. But since
> > then
> > it seems to have stopped working again? That is, the *raw* files
> > are
> > still working, but iio-sensor-proxy is again not seeing any updates
> > via the chardev(s). Any notion of what might be going on?
> > 
> > Note that dmesg does contain (it always has):
> > 
> > i2c_hid i2c-ITE8396:00: error in i2c_hid_init_report size:19 /
> > ret_size:18
> > 
> > but I have no idea if that's relevant to the IIO sensors? I was
> > told
> > in another thread that it shouldn't have any negative consequence.
> 
> Very strrange! After resuming from suspend this morning to check my
> e-mail, it worked again! So maybe there is some bug/race still in the
> init/suspend/resume path?

As suggested in my previous post, If you want, you can debug i2c hid
messages to root causes.

> 
> -Nish
--
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
Jiri Kosina Dec. 22, 2015, 1:27 p.m. UTC | #5
On Fri, 18 Dec 2015, Srinivas Pandruvada wrote:

> This needs same quirk as applied to other YOGA sensor hubs.
> Refer to
> 47eeca8a48 (" HID: sensor-hub: Add in quirk for Lenovo Yogas with ITE")
> 
> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
> Tested-by: Nishanth Aravamudan <nish.aravamudan@gmail.com>

I got a bit lost here ... what's the status of this patch? Nishanth later 
reported that the patch actually doesn't fix the issue for him, so?

Thanks,
Nish Aravamudan Dec. 22, 2015, 3:50 p.m. UTC | #6
On Tue, Dec 22, 2015 at 5:27 AM, Jiri Kosina <jikos@kernel.org> wrote:
> On Fri, 18 Dec 2015, Srinivas Pandruvada wrote:
>
>> This needs same quirk as applied to other YOGA sensor hubs.
>> Refer to
>> 47eeca8a48 (" HID: sensor-hub: Add in quirk for Lenovo Yogas with ITE")
>>
>> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
>> Tested-by: Nishanth Aravamudan <nish.aravamudan@gmail.com>
>
> I got a bit lost here ... what's the status of this patch? Nishanth later
> reported that the patch actually doesn't fix the issue for him, so?
That's my fault. It does seem like the patch is necessary. It's
possible there is some other issue whereby the sensors aren't always
in the proper state. I'm still debugging that. But without Srinivas'
patch, it never works and with it, it at least sometimes does.

-Nish
--
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
Jiri Kosina Dec. 28, 2015, 12:09 p.m. UTC | #7
On Fri, 18 Dec 2015, Srinivas Pandruvada wrote:

> This needs same quirk as applied to other YOGA sensor hubs.
> Refer to
> 47eeca8a48 (" HID: sensor-hub: Add in quirk for Lenovo Yogas with ITE")

Which tree is this SHA from?
Srinivas Pandruvada Dec. 28, 2015, 3 p.m. UTC | #8
On Mon, 2015-12-28 at 13:09 +0100, Jiri Kosina wrote:
> On Fri, 18 Dec 2015, Srinivas Pandruvada wrote:
> 
> > This needs same quirk as applied to other YOGA sensor hubs.
> > Refer to
> > 47eeca8a48 (" HID: sensor-hub: Add in quirk for Lenovo Yogas with
> ITE")
> 
> Which tree is this SHA from?

Good question. I copied the description from commit
 e8e88438008375b17561dcc6a22abc24decf04ac
Which has referred to 47eeca8a48.

I resubmitted my patch with the the correct SHA id.

Thanks,
Srinivas


> 
> -- 
> Jiri Kosina
> SUSE Labs
> 
--
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
diff mbox

Patch

diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 8b78a7f..0873958 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -510,6 +510,7 @@ 
 #define USB_VENDOR_ID_ITE               0x048d
 #define USB_DEVICE_ID_ITE_LENOVO_YOGA   0x8386
 #define USB_DEVICE_ID_ITE_LENOVO_YOGA2  0x8350
+#define USB_DEVICE_ID_ITE_LENOVO_YOGA900	0x8396
 
 #define USB_VENDOR_ID_JABRA		0x0b0e
 #define USB_DEVICE_ID_JABRA_SPEAK_410	0x0412
diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
index 92870cd..58ed8f2 100644
--- a/drivers/hid/hid-sensor-hub.c
+++ b/drivers/hid/hid-sensor-hub.c
@@ -794,6 +794,9 @@  static const struct hid_device_id sensor_hub_devices[] = {
 	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_ITE,
 			USB_DEVICE_ID_ITE_LENOVO_YOGA2),
 			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
+	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, USB_VENDOR_ID_ITE,
+			USB_DEVICE_ID_ITE_LENOVO_YOGA900),
+			.driver_data = HID_SENSOR_HUB_ENUM_QUIRK},
 	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_SENSOR_HUB, HID_ANY_ID,
 		     HID_ANY_ID) },
 	{ }