Enable AMD PCIe MP2 for AMDI0011

Bug #1773940 reported by Kai-Heng Feng on 2018-05-29
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
HWE Next
Undecided
Unassigned
OEM Priority Project
High
Alex Tu
linux (Ubuntu)
Undecided
Unassigned
Bionic
Undecided
Unassigned
linux-oem (Ubuntu)
Undecided
Unassigned
Bionic
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
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
Kai-Heng Feng (kaihengfeng) wrote :

I can confirm the AMDI0011 is enabled and touchpad works.

tags: added: verification-done-xenial
removed: verification-needed-xenial
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) on 2018-07-09
Changed in linux (Ubuntu):
status: New → Fix Committed
Changed in linux (Ubuntu Bionic):
status: New → Fix Committed
Alex Tu (alextu) on 2018-09-13
Changed in oem-priority:
importance: Undecided → Critical
status: New → Triaged
assignee: nobody → Alex Tu (alextu)
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
Kai-Heng Feng (kaihengfeng) wrote :

Touchpad on Latitude 5495 now works correctly under i2c mode.

tags: added: verification-done-bionic
removed: verification-needed-bionic
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
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
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
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) on 2019-03-17
Changed in oem-priority:
status: Triaged → Fix Released
Brad Figg (brad-figg) on 2019-07-24
tags: added: cscc
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  Edit
Everyone can see this information.

Other bug subscribers