On Fri, Jun 10, 2016 at 10:44 AM, Grant Likely <grant.likely@xxxxxxxxxxxx> wrote: > On Thu, Jun 9, 2016 at 10:54 PM, Srinivas Pandruvada > <srinivas.pandruvada@xxxxxxxxxxxxxxx> wrote: >> Hi, >> On Thu, 2016-06-09 at 22:45 +0100, Grant Likely wrote: >>> On Tue, May 31, 2016 at 5:27 AM, Srinivas Pandruvada >>> <srinivas.pandruvada@xxxxxxxxxxxxxxx> wrote: >>> > >>> > Starting from Cherrytrail, multiple generation of Intel processors >>> > offers >>> > on package sensor hub. Several recent tablets, 2-in-1 convertible >>> > laptops >>> > are using ISH instead of external sensor hubs. This resulted in >>> > lack of >>> > support of sensor function like device rotation and auto backlight >>> > adjustment. In addition, depending on the OEM implementation, >>> > support of ISH >>> > is required to support low power sleep states. >>> > >>> > The support of ISH on Linux platforms is not new. Android platforms >>> > with >>> > Intel SoCs had this support for a while submitted by Daniel Drubin. >>> > This patcheset is reusing most of those changes with clean up and >>> > removing Android platform specific changes. >>> Hi Srinivas, >>> >>> Thanks for this patch series. I've got an HP Spectre x360 G2 >>> (skylake), and I've built a 4.6.0 kernel with this driver patched in. >>> It detects the sensors hub, and creates IIO devices under >>> /sys/bus/iio/devices: >>> >>> $ ls /sys/bus/iio/devices/ >>> iio:device0 iio:device1 iio:device2 iio:device3 iio:device4 >>> iio:device5 iio:device6 iio:device7 iio:device8 iio:device9 >>> trigger0 trigger1 trigger2 trigger3 trigger4 trigger5 trigger6 >>> trigger7 trigger8 trigger9 >>> >>> However, I haven't figured out how to test it yet. (This is the first >>> time I'm working with IIO). Do you have any test code or test >>> procedures to show if it is working? >>> >> If you use Fedora 23 (or any distro with iio-sensor-proxy with gnome >> rotation stuff), you should be able to do screen rotation and >> brightness using ALS. >> Each of these folders should have some raw sysfs files >> in_xxx_raw_xx >> >> You should be able to use "cat" on them. > > Yes, I do see the in_*_raw_* files in sysfs, and I'm able to get data > out of them. Gnome also seems to recognize that the accelerometers are > there because it adds a rotation lock button to the system menu. > > However, the events are getting through yet. It may be that I'm > missing something in my kernel config. I'm rebuilding the kernel with > Debian's config for the 4.5.5 kernel as a quick sanity test. I'll > report back when I've tried. Still no joy here on getting wired up to Gnome. The sensors exist, and I can view the output. For example, the following shell command will give a live view of the accelerometer settings: while true; clear; do { for f in iio\:device*/in_accel*raw; do echo $f `cat $f`; done }; sleep 0.25s; done In "Laptop mode": iio:device1/in_accel_x_raw 2184 iio:device1/in_accel_y_raw -968620 iio:device1/in_accel_z_raw -224273 iio:device3/in_accel_x_raw 5784 iio:device3/in_accel_y_raw -946324 iio:device3/in_accel_z_raw -218647 When rotated clockwise 90 degrees: iio:device1/in_accel_x_raw 1013843 iio:device1/in_accel_y_raw 8523 iio:device1/in_accel_z_raw -12259 iio:device3/in_accel_x_raw 1012352 iio:device3/in_accel_y_raw 14487 iio:device3/in_accel_z_raw -6891 When lying flat: iio:device1/in_accel_x_raw 6995 iio:device1/in_accel_y_raw -32824 iio:device1/in_accel_z_raw -986080 iio:device3/in_accel_x_raw 5797 iio:device3/in_accel_y_raw -31402 iio:device3/in_accel_z_raw -984732 However, Gnome isn't picking up the rotation events. I don't know where in the stack things are falling down. I do have iio-sensor-proxy running. Any hints on debugging this? Yet, some stuff is working now. The keyboard (but not the trackpad) gets disabled when folded back in tablet mode. g. > > I'll also take some time and review the patch series later this afternoon. > > g. > >> >> Thanks, >> Srinivas >> >> >>> Thanks, >>> g. >>> >>> > >>> > >>> > This series is tested on: >>> > - Lenovo Yoga 260 with Skylake processor >>> > - HP Pavilion x2 detachable with Cherrytrail >>> > >>> > The user mode ABI is still same as external sensor hubs using Linux >>> > IIO. So existing user mode software should still work without >>> > change. >>> > This series primarily brings in new HID transport used in ISH. >>> > >>> > This series submitted as a RFC to try on several devices. We have >>> > received request from Linux users who wanted this support. So I >>> > hope all >>> > those users try and give feedback. >>> > >>> > Daniel Drubin (3): >>> > hid: intel_ish-hid: ISH Transport layer >>> > hid: intel-ish-hid: ipc layer >>> > hid: intel-ish-hid: ISH HID client driver >>> > >>> > Srinivas Pandruvada (1): >>> > Documentation: hid: Intel ISH HID document >>> > >>> > Documentation/hid/intel-ish-hid.txt | 375 +++++++++ >>> > drivers/hid/Kconfig | 2 + >>> > drivers/hid/Makefile | 2 + >>> > drivers/hid/intel-ish-hid/Kconfig | 27 + >>> > drivers/hid/intel-ish-hid/Makefile | 20 + >>> > drivers/hid/intel-ish-hid/ipc/hw-ish-regs.h | 220 +++++ >>> > drivers/hid/intel-ish-hid/ipc/hw-ish.h | 71 ++ >>> > drivers/hid/intel-ish-hid/ipc/ipc.c | 710 >>> > ++++++++++++++++ >>> > drivers/hid/intel-ish-hid/ipc/pci-ish.c | 238 ++++++ >>> > drivers/hid/intel-ish-hid/ipc/utils.h | 65 ++ >>> > drivers/hid/intel-ish-hid/ishtp-hid-client.c | 672 >>> > +++++++++++++++ >>> > drivers/hid/intel-ish-hid/ishtp-hid.c | 201 +++++ >>> > drivers/hid/intel-ish-hid/ishtp-hid.h | 157 ++++ >>> > drivers/hid/intel-ish-hid/ishtp/bus.c | 670 >>> > +++++++++++++++ >>> > drivers/hid/intel-ish-hid/ishtp/bus.h | 99 +++ >>> > drivers/hid/intel-ish-hid/ishtp/client.c | 1131 >>> > ++++++++++++++++++++++++++ >>> > drivers/hid/intel-ish-hid/ishtp/client.h | 196 +++++ >>> > drivers/hid/intel-ish-hid/ishtp/dma-if.c | 175 ++++ >>> > drivers/hid/intel-ish-hid/ishtp/hbm.c | 911 >>> > +++++++++++++++++++++ >>> > drivers/hid/intel-ish-hid/ishtp/hbm.h | 319 ++++++++ >>> > drivers/hid/intel-ish-hid/ishtp/init.c | 94 +++ >>> > drivers/hid/intel-ish-hid/ishtp/ishtp-dev.h | 276 +++++++ >>> > include/trace/events/intel_ish.h | 30 + >>> > 23 files changed, 6661 insertions(+) >>> > create mode 100644 Documentation/hid/intel-ish-hid.txt >>> > create mode 100644 drivers/hid/intel-ish-hid/Kconfig >>> > create mode 100644 drivers/hid/intel-ish-hid/Makefile >>> > create mode 100644 drivers/hid/intel-ish-hid/ipc/hw-ish-regs.h >>> > create mode 100644 drivers/hid/intel-ish-hid/ipc/hw-ish.h >>> > create mode 100644 drivers/hid/intel-ish-hid/ipc/ipc.c >>> > create mode 100644 drivers/hid/intel-ish-hid/ipc/pci-ish.c >>> > create mode 100644 drivers/hid/intel-ish-hid/ipc/utils.h >>> > create mode 100644 drivers/hid/intel-ish-hid/ishtp-hid-client.c >>> > create mode 100644 drivers/hid/intel-ish-hid/ishtp-hid.c >>> > create mode 100644 drivers/hid/intel-ish-hid/ishtp-hid.h >>> > create mode 100644 drivers/hid/intel-ish-hid/ishtp/bus.c >>> > create mode 100644 drivers/hid/intel-ish-hid/ishtp/bus.h >>> > create mode 100644 drivers/hid/intel-ish-hid/ishtp/client.c >>> > create mode 100644 drivers/hid/intel-ish-hid/ishtp/client.h >>> > create mode 100644 drivers/hid/intel-ish-hid/ishtp/dma-if.c >>> > create mode 100644 drivers/hid/intel-ish-hid/ishtp/hbm.c >>> > create mode 100644 drivers/hid/intel-ish-hid/ishtp/hbm.h >>> > create mode 100644 drivers/hid/intel-ish-hid/ishtp/init.c >>> > create mode 100644 drivers/hid/intel-ish-hid/ishtp/ishtp-dev.h >>> > create mode 100644 include/trace/events/intel_ish.h >>> > >>> > -- >>> > 1.9.1 >>> > -- 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