Enable AMD PCIe MP2 for AMDI0011

Bug #1773940 reported by Kai-Heng Feng
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
HWE Next
Fix Released
Undecided
Unassigned
OEM Priority Project
Fix Released
High
Alex Tu
linux (Ubuntu)
Fix Released
Undecided
Unassigned
Bionic
Fix Released
Undecided
Unassigned
linux-oem (Ubuntu)
Fix Released
Undecided
Unassigned
Bionic
Fix Released
Undecided
Unassigned

Bug Description

===SRU Justification===
[Impact]
Touchpad doesn't work on Latitude 5495.

[Test]
I can confirm the driver from AMD works.
All issues found by us should be fixed.

[Fix]
The touchpad connects to AMDI0011, which doesn't have any driver until
now.
I'll backport the patch to A/B/C once it's in mainline and gets
thoroughly tested.

[Regression Potential]
Low. It's a new driver, shouldn't affect any other device.

no longer affects: linux (Ubuntu)
tags: added: originate-from-1734612 somerville
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-xenial' to 'verification-done-xenial'. If the problem still exists, change the tag 'verification-needed-xenial' to 'verification-failed-xenial'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-xenial
Revision history for this message
Kai-Heng Feng (kaihengfeng) wrote :

I can confirm the AMDI0011 is enabled and touchpad works.

tags: added: verification-done-xenial
removed: verification-needed-xenial
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (10.6 KiB)

This bug was fixed in the package linux-oem - 4.13.0-1030.33

---------------
linux-oem (4.13.0-1030.33) xenial; urgency=medium

  * linux-oem: 4.13.0-1030.33 -proposed tracker (LP: #1774126)

  * Miscellaneous Ubuntu changes
    - Rebase to 4.13.0-45.50

  [ Ubuntu: 4.13.0-45.50 ]

  * linux: 4.13.0-45.50 -proposed tracker (LP: #1774124)
  * CVE-2018-3639 (x86)
    - SAUCE: Set generic SSBD feature for Intel cpus

linux-oem (4.13.0-1029.32) xenial; urgency=medium

  * linux-oem: 4.13.0-1029.32 -proposed tracker (LP: #1772956)

  * Enable AMD PCIe MP2 for AMDI0011 (LP: #1773940)
    - SAUCE: i2c:amd I2C Driver based on PCI Interface for upcoming platform

  * Intel WiFi Linux driver update for ETSI 5GHz Adaptivity Requirement
    (LP: #1769980)
    - iwlwifi: track current firmware image in common code
    - iwlwifi: refactor firmware debug code
    - iwlwifi: mvm: support fw reading empty OTP
    - iwlwifi: implement fseq version mismatch warning
    - iwlwifi: mvm: fix the FIFO numbers in A000 devices
    - iwlwifi: mvm: remove non-DQA mode
    - iwlwifi: mvm: check family instead of new TX API for workarounds
    - iwlwifi: mvm: add and use iwl_mvm_has_unified_ucode()
    - iwlwifi: mvm: move a000 device NVM retrieval to a common place
    - Revert "UBUNTU: SAUCE: iwlwifi: Adding missing id A370:42A4"
    - Revert "iwlwifi: fix PCI IDs and configuration mapping for 9000 series"
    - Revert "iwlwifi: fix firmware names for 9000 and A000 series hw"
    - iwlwifi: add support of FPGA fw
    - iwlwifi: fix nmi triggering from host
    - iwlwifi: pcie: free the TSO page when a Tx queue is unmapped on A000 devices
    - iwlwifi: mvm: fix the coex firmware API
    - iwlwifi: mvm: support new Coex firmware API
    - iwlwifi: pcie: support short Tx queues for A000 device family
    - iwlwifi: mvm: group all dummy SAR function declarations together
    - iwlwifi: mvm: use mvmsta consistently in rs.c
    - iwlwifi: distinguish different RF modules in A000 devices
    - iwlwifi: update channel flags parser
    - iwlwifi: mvm: change open and close criteria of a BA session
    - iwlwifi: fw: fix lar_enabled endian problem in iwl_fw_get_nvm
    - iwlwifi: mvm: remove useless argument in iwl_nvm_init()
    - cfg80211: honor NL80211_RRF_NO_HT40{MINUS,PLUS}
    - cfg80211/nl80211: add a port authorized event
    - ieee80211: Add WFA TPC report element OUI type
    - iwlwifi: mvm: bump API to 34 for 8000 and up
    - iwlwifi: fix long debug print
    - iwlwifi: nvm-parse: unify channel flags printing
    - iwlwifi: nvm: set the correct offsets to 3168 series
    - iwlwifi: mvm: Add new quota command API
    - iwlwifi: mvm: remove support for Link Quality Measurements
    - iwlwifi: pcie: dynamic Tx command queue size
    - iwlwifi: acpi: add common code to read from ACPI
    - iwlwifi: acpi: move ACPI method definitions to acpi.h
    - iwlwifi: acpi: move ACPI-related definitions to acpi.h
    - iwlwifi: acpi: generalize iwl_mvm_sar_find_wifi_pkg()
    - iwlwifi: acpi: use iwl_acpi_get_wifi_pkg when reading reading SPLC
    - iwlwifi: acpi: make iwl_get_bios_mcc() use the common acpi functions
    - iwlwifi: acpi: move function to get mcc into acpi code
  ...

Changed in linux-oem (Ubuntu):
status: New → Fix Released
Seth Forshee (sforshee)
Changed in linux (Ubuntu):
status: New → Fix Committed
Changed in linux (Ubuntu Bionic):
status: New → Fix Committed
Alex Tu (alextu)
Changed in oem-priority:
importance: Undecided → Critical
status: New → Triaged
assignee: nobody → Alex Tu (alextu)
Revision history for this message
Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-bionic' to 'verification-done-bionic'. If the problem still exists, change the tag 'verification-needed-bionic' to 'verification-failed-bionic'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-bionic
Revision history for this message
Kai-Heng Feng (kaihengfeng) wrote :

Touchpad on Latitude 5495 now works correctly under i2c mode.

tags: added: verification-done-bionic
removed: verification-needed-bionic
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (23.5 KiB)

This bug was fixed in the package linux - 4.15.0-36.39

---------------
linux (4.15.0-36.39) bionic; urgency=medium

  * CVE-2018-14633
    - iscsi target: Use hex2bin instead of a re-implementation

  * CVE-2018-17182
    - mm: get rid of vmacache_flush_all() entirely

linux (4.15.0-35.38) bionic; urgency=medium

  * linux: 4.15.0-35.38 -proposed tracker (LP: #1791719)

  * device hotplug of vfio devices can lead to deadlock in vfio_pci_release
    (LP: #1792099)
    - SAUCE: vfio -- release device lock before userspace requests

  * L1TF mitigation not effective in some CPU and RAM combinations
    (LP: #1788563)
    - x86/speculation/l1tf: Fix overflow in l1tf_pfn_limit() on 32bit
    - x86/speculation/l1tf: Fix off-by-one error when warning that system has too
      much RAM
    - x86/speculation/l1tf: Increase l1tf memory limit for Nehalem+

  * CVE-2018-15594
    - x86/paravirt: Fix spectre-v2 mitigations for paravirt guests

  * CVE-2017-5715 (Spectre v2 s390x)
    - KVM: s390: implement CPU model only facilities
    - s390: detect etoken facility
    - KVM: s390: add etoken support for guests
    - s390/lib: use expoline for all bcr instructions
    - s390: fix br_r1_trampoline for machines without exrl
    - SAUCE: s390: use expoline thunks for all branches generated by the BPF JIT

  * Ubuntu18.04.1: cpuidle: powernv: Fix promotion from snooze if next state
    disabled (performance) (LP: #1790602)
    - cpuidle: powernv: Fix promotion from snooze if next state disabled

  * Watchdog CPU:19 Hard LOCKUP when kernel crash was triggered (LP: #1790636)
    - powerpc: hard disable irqs in smp_send_stop loop
    - powerpc: Fix deadlock with multiple calls to smp_send_stop
    - powerpc: smp_send_stop do not offline stopped CPUs
    - powerpc/powernv: Fix opal_event_shutdown() called with interrupts disabled

  * Security fix: check if IOMMU page is contained in the pinned physical page
    (LP: #1785675)
    - vfio/spapr: Use IOMMU pageshift rather than pagesize
    - KVM: PPC: Check if IOMMU page is contained in the pinned physical page

  * Missing Intel GPU pci-id's (LP: #1789924)
    - drm/i915/kbl: Add KBL GT2 sku
    - drm/i915/whl: Introducing Whiskey Lake platform
    - drm/i915/aml: Introducing Amber Lake platform
    - drm/i915/cfl: Add a new CFL PCI ID.

  * CVE-2018-15572
    - x86/speculation: Protect against userspace-userspace spectreRSB

  * Support Power Management for Thunderbolt Controller (LP: #1789358)
    - thunderbolt: Handle NULL boot ACL entries properly
    - thunderbolt: Notify userspace when boot_acl is changed
    - thunderbolt: Use 64-bit DMA mask if supported by the platform
    - thunderbolt: Do not unnecessarily call ICM get route
    - thunderbolt: No need to take tb->lock in domain suspend/complete
    - thunderbolt: Use correct ICM commands in system suspend
    - thunderbolt: Add support for runtime PM

  * random oopses on s390 systems using NVMe devices (LP: #1790480)
    - s390/pci: fix out of bounds access during irq setup

  * [Bionic] Spectre v4 mitigation (Speculative Store Bypass Disable) support
    for arm64 using SMC firmware call to set a hardware chicken bit
    (LP: #1787993) // CVE-2018...

Changed in linux (Ubuntu Bionic):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (24.3 KiB)

This bug was fixed in the package linux-oem - 4.15.0-1021.24

---------------
linux-oem (4.15.0-1021.24) bionic; urgency=medium

  [ Ubuntu: 4.15.0-36.39 ]

  * CVE-2018-14633
    - iscsi target: Use hex2bin instead of a re-implementation
  * CVE-2018-17182
    - mm: get rid of vmacache_flush_all() entirely

linux-oem (4.15.0-1020.23) bionic; urgency=medium

  * linux-oem: 4.15.0-1020.23 -proposed tracker (LP: #1793656)

  * Fix unusable NVIDIA GPU after S3 (LP: #1793338)
    - PCI: Reprogram bridge prefetch registers on resume

linux-oem (4.15.0-1019.22) bionic; urgency=medium

  * linux-oem: 4.15.0-1019.22 -proposed tracker (LP: #1791724)

  * Fix I2C touchpanels' interrupt storms after system suspend (LP: #1792309)
    - HID: i2c-hid: Fix flooded incomplete report after S3 on Rayd touchscreen
    - HID: i2c-hid: Don't reset device upon system resume

  * Miscellaneous Ubuntu changes
    - Rebase to 4.15.0-35.38
    - [Config] update configs following rebase to 4.15.0-35.38

  * drm/i915: Drop backported support for Cannonlake. (LP: #1792589)

  [ Ubuntu: 4.15.0-35.38 ]

  * linux: 4.15.0-35.38 -proposed tracker (LP: #1791719)
  * device hotplug of vfio devices can lead to deadlock in vfio_pci_release
    (LP: #1792099)
    - SAUCE: vfio -- release device lock before userspace requests
  * L1TF mitigation not effective in some CPU and RAM combinations
    (LP: #1788563)
    - x86/speculation/l1tf: Fix overflow in l1tf_pfn_limit() on 32bit
    - x86/speculation/l1tf: Fix off-by-one error when warning that system has too
      much RAM
    - x86/speculation/l1tf: Increase l1tf memory limit for Nehalem+
  * CVE-2018-15594
    - x86/paravirt: Fix spectre-v2 mitigations for paravirt guests
  * CVE-2017-5715 (Spectre v2 s390x)
    - KVM: s390: implement CPU model only facilities
    - s390: detect etoken facility
    - KVM: s390: add etoken support for guests
    - s390/lib: use expoline for all bcr instructions
    - s390: fix br_r1_trampoline for machines without exrl
    - SAUCE: s390: use expoline thunks for all branches generated by the BPF JIT
  * Ubuntu18.04.1: cpuidle: powernv: Fix promotion from snooze if next state
    disabled (performance) (LP: #1790602)
    - cpuidle: powernv: Fix promotion from snooze if next state disabled
  * Watchdog CPU:19 Hard LOCKUP when kernel crash was triggered (LP: #1790636)
    - powerpc: hard disable irqs in smp_send_stop loop
    - powerpc: Fix deadlock with multiple calls to smp_send_stop
    - powerpc: smp_send_stop do not offline stopped CPUs
    - powerpc/powernv: Fix opal_event_shutdown() called with interrupts disabled
  * Security fix: check if IOMMU page is contained in the pinned physical page
    (LP: #1785675)
    - vfio/spapr: Use IOMMU pageshift rather than pagesize
    - KVM: PPC: Check if IOMMU page is contained in the pinned physical page
  * Missing Intel GPU pci-id's (LP: #1789924)
    - drm/i915/kbl: Add KBL GT2 sku
    - drm/i915/whl: Introducing Whiskey Lake platform
    - drm/i915/aml: Introducing Amber Lake platform
    - drm/i915/cfl: Add a new CFL PCI ID.
  * CVE-2018-15572
    - x86/speculation: Protect against userspace-userspace spectreRSB
  * Support Power Management for Thu...

Changed in linux-oem (Ubuntu Bionic):
status: New → Fix Released
status: New → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (29.0 KiB)

This bug was fixed in the package linux - 4.18.0-8.9

---------------
linux (4.18.0-8.9) cosmic; urgency=medium

  * linux: 4.18.0-8.9 -proposed tracker (LP: #1791663)

  * Cosmic update to v4.18.7 stable release (LP: #1791660)
    - rcu: Make expedited GPs handle CPU 0 being offline
    - net: 6lowpan: fix reserved space for single frames
    - net: mac802154: tx: expand tailroom if necessary
    - 9p/net: Fix zero-copy path in the 9p virtio transport
    - spi: davinci: fix a NULL pointer dereference
    - spi: pxa2xx: Add support for Intel Ice Lake
    - spi: spi-fsl-dspi: Fix imprecise abort on VF500 during probe
    - spi: cadence: Change usleep_range() to udelay(), for atomic context
    - mmc: block: Fix unsupported parallel dispatch of requests
    - mmc: renesas_sdhi_internal_dmac: mask DMAC interrupts
    - mmc: renesas_sdhi_internal_dmac: fix #define RST_RESERVED_BITS
    - readahead: stricter check for bdi io_pages
    - block: fix infinite loop if the device loses discard capability
    - block: blk_init_allocated_queue() set q->fq as NULL in the fail case
    - block: really disable runtime-pm for blk-mq
    - blkcg: Introduce blkg_root_lookup()
    - block: Introduce blk_exit_queue()
    - block: Ensure that a request queue is dissociated from the cgroup controller
    - apparmor: fix bad debug check in apparmor_secid_to_secctx()
    - dma-buf: Move BUG_ON from _add_shared_fence to _add_shared_inplace
    - libertas: fix suspend and resume for SDIO connected cards
    - media: Revert "[media] tvp5150: fix pad format frame height"
    - mailbox: xgene-slimpro: Fix potential NULL pointer dereference
    - Replace magic for trusting the secondary keyring with #define
    - Fix kexec forbidding kernels signed with keys in the secondary keyring to
      boot
    - powerpc/fadump: handle crash memory ranges array index overflow
    - powerpc/64s: Fix page table fragment refcount race vs speculative references
    - powerpc/pseries: Fix endianness while restoring of r3 in MCE handler.
    - powerpc/pkeys: Give all threads control of their key permissions
    - powerpc/pkeys: Deny read/write/execute by default
    - powerpc/pkeys: key allocation/deallocation must not change pkey registers
    - powerpc/pkeys: Save the pkey registers before fork
    - powerpc/pkeys: Fix calculation of total pkeys.
    - powerpc/pkeys: Preallocate execute-only key
    - powerpc/nohash: fix pte_access_permitted()
    - powerpc64/ftrace: Include ftrace.h needed for enable/disable calls
    - powerpc/powernv/pci: Work around races in PCI bridge enabling
    - cxl: Fix wrong comparison in cxl_adapter_context_get()
    - IB/mlx5: Honor cnt_set_id_valid flag instead of set_id
    - IB/mlx5: Fix leaking stack memory to userspace
    - IB/srpt: Fix srpt_cm_req_recv() error path (1/2)
    - IB/srpt: Fix srpt_cm_req_recv() error path (2/2)
    - IB/srpt: Support HCAs with more than two ports
    - overflow.h: Add arithmetic shift helper
    - RDMA/mlx5: Fix shift overflow in mlx5_ib_create_wq
    - ib_srpt: Fix a use-after-free in srpt_close_ch()
    - ib_srpt: Fix a use-after-free in __srpt_close_all_ch()
    - RDMA/rxe: Set wqe->status correctly if an unexpected...

Changed in linux (Ubuntu):
status: Fix Committed → Fix Released
Changed in oem-priority:
importance: Critical → High
Revision history for this message
Syniurge (syniurge) wrote :

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
[ 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_amd_read_completion+0xa8/0xc0
[ 3.450214] RSP: 0018:ffffbc8b01bfbe60 EFLAGS: 00010202
[ 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: 0000000000000000(0000) GS:ffff98e31ea80000(0000) knlGS:0000000000000000
[ 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_pci_work+0xc1/0x100
[ 3.465270] process_one_work+0x1de/0x410
[ 3.466662] worker_thread+0x32/0x410
[ 3.468024] kthread+0x121/0x140
[ 3.469351] ? process_one_work+0x410/0x410
[ 3.470671] ? kthread_create_worker_on_cpu+0x70/0x70
[ 3.472009] ret_from_fork+0x22/0x40
[ 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_read_completion+0xa8/0xc0 RSP: ffffbc8b01bfbe60
[ 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=154221304510408&w=2

Changed in hwe-next:
status: New → Fix Released
Alex Tu (alextu)
Changed in oem-priority:
status: Triaged → Fix Released
Brad Figg (brad-figg)
tags: added: cscc
Revision history for this message
Lancillotto (antonio-petricca) wrote :

Hi, is this thread related to the issue I have posted here? https://github.com/Syniurge/i2c-amd-mp2/issues

Thak you so much!

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.