Bug 113291

Summary: i2c_designware_platform freezes system
Product: Drivers Reporter: Manuel Schneckenreither (manuel.schnecki)
Component: I2CAssignee: Drivers/I2C virtual user (drivers-i2c)
Severity: high CC: bastienphilbert, manuel.schnecki
Priority: P1    
Hardware: Intel   
OS: Linux   
Kernel Version: 4.5.0-rc5-mainline #1 SMP PREEMPT Fri Feb 26 15:32:11 CET 2016 x86_64 GNU/Linux Subsystem:
Regression: No Bisected commit-id:
Attachments: full dmesg, error is found close to end of file

Description Manuel Schneckenreither 2016-02-27 10:45:43 UTC
Created attachment 206291 [details]
full dmesg, error is found close to end of file


I'm running ArchLinux on a HP x2 210 convertable, which is more a laptop with a touchscreen than a tablet, but can be used for both. I had to get Ubuntu 16.04 beta for being able to boot the live system flashdrive as both Fedora and ArchLinux couldn't boot from the flashdrive. Thus from within Ubuntu I installed Archlinux. Ubuntu runs quite nice, however, doesn't show the battery status (which ArchLinux did) nor can find the soundcard (same in ArchLinux). However, under Arch the system freezes randomly. Sometimes that takes only seconds, sometimes it takes a couple of minutes. 

After consulting dmesg and with the knowledge from there disabling the i2c_designware_platform kernel module using following file the kernel freezes vanished. However, the touchscreen (using xf86-input-libinput) does not work no more, nor the battery status gets shown (the system does not detect that there is a battery used, like it was in Ubuntu). 

    # # File for completely disabling the i2c_designware_platform module
    # cat /etc/modprobe.d/blacklist.conf 
    install i2c_designware_platform /bin/false

It seems like the module freezes the kernel but is essential for various tasks. I attached one of the dmesg error logs. Unfortunately I'm not too familiar with the kernel. Could someone have a look at this please? 

The product specifications can be found here: http://h20195.www2.hp.com/v2/default.aspx?cc=at&lc=de&oid=8741507
Comment 1 Manuel Schneckenreither 2016-02-27 10:48:28 UTC
Note: It's a complete freeze. NumLock is not working, Ctrl-Alt-F* not working, SysReq keys not working. It just hangs completely, displaying the same view all the time. This happens with and without X-Server or Wayland started.
Comment 2 Manuel Schneckenreither 2016-02-27 10:51:35 UTC
Some more info: 

# modinfo i2c_designware_platform 
filename:       /lib/modules/4.5.0-rc5-mainline/kernel/drivers/i2c/busses/i2c-designware-platform.ko.gz
license:        GPL
description:    Synopsys DesignWare I2C bus adapter
author:         Baruch Siach <baruch@tkos.co.il>
alias:          platform:i2c_designware
alias:          acpi*:APMC0D0F:*
alias:          acpi*:AMDI0510:*
alias:          acpi*:AMD0010:*
alias:          acpi*:808622C1:*
alias:          acpi*:80860F41:*
alias:          acpi*:INT3433:*
alias:          acpi*:INT3432:*
alias:          acpi*:INT33C3:*
alias:          acpi*:INT33C2:*
depends:        i2c-designware-core
intree:         Y
vermagic:       4.5.0-rc5-mainline SMP preempt mod_unload modversions
Comment 3 [account disabled by administrator] 2016-04-10 04:08:32 UTC
It's weird the a driver would do a WARN_ON before returning a timeout error to the upper layers of your Ic2 driver so in the file,drivers/i2c/busses/i2c-designware-baytrail.c for the function baytrail_i2c_acquire can you remove this line at the end of the function:
The path for the file is from the root of the kernel directory if your wondering where I am getting my path location root from.
Comment 4 Manuel Schneckenreither 2016-05-07 10:31:56 UTC
Hi, thanks for your answer. 

I'm sorry I haven't seen your reply earlier. 

I wasn't using the laptop for a while now. After updating to Kernel version 4.5.2-1-zen and reactivating the i2c designware platform module it seems to work fine now. Touchscreen input works fine, the battery status is not show, which is not that of a problem. The only thing that sucks a little bit, is that the soundcard is not detected by the kernel

$ cat /proc/asound/cards
--- no soundcards ---

I think it's an intel onboard soundcard. However, that's not part of this thread. Wouldn't mind if I get pointers though. 

Shall I still try to remove the WARN_ON(1) call? Or can we consider the bug as closed?
Comment 5 [account disabled by administrator] 2016-05-08 02:31:28 UTC
No seems fixed to me. As for your soundcard issue please post in the sound drivers with a dmesg and we can take it from there.
Comment 6 Manuel Schneckenreither 2016-05-08 08:10:43 UTC
Thanks a lot.