Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755516AbbLQImi (ORCPT ); Thu, 17 Dec 2015 03:42:38 -0500 Received: from mail-lf0-f45.google.com ([209.85.215.45]:34003 "EHLO mail-lf0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752588AbbLQImc (ORCPT ); Thu, 17 Dec 2015 03:42:32 -0500 MIME-Version: 1.0 In-Reply-To: References: From: Crt Mori Date: Thu, 17 Dec 2015 09:41:50 +0100 Message-ID: Subject: Re: Issues with Lenovo Yoga 900 IIO devices (accelerometer, etc.) To: Nish Aravamudan Cc: Hartmut Knaack , Peter Meerwald , Daniel Baluta , "linux-iio@vger.kernel.org" , Lars-Peter Clausen , Jonathan Cameron , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 6902 Lines: 206 On 17 December 2015 at 06:27, Nish Aravamudan wrote: > On Wed, Dec 16, 2015 at 3:05 PM, Nish Aravamudan > wrote: >> On Wed, Dec 16, 2015 at 2:55 PM, Crt Mori wrote: >>> >>> On Dec 16, 2015 11:37 PM, "Nish Aravamudan" >>> wrote: >>>> >>>> Hi, >>>> >>>> On Wed, Dec 16, 2015 at 2:22 PM, Crt Mori wrote: >>>> > On 16 December 2015 at 22:41, Nish Aravamudan >>>> > wrote: >>>> >> Hi Daniel, >>>> >> >>>> >> On Wed, Dec 16, 2015 at 1:43 AM, Daniel Baluta >>>> >> wrote: >>>> >>> On Tue, Dec 15, 2015 at 9:19 PM, Nish Aravamudan >>>> >>> wrote: >>>> >>>> So, I apologize in advance for this relatively vague report, but I'm >>>> >>>> fairly sure >>>> >>>> the Yoga 900 has an accelerometer amongst other sensors (ambient >>>> >>>> light?) >>>> >>>> exported over IIO. >>>> >>>> >>>> >>>> But, these sensors seem to not be updating at all with a 4.4-rc5+ >>>> >>>> kernel (a >>>> >>>> set of patches from https://lkml.org/lkml/2015/11/30/441 applied to >>>> >>>> Linus' >>>> >>>> tree). >>>> >>>> >>>> >>>> The odd part is at some point in messing with this, I'm fairly sure >>>> >>>> it did work! >>>> >>>> That is, >>>> >>>> >>>> >>>> `watch -n 0.1 cat '/sys/bus/iio/devices/iio:device'*/*raw*` >>>> >>> >>>> >>> Can you send us a sample of the output? Also, would be >>>> >>> good to identify the exact driver for accel. >>>> >> >>>> >> cat /sys/bus/iio/devices/iio:device*/*raw* >>>> >> 65478 >>>> >> 7 >>>> >> 1023 >>>> >> 0 >>>> >> 0 >>>> >> 0 >>>> >> 100 >>>> >> -539062 >>>> >> -742187 >>>> >> 1292968 >>>> >> 1592 >>>> >> 64932 >>>> >> 2 >>>> >> 275 >>>> >> 0 0 0 0 >>>> >> >>>> >> Now, I should say that I distinctly remember at some point waving my >>>> >> laptop around and seeing these values change ... but now they seem to >>>> >> be "stuck". Maybe it's a hardware issue or something special that >>>> >> WIndows does to leverage the IIO sensors? >>>> >> >>>> >>> Perhaps: cat /sys/bus/iio/devices/iio:device'*/name >>>> >> >>>> >> $ cat /sys/bus/iio/devices/iio:device*/name >>>> >> accel_3d >>>> > >>>> > Can you list the directory of iio:device with this name (it is: >>>> > drivers/iio/accel/hid-sensor-accel-3d.c). >>>> > This is something you will be looking at for accel debugging, but it >>>> > seems more like >>>> > standard >>>> >>>> /sys/bus/iio/devices/iio:device0/name >>>> gyro_3d >>>> /sys/bus/iio/devices/iio:device1/name >>>> dev_rotation >>>> /sys/bus/iio/devices/iio:device2/name >>>> als >>>> /sys/bus/iio/devices/iio:device3/name >>>> magn_3d >>>> /sys/bus/iio/devices/iio:device4/name >>>> accel_3d >>>> /sys/bus/iio/devices/iio:device5/name >>>> incli_3d >>>> >>>> are all the IIO sensors, sorry about that! >>>> >>> >>> I was more thinking what else is in iio:device4 directory, so that we can >>> see if it was initialized OK. Can you also grep the dmesg for any errors? >> >> Well, I just noticed the device #s are not consistent boot-to-boot, so >> this time it was device0. Trimming out the directories: >> This is correct/intended. You need to confirm "deviceX/name" each time. >> /sys/bus/iio/devices/iio:device0/buffer >> cat: /sys/bus/iio/devices/iio:device0/buffer: Is a directory >> /sys/bus/iio/devices/iio:device0/dev >> 250:0 >> /sys/bus/iio/devices/iio:device0/in_accel_hysteresis >> cat: /sys/bus/iio/devices/iio:device0/in_accel_hysteresis: Invalid argument >> /sys/bus/iio/devices/iio:device0/in_accel_offset >> 0 >> /sys/bus/iio/devices/iio:device0/in_accel_sampling_frequency >> 8.000000 >> /sys/bus/iio/devices/iio:device0/in_accel_scale >> 0.009806 >> /sys/bus/iio/devices/iio:device0/in_accel_x_raw >> 65478 >> /sys/bus/iio/devices/iio:device0/in_accel_y_raw >> 7 >> /sys/bus/iio/devices/iio:device0/in_accel_z_raw >> 1023 This seems like a valid number 1023 * 0.009806 = 10,031 m/s2 but X does not. >> /sys/bus/iio/devices/iio:device0/name >> accel_3d >> /sys/bus/iio/devices/iio:device0/uevent >> MAJOR=250 >> MINOR=0 >> DEVNAME=iio:device0 >> DEVTYPE=iio_device >> >> Another thing I just noticed: >> >> /sys/bus/iio/devices/iio:device0/buffer/enable >> 0 This is buffer enable not chip enable. You can write 1 to that so it will be enables (echo "1" > /sys/bus/iio/devices/.../buffer/enable) and see what happens. It might be that it needs buffer to update properly (I haven't checked the code). >> >> The only error I'm getting consistently is: >> >> [ 1.115327] i2c_hid i2c-ITE8396:00: error in i2c_hid_init_report >> size:19 / ret_size:18 >> >> which I don't think is relevant, but I might be wrong. If accel is i2c this might be a relevant error - and probe would also not fail, but error would repeat itself each time probably Maybe track where that line is in i2c_hid and see what it could mean. >> >>>> >> gyro_3d >>>> >> als >>>> >> magn_3d >>>> >> incli_3d >>>> >> dev_rotation >>>> >> >>>> >> >>>> >>>> >>>> >>>> showed updating values as I moved the laptop around. >>>> >>>> >>>> >>>> I've not done any accelerometer debugging before, so any suggestion >>>> >>>> on >>>> >>>> where to start would be greatly appreciated! >>>> >>> >>>> >>> Did you applied some patches and recompiled the kernel? Or when it did >>>> >>> stopped >>>> >>> working? >>>> >> >>>> >> As far as I can tell, it only worked that one one time and hasn't >>>> >> since. Although your question does make me wonder *which* kernel I was >>>> >> on that I experienced the values changing. Let me go back to a stock >>>> >> 4.4-rc5 and see. >>>> > >>>> > Did you compile the stock kernel? It might be that .dts file you are >>>> > using (or defconfig) >>>> > is not correct. >>>> >>>> I compiled the stock kernel, based off the the Ubuntu 15.04 .config, >>>> trimmed to account for the hardware I have on the system. I can attach >>>> the .config if that will be useful. >>>> >>>> I just went back to 4.4-rc4 and it also didn't seem to have any >>>> updates to the raw file contents. >>>> >>> >>> I hope full post of your defconfig will not be needed. However could you >>> double check that you have enabled all drivers for accel (check the kbuild >>> file in drivers/iio/accel). If they have driver for accel in main kernel (or >>> staging) then it will link with existing device tree nicely. >> >> I'll go back and enable everything just to be safe. Building now, will >> report the results once I have them. > > Using the stock Ubuntu .config as the base, meaning many, many modules > (including all possible IIO accelerometers, it seems), I still see no > updates to the *raw* file contents. > > -Nish -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/