![]() An undiagnosed kernel issue is leading to a kernel crash involving DP aux reads with amdgpu involved. It's been reproduced in kernel 4.15 with a DKMS version of amdgpu as well as kernel 4.19 with amdgpu within the kernel. ``` [16862.519947] [drm:generic_reg_wait [amdgpu]] *ERROR* REG_WAIT timeout 10us * 160 tries - submit_channel_request line:246 [16862.519983] WARNING: CPU: 5 PID: 3015 at drivers/gpu/drm/amd/amdgpu/../display/dc/dc_helper.c:254 generic_reg_wait+0xe2/0x160 [amdgpu] [16862.519984] Modules linked in: rfcomm snd_hda_codec_realtek snd_hda_codec_generic cmac bnep arc4 nls_iso8859_1 amdkfd amd_iommu_v2 amdgpu i915 dell_rbtn iwlmvm snd_soc_skl wmi_bmof dell_wmi intel_rapl x86_pkg_temp_thermal dell_laptop intel_powerclamp snd_soc_skl_ipc dell_smbios coretemp snd_soc_sst_ipc dell_wmi_descriptor kvm_intel dcdbas snd_soc_sst_dsp snd_hda_ext_core kvmgt dell_smm_hwmon snd_soc_acpi_intel_match mac80211 vfio_mdev crct10dif_pclmul mdev vfio_iommu_type1 crc32_pclmul snd_soc_acpi vfio ghash_clmulni_intel snd_soc_core kvm pcbc snd_compress ac97_bus aesni_intel snd_hda_codec_hdmi snd_pcm_dmaengine chash gpu_sched aes_x86_64 snd_hda_intel crypto_simd snd_hda_codec cryptd ttm glue_helper pcmcia irqbypass snd_hda_core drm_kms_helper intel_cstate intel_rapl_perf snd_hwdep uvcvideo snd_pcm [16862.520008] drm cdc_ether iwlwifi cdc_mbim videobuf2_vmalloc snd_seq_midi videobuf2_memops cdc_ncm snd_seq_midi_event videobuf2_v4l2 snd_rawmidi videobuf2_common videodev input_leds serio_raw btusb qmi_wwan btrtl r8152 snd_seq btbcm media cdc_wdm btintel usbnet option mii usb_wwan bluetooth usbserial cdc_acm hid_multitouch joydev snd_seq_device snd_timer cfg80211 snd yenta_socket pcmcia_rsrc idma64 pcmcia_core soundcore virt_dma i2c_algo_bit fb_sys_fops syscopyarea mei_me sysfillrect ecdh_generic sysimgblt mei ucsi_acpi intel_lpss_pci processor_thermal_device typec_ucsi intel_lpss intel_soc_dts_iosf intel_pch_thermal typec wmi soc_button_array mac_hid intel_hid int3400_thermal video int3403_thermal dell_smo8800 sparse_keymap acpi_thermal_rel int340x_thermal_zone acpi_pad sch_fq_codel parport_pc [16862.520033] ppdev lp parport ip_tables x_tables autofs4 hid_generic usbhid uas usb_storage e1000e ahci libahci i2c_hid hid [16862.520040] CPU: 5 PID: 3015 Comm: fwupd Not tainted 4.19.0 #1 [16862.520040] Hardware name: Dell Inc. Latitude 7424 Rugged Extreme/, BIOS 1.0.0 09/12/2018 [16862.520062] RIP: 0010:generic_reg_wait+0xe2/0x160 [amdgpu] [16862.520063] Code: ab 44 8b 45 20 48 8b 4d 18 44 89 e6 8b 55 10 48 c7 c7 f0 bf 12 c1 44 89 4d d4 e8 79 1d 65 ff 41 83 7d 18 01 44 8b 4d d4 74 02 <0f> 0b 48 83 c4 18 44 89 c8 5b 41 5c 41 5d 41 5e 41 5f 5d c3 41 0f [16862.520064] RSP: 0018:ffffbdff831ffbe0 EFLAGS: 00010297 [16862.520065] RAX: 0000000000000000 RBX: 00000000000000a1 RCX: 0000000000000000 [16862.520065] RDX: 0000000000000000 RSI: ffff965fee356428 RDI: ffff965fee356428 [16862.520066] RBP: ffffbdff831ffc20 R08: 00000000000004d5 R09: 00000000ffffffff [16862.520066] R10: fffff464915dbd00 R11: ffffffff981923ed R12: 000000000000000a [16862.520067] R13: ffff965fdea5d480 R14: 0000000000000001 R15: 0000000000000000 [16862.520068] FS: 00007f17444485c0(0000) GS:ffff965fee340000(0000) knlGS:0000000000000000 [16862.520068] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [16862.520069] CR2: 00007f1732987150 CR3: 000000045f4fe006 CR4: 00000000003606e0 [16862.520070] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [16862.520070] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [16862.520070] Call Trace: [16862.520097] submit_channel_request+0x394/0x480 [amdgpu] [16862.520118] dc_link_aux_transfer+0xca/0x160 [amdgpu] [16862.520142] dm_dp_aux_transfer+0x59/0x120 [amdgpu] [16862.520146] drm_dp_dpcd_access+0x75/0x110 [drm_kms_helper] [16862.520148] drm_dp_dpcd_read+0x33/0xc0 [drm_kms_helper] [16862.520152] auxdev_read_iter+0x10f/0x1d0 [drm_kms_helper] [16862.520154] __vfs_read+0x106/0x180 [16862.520155] vfs_read+0x8e/0x130 [16862.520156] ksys_read+0x55/0xc0 [16862.520157] __x64_sys_read+0x1a/0x20 [16862.520159] do_syscall_64+0x5a/0x120 [16862.520161] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [16862.520162] RIP: 0033:0x7f1741b3a384 [16862.520163] Code: 84 00 00 00 00 00 41 54 55 49 89 d4 53 48 89 f5 89 fb 48 83 ec 10 e8 8b fc ff ff 4c 89 e2 41 89 c0 48 89 ee 89 df 31 c0 0f 05 <48> 3d 00 f0 ff ff 77 38 44 89 c7 48 89 44 24 08 e8 c7 fc ff ff 48 [16862.520163] RSP: 002b:00007fffadd980f0 EFLAGS: 00000246 ORIG_RAX: 0000000000000000 [16862.520164] RAX: ffffffffffffffda RBX: 0000000000000013 RCX: 00007f1741b3a384 [16862.520165] RDX: 0000000000000001 RSI: 00007fffadd98154 RDI: 0000000000000013 [16862.520165] RBP: 00007fffadd98154 R08: 0000000000000000 R09: 000055fd7e9c7010 [16862.520166] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001 [16862.520166] R13: 00007fffadd981c0 R14: 00007fffadd98154 R15: 000055fd7eae35b0 [16862.520167] ---[ end trace 8e8b280a234718a5 ]--- [16862.520176] BUG: unable to handle kernel NULL pointer dereference at 0000000000000008 [16862.520177] PGD 0 P4D 0 [16862.520179] Oops: 0000 [#1] SMP PTI [16862.520180] CPU: 5 PID: 3015 Comm: fwupd Tainted: G W 4.19.0 #1 [16862.520181] Hardware name: Dell Inc. Latitude 7424 Rugged Extreme/, BIOS 1.0.0 09/12/2018 [16862.520205] RIP: 0010:dal_ddc_close+0xd/0x30 [amdgpu] [16862.520207] Code: f1 00 e8 06 f5 ff ff 48 8b 55 f8 65 48 33 14 25 28 00 00 00 75 02 c9 c3 e8 70 09 65 d5 0f 1f 44 00 00 55 48 89 e5 53 48 89 fb <48> 8b 7f 08 e8 da f5 ff ff 48 8b 3b e8 d2 f5 ff ff 5b 5d c3 66 2e [16862.520208] RSP: 0018:ffffbdff831ffc58 EFLAGS: 00010246 [16862.520209] RAX: ffffffffc103f410 RBX: 0000000000000000 RCX: 0000000000000000 [16862.520210] RDX: ffffffffc10de660 RSI: 0000000000005c58 RDI: 0000000000000000 [16862.520211] RBP: ffffbdff831ffc60 R08: 0000000000000001 R09: 00000000ffffffff [16862.520211] R10: fffff464915dbd00 R11: 0000000000000001 R12: 0000000000000000 [16862.520212] R13: ffffbdff831ffdd0 R14: ffffbdff831ffd3d R15: 0000000000000000 [16862.520213] FS: 00007f17444485c0(0000) GS:ffff965fee340000(0000) knlGS:0000000000000000 [16862.520214] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [16862.520215] CR2: 0000000000000008 CR3: 000000045f4fe006 CR4: 00000000003606e0 [16862.520216] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [16862.520217] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [16862.520218] Call Trace: [16862.520242] release_engine+0x16/0x70 [amdgpu] [16862.520263] dc_link_aux_transfer+0xfd/0x160 [amdgpu] [16862.520287] dm_dp_aux_transfer+0x59/0x120 [amdgpu] [16862.520290] drm_dp_dpcd_access+0x75/0x110 [drm_kms_helper] [16862.520293] drm_dp_dpcd_read+0x33/0xc0 [drm_kms_helper] [16862.520296] auxdev_read_iter+0x10f/0x1d0 [drm_kms_helper] [16862.520298] __vfs_read+0x106/0x180 [16862.520300] vfs_read+0x8e/0x130 [16862.520301] ksys_read+0x55/0xc0 [16862.520302] __x64_sys_read+0x1a/0x20 [16862.520304] do_syscall_64+0x5a/0x120 [16862.520306] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [16862.520307] RIP: 0033:0x7f1741b3a384 [16862.520308] Code: 84 00 00 00 00 00 41 54 55 49 89 d4 53 48 89 f5 89 fb 48 83 ec 10 e8 8b fc ff ff 4c 89 e2 41 89 c0 48 89 ee 89 df 31 c0 0f 05 <48> 3d 00 f0 ff ff 77 38 44 89 c7 48 89 44 24 08 e8 c7 fc ff ff 48 [16862.520309] RSP: 002b:00007fffadd980f0 EFLAGS: 00000246 ORIG_RAX: 0000000000000000 [16862.520310] RAX: ffffffffffffffda RBX: 0000000000000013 RCX: 00007f1741b3a384 [16862.520311] RDX: 0000000000000001 RSI: 00007fffadd98154 RDI: 0000000000000013 [16862.520312] RBP: 00007fffadd98154 R08: 0000000000000000 R09: 000055fd7e9c7010 [16862.520312] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000001 [16862.520313] R13: 00007fffadd981c0 R14: 00007fffadd98154 R15: 000055fd7eae35b0 [16862.520314] Modules linked in: rfcomm snd_hda_codec_realtek snd_hda_codec_generic cmac bnep arc4 nls_iso8859_1 amdkfd amd_iommu_v2 amdgpu i915 dell_rbtn iwlmvm snd_soc_skl wmi_bmof dell_wmi intel_rapl x86_pkg_temp_thermal dell_laptop intel_powerclamp snd_soc_skl_ipc dell_smbios coretemp snd_soc_sst_ipc dell_wmi_descriptor kvm_intel dcdbas snd_soc_sst_dsp snd_hda_ext_core kvmgt dell_smm_hwmon snd_soc_acpi_intel_match mac80211 vfio_mdev crct10dif_pclmul mdev vfio_iommu_type1 crc32_pclmul snd_soc_acpi vfio ghash_clmulni_intel snd_soc_core kvm pcbc snd_compress ac97_bus aesni_intel snd_hda_codec_hdmi snd_pcm_dmaengine chash gpu_sched aes_x86_64 snd_hda_intel crypto_simd snd_hda_codec cryptd ttm glue_helper pcmcia irqbypass snd_hda_core drm_kms_helper intel_cstate intel_rapl_perf snd_hwdep uvcvideo snd_pcm [16862.520332] drm cdc_ether iwlwifi cdc_mbim videobuf2_vmalloc snd_seq_midi videobuf2_memops cdc_ncm snd_seq_midi_event videobuf2_v4l2 snd_rawmidi videobuf2_common videodev input_leds serio_raw btusb qmi_wwan btrtl r8152 snd_seq btbcm media cdc_wdm btintel usbnet option mii usb_wwan bluetooth usbserial cdc_acm hid_multitouch joydev snd_seq_device snd_timer cfg80211 snd yenta_socket pcmcia_rsrc idma64 pcmcia_core soundcore virt_dma i2c_algo_bit fb_sys_fops syscopyarea mei_me sysfillrect ecdh_generic sysimgblt mei ucsi_acpi intel_lpss_pci processor_thermal_device typec_ucsi intel_lpss intel_soc_dts_iosf intel_pch_thermal typec wmi soc_button_array mac_hid intel_hid int3400_thermal video int3403_thermal dell_smo8800 sparse_keymap acpi_thermal_rel int340x_thermal_zone acpi_pad sch_fq_codel parport_pc [16862.520351] ppdev lp parport ip_tables x_tables autofs4 hid_generic usbhid uas usb_storage e1000e ahci libahci i2c_hid hid [16862.520356] CR2: 0000000000000008 [16862.520357] ---[ end trace 8e8b280a234718a6 ]--- [16862.520380] RIP: 0010:dal_ddc_close+0xd/0x30 [amdgpu] [16862.520382] Code: f1 00 e8 06 f5 ff ff 48 8b 55 f8 65 48 33 14 25 28 00 00 00 75 02 c9 c3 e8 70 09 65 d5 0f 1f 44 00 00 55 48 89 e5 53 48 89 fb <48> 8b 7f 08 e8 da f5 ff ff 48 8b 3b e8 d2 f5 ff ff 5b 5d c3 66 2e [16862.520382] RSP: 0018:ffffbdff831ffc58 EFLAGS: 00010246 [16862.520384] RAX: ffffffffc103f410 RBX: 0000000000000000 RCX: 0000000000000000 [16862.520384] RDX: ffffffffc10de660 RSI: 0000000000005c58 RDI: 0000000000000000 [16862.520385] RBP: ffffbdff831ffc60 R08: 0000000000000001 R09: 00000000ffffffff [16862.520386] R10: fffff464915dbd00 R11: 0000000000000001 R12: 0000000000000000 [16862.520387] R13: ffffbdff831ffdd0 R14: ffffbdff831ffd3d R15: 0000000000000000 [16862.520388] FS: 00007f17444485c0(0000) GS:ffff965fee340000(0000) knlGS:0000000000000000 [16862.520389] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [16862.520390] CR2: 0000000000000008 CR3: 000000045f4fe006 CR4: 00000000003606e0 [16862.520391] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [16862.520392] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 ``` |
||
---|---|---|
.. | ||
tests | ||
fu-plugin-synapticsmst.c | ||
fu-self-test.c | ||
meson.build | ||
README.md | ||
synapticsmst_evb.quirk | ||
synapticsmst-common.c | ||
synapticsmst-common.h | ||
synapticsmst-device.c | ||
synapticsmst-device.h | ||
synapticsmst.quirk |
Synaptics MST
This plugin supports querying and flashing Synaptics MST hubs used in Dell systems and docks.
Firmware Format
The daemon will decompress the cabinet archive and extract a firmware blob in an unspecified binary file format.
This plugin supports the following protocol ID:
- com.synaptics.mst
GUID Generation
These devices use custom GUID values, e.g.
MST-$(device_kind)-$(chip-ID)-$(board-ID)
Please refer to the plugin source for more details about how the GUID is constructed for specific hardware.
Requirements
(Kernel) DP Aux Interface
Kernel 4.6 introduced an DRM DP Aux interface for manipulation of the registers
needed to access an MST hub.
This patch can be backported to earlier kernels:
e94cb37b34
libsmbios
At compilation time and runtime you will need libsmbios_c version 2.3.0 or later
- source: https://github.com/dell/libsmbios
- rpms: https://apps.fedoraproject.org/packages/libsmbios
- debs (Debian): http://tracker.debian.org/pkg/libsmbios
- debs (Ubuntu): http://launchpad.net/ubuntu/+source/libsmbios
If you don't want or need this functionality you can use the
--disable-dell
option.
Usage
Supported devices will be displayed in # fwupdmgr get-devices
output.
Here is an example output from a Dell WD15 dock:
Dell WD15/TB16 wired Dock Synaptics VMM3332
Guid: 653cd006-5433-57db-8632-0413af4d3fcc
DeviceID: MST-1-1-0-0
Plugin: synapticsmst
Flags: allow-online
Version: 3.10.002
Created: 2017-01-13
Modified: 2017-01-13
Trusted: none
Payloads can be flashed just like any other plugin from LVFS.
Supported devices
Not all Dell systems or accessories contain MST hubs. Here is a sample list of systems known to support them however:
- Dell WD15 dock
- Dell TB16 dock
- Dell TB18DC
- Latitude E5570
- Latitude E5470
- Latitude E5270
- Latitude E7470
- Latitude E7270
- Latitude E7450
- Latitude E7250
- Latitude E5550
- Latitude E5450
- Latitude E5250
- Latitude Rugged 5414
- Latitude Rugged 7214
- Latitude Rugged 7414