On a Lenovo Yoga 530-14ARR the i2c touchpad and touchscreen do not work with the old patch, and on such laptops where the two buses of the MP2/AMDI0011 controller are enabled, the pcie_mp2_amd driver makes booting randomly fail about half of the time, the interrupt service routine never returns. When it does boot, there's still this error in the dmesg:
On a Lenovo Yoga 530-14ARR the i2c touchpad and touchscreen do not work with the old patch, and on such laptops where the two buses of the MP2/AMDI0011 controller are enabled, the pcie_mp2_amd driver makes booting randomly fail about half of the time, the interrupt service routine never returns. When it does boot, there's still this error in the dmesg:
[ 3.440859] Oops: 0002 [#1] SMP NOPTI amd_read_ completion+ 0xa8/0xc0 bfbe60 EFLAGS: 00010202 0(0000) GS:ffff98e31ea8 0000(0000) knlGS:000000000 0000000 pci_work+ 0xc1/0x100 one_work+ 0x1de/0x410 thread+ 0x32/0x410 one_work+ 0x410/0x410 create_ worker_ on_cpu+ 0x70/0x70 fork+0x22/ 0x40 read_completion +0xa8/0xc0 RSP: ffffbc8b01bfbe60
[ 3.442094] Modules linked in: hid_sensor_custom wacom(+) hid_sensor_hub hid_logitech_hidpp chash i2c_algo_bit ttm drm_kms_helper syscopyarea sysfillrect sysimgblt hid_logitech_dj fb_sys_fops drm nvme i2c_piix4 usbhid i2c_hid nvme_core wmi hid video
[ 3.444759] CPU: 2 PID: 60 Comm: kworker/2:1 Not tainted 4.15.0-38-generic #41-Ubuntu
[ 3.446121] Hardware name: LENOVO 81H9/LNVNB161216, BIOS 8MCN46WW 09/10/2018
[ 3.447495] Workqueue: events amd_mp2_pci_work
[ 3.448863] RIP: 0010:i2c_
[ 3.450214] RSP: 0018:ffffbc8b01
[ 3.451554] RAX: 0000000000000000 RBX: ffff98e3115ef4b0 RCX: 0000000000000004
[ 3.452905] RDX: ffff98e311589818 RSI: ffff98e31c0ff740 RDI: 000000000a0c0004
[ 3.454257] RBP: ffffbc8b01bfbe68 R08: 0000000000000000 R09: 0000000000000000
[ 3.455617] R10: 0000000000000304 R11: 00000000000002fe R12: ffff98e31c7d3200
[ 3.457002] R13: ffff98e31eaa2180 R14: ffff98e31eaa7500 R15: 0000000000000000
[ 3.458363] FS: 000000000000000
[ 3.459742] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 3.461110] CR2: 0000000000000000 CR3: 0000000410dd6000 CR4: 00000000003406e0
[ 3.462493] Call Trace:
[ 3.463883] amd_mp2_
[ 3.465270] process_
[ 3.466662] worker_
[ 3.468024] kthread+0x121/0x140
[ 3.469351] ? process_
[ 3.470671] ? kthread_
[ 3.472009] ret_from_
[ 3.473362] Code: f6 c1 02 40 88 38 74 da 89 c9 0f b7 74 0e fe 66 89 74 08 fe eb cc 83 f9 08 48 8b b2 28 04 00 00 73 98 eb d0 31 c0 c3 8b 3e 89 c9 <89> 38 8b 74 0e fc 89 74 08 fc eb ab 66 90 66 2e 0f 1f 84 00 00
[ 3.474808] RIP: i2c_amd_
[ 3.476214] CR2: 0000000000000000
[ end trace b0d7daf221ffd0d4 ]---
Also, any reason why it's built into the kernel instead of as a module? I don't think it's necessary.
Could you update the patch to the version I've been working on? Latest: https:/ /marc.info/ ?l=linux- i2c&m=154221304 510408& w=2