Skip to contentSkip to conversation

usb/icl: Work around ACPI boottime crash

PATCH In review Imre Deak 5 participants 9 messages Jul 2, 2018 – Jul 4, 2018 USB

lore
Share & tools
lore

Imre Deak

author
#0 lore raw

PATCH 1/1 usb/icl: Work around ACPI boottime crash

Work around the following boot time crash:

[   10.456056] CPU: 1 PID: 220 Comm: systemd-udevd Tainted: G        W         4.17.0-rc7-CI-CI_DRM_4040+ #182
[   10.465828] Hardware name: Intel Corporation Ice Lake Client Platform/IceLake U DDR4 SODIMM PD RVP, BIOS
+ICLSFWR1.R00.2204.A00.1805172221 05/17/2018
[   10.479168] RIP: 0010:acpi_ps_complete_this_op+0xa7/0x22a
[   10.484627] RSP: 0018:ffffc900003a7578 EFLAGS: 00010202
[   10.489881] RAX: 6b6b6b6b6b6b6b6b RBX: ffff8804abeda9c8 RCX: 0000000000000020
[   10.497045] RDX: 0000000000000000 RSI: ffff88049e604a68 RDI: 0000000000000000
[   10.504213] RBP: 0000000000000000 R08: ffff8804abeda9c8 R09: 0000000000000000
[   10.511376] R10: 0000000000000000 R11: 0000000000000000 R12: 000000000000000e
[   10.518542] R13: ffff88049e604a68 R14: ffff88049e604a68 R15: ffffffffa00263c2
[   10.525713] FS:  00007ff6d85f18c0(0000) GS:ffff8804be880000(0000) knlGS:0000000000000000
[   10.533839] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   10.539616] CR2: 00007ff6d73cff40 CR3: 000000049f794001 CR4: 0000000000760ee0
[   10.546783] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   10.553949] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[   10.561112] PKRU: 55555554
[   10.563849] Call Trace:
[   10.566323]  acpi_ps_complete_op+0x49/0x3f1
[   10.570537]  acpi_ps_parse_loop+0x94c/0x9bb
[   10.574754]  ? acpi_ds_delete_walk_state+0x113/0x131
[   10.579750]  acpi_ps_parse_aml+0x1a2/0x4af
[   10.583875]  acpi_ps_execute_method+0x1e9/0x2a5
[   10.588435]  acpi_ns_evaluate+0x2e4/0x42c
[   10.592473]  acpi_evaluate_object+0x1fd/0x3a8
[   10.596873]  usb_acpi_find_companion+0xee/0x1f0 [usbcore]
[   10.602319]  acpi_platform_notify+0x33/0xa0
[   10.606532]  device_add+0x197/0x600
[   10.610048]  ? __init_waitqueue_head+0x36/0x50
[   10.614529]  usb_hub_create_port_device+0x11d/0x340 [usbcore]
[   10.620314]  hub_probe+0x9a5/0x1010 [usbcore]
[   10.624701]  ? _raw_spin_unlock_irqrestore+0x51/0x60
[   10.629730]  usb_probe_interface+0x13f/0x300 [usbcore]
[   10.634900]  driver_probe_device+0x302/0x470
[   10.639198]  ? __driver_attach+0xe0/0xe0
[   10.643147]  bus_for_each_drv+0x59/0x90
[   10.647013]  __device_attach+0xb7/0x130
[   10.650878]  bus_probe_device+0x9c/0xb0
[   10.654745]  device_add+0x3c5/0x600
[   10.658270]  usb_set_configuration+0x540/0x880 [usbcore]
[   10.663621]  generic_probe+0x28/0x80 [usbcore]
[   10.668097]  driver_probe_device+0x302/0x470
[   10.672393]  ? __driver_attach+0xe0/0xe0
[   10.676346]  bus_for_each_drv+0x59/0x90
[   10.680211]  __device_attach+0xb7/0x130
[   10.684076]  bus_probe_device+0x9c/0xb0
[   10.687940]  device_add+0x3c5/0x600
[   10.691464]  usb_new_device+0x269/0x490 [usbcore]
[   10.696206]  usb_add_hcd+0x558/0x850 [usbcore]
[   10.700682]  xhci_pci_probe+0x13d/0x240 [xhci_pci]
[   10.705534]  pci_device_probe+0xa1/0x130
[   10.709484]  driver_probe_device+0x302/0x470
[   10.713784]  __driver_attach+0xb9/0xe0
[   10.717562]  ? driver_probe_device+0x470/0x470
[   10.722033]  ? driver_probe_device+0x470/0x470
[   10.726505]  bus_for_each_dev+0x64/0x90
[   10.730370]  ? preempt_count_sub+0x92/0xd0
[   10.734495]  bus_add_driver+0x164/0x260
[   10.738362]  ? 0xffffffffa004e000
[   10.741704]  driver_register+0x57/0xc0
[   10.745482]  ? 0xffffffffa004e000
[   10.748824]  do_one_initcall+0x4a/0x350
[   10.752690]  ? do_init_module+0x22/0x20a
[   10.756643]  ? rcu_read_lock_sched_held+0x74/0x80
[   10.761377]  ? kmem_cache_alloc_trace+0x284/0x2e0
[   10.766114]  do_init_module+0x5b/0x20a
[   10.769895]  load_module+0x250d/0x2b20
[   10.773678]  ? kernel_read+0x2c/0x40
[   10.777285]  ? __se_sys_finit_module+0xaa/0xc0
[   10.781759]  __se_sys_finit_module+0xaa/0xc0
[   10.786061]  do_syscall_64+0x54/0x190
[   10.789752]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
[   10.794831] RIP: 0033:0x7ff6d74664d9
[   10.798430] RSP: 002b:00007ffd91e7dd78 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[   10.806033] RAX: ffffffffffffffda RBX: 0000560519bfae20 RCX: 00007ff6d74664d9
[   10.813195] RDX: 0000000000000000 RSI: 00007ff6d795ce23 RDI: 000000000000000e
[   10.820360] RBP: 00007ff6d795ce23 R08: 0000000000000000 R09: 0000000000000000
[   10.827523] R10: 000000000000000e R11: 0000000000000246 R12: 0000000000000000
[   10.834690] R13: 0000560519bf9a30 R14: 0000000000020000 R15: 000000000aba9500
[   10.841862] Code: c2 10 5f ea 81 48 c7 c6 f0 5e ea 81 bf 7c 00 00 00 e8 0d 7c 00 00 31 ed e9 88 01 00 00 48 8b 03 31 ed 48 85 c0
+0f 84 e9 00 00 00 <4c> 8b 60 28 4d 85 e4 0f 84 dc 00 00 00 0f b7 78 0a e8 62 fe ff
[   10.860832] RIP: acpi_ps_complete_this_op+0xa7/0x22a RSP: ffffc900003a7578
[   10.867907] ---[ end trace 3a0d2ee1129bc71e ]---
Cc Chris Wilson <[email protected]>
---
 drivers/usb/core/usb-acpi.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)
drivers/usb/core/usb-acpi.c +24 -0
index e221861b3187..8424b3a27e7e 100644
@@ -12,6 +12,7 @@
 #include <linux/acpi.h>
 #include <linux/pci.h>
 #include <linux/usb/hcd.h>
+#include <linux/dmi.h>
 
 #include "hub.h"
 
@@ -81,6 +82,20 @@ int usb_acpi_set_power_state(struct usb_device *hdev, int index, bool enable)
 }
 EXPORT_SYMBOL_GPL(usb_acpi_set_power_state);
 
+static const struct dmi_system_id intel_icl_broken_acpi[] = {
+	{
+		.ident = "ICL RVP",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Ice Lake Client Platform"),
+		},
+	},
+
+	{ }
+};
+
+static bool acpi_connection_type_broken;
+
 static enum usb_port_connect_type usb_acpi_get_connect_type(acpi_handle handle,
 		struct acpi_pld_info *pld)
 {
@@ -89,6 +104,10 @@ static enum usb_port_connect_type usb_acpi_get_connect_type(acpi_handle handle,
 	union acpi_object *upc;
 	acpi_status status;
 
+	/* Work around unknown ACPI instruction error on ICL RVP BIOSes. */
+	if (acpi_connection_type_broken)
+		return USB_PORT_CONNECT_TYPE_UNKNOWN;
+
 	/*
 	 * According to 9.14 in ACPI Spec 6.2. _PLD indicates whether usb port
 	 * is user visible and _UPC indicates whether it is connectable. If
@@ -235,6 +254,11 @@ static struct acpi_bus_type usb_acpi_bus = {
 
 int usb_acpi_register(void)
 {
+	if (dmi_check_system(intel_icl_broken_acpi)) {
+		pr_info("USB ACPI connection type broken.\n");
+		acpi_connection_type_broken = true;
+	}
+
 	return register_acpi_bus_type(&usb_acpi_bus);
 }
 
Signature · 6 lines
2.13.2

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
#1 lore raw

✓ Fi.CI.BAT: success for usb/icl: Work around ACPI boottime crash

== Series Details ==

== Series Details ==

Series: usb/icl: Work around ACPI boottime crash
URL : https://patchwork.freedesktop.org/series/45778/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4412 -> Patchwork_9498 =

== Summary - SUCCESS ==

No regressions found.

External URL: https://patchwork.freedesktop.org/api/1.0/series/45778/revisions/1/mbox/

== Known issues ==

Here are the changes found in Patchwork_9498 that come from known issues:

=== IGT changes ===

    ==== Issues hit ====

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
      fi-bxt-dsi:         PASS -> INCOMPLETE (fdo#103927)

    
    ==== Possible fixes ====

    igt@gem_exec_suspend@basic-s4-devices:
      fi-kbl-7500u:       DMESG-WARN (fdo#105128) -> PASS

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
      fi-snb-2520m:       INCOMPLETE (fdo#103713) -> PASS

    igt@prime_vgem@basic-fence-flip:
      fi-ilk-650:         FAIL (fdo#104008) -> PASS

fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
fdo#105128 https://bugs.freedesktop.org/show_bug.cgi?id=105128

== Participating hosts (43 -> 40) ==

Additional (1): fi-byt-j1900
Missing (4): fi-ctg-p8600 fi-ilk-m540 fi-bsw-cyan fi-hsw-4200u

== Build changes ==

* Linux: CI_DRM_4412 -> Patchwork_9498

CI_DRM_4412: 3cd46a79b208e82ba0b2da4282e59312a79d29cc @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4532: 840d12e2f050b784552197403d6575a57b6e896d @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_9498: f195f00e11e20013ab321df784e9b806aefc81c6 @ git://anongit.freedesktop.org/gfx-ci/linux

== Linux commits ==

f195f00e11e2 usb/icl: Work around ACPI boottime crash

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9498/issues.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#2 lore raw

✓ Fi.CI.IGT: success for usb/icl: Work around ACPI boottime crash

In reply to Imre Deak
== Series Details ==

== Series Details ==

Series: usb/icl: Work around ACPI boottime crash
URL : https://patchwork.freedesktop.org/series/45778/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4412_full -> Patchwork_9498_full =

== Summary - SUCCESS ==

No regressions found.

== Known issues ==

Here are the changes found in Patchwork_9498_full that come from known issues:

=== IGT changes ===

    ==== Issues hit ====

    igt@drv_selftest@live_gtt:
      shard-apl:          PASS -> FAIL (fdo#105347)

    igt@gem_tiled_fence_blits@normal:
      shard-snb:          NOTRUN -> INCOMPLETE (fdo#105411)

    igt@gem_workarounds@suspend-resume-context:
      shard-kbl:          PASS -> INCOMPLETE (fdo#103665)

    igt@kms_flip_tiling@flip-to-y-tiled:
      shard-glk:          PASS -> FAIL (fdo#104724, fdo#103822)

    igt@kms_setmode@basic:
      shard-kbl:          PASS -> FAIL (fdo#99912)

    
    ==== Possible fixes ====

    igt@drv_suspend@shrink:
      shard-glk:          FAIL (fdo#106886) -> PASS

    igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
      shard-glk:          FAIL (fdo#105189) -> PASS

    igt@kms_flip@2x-plain-flip-fb-recreate:
      shard-glk:          FAIL (fdo#100368) -> PASS

    igt@kms_flip@flip-vs-expired-vblank:
      shard-glk:          FAIL (fdo#105363, fdo#102887) -> PASS

    igt@kms_flip_tiling@flip-to-x-tiled:
      shard-glk:          FAIL (fdo#104724) -> PASS

    igt@perf_pmu@busy-idle-no-semaphores-vecs0:
      shard-snb:          INCOMPLETE (fdo#105411) -> SKIP

fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#102887 https://bugs.freedesktop.org/show_bug.cgi?id=102887
fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
fdo#103822 https://bugs.freedesktop.org/show_bug.cgi?id=103822
fdo#104724 https://bugs.freedesktop.org/show_bug.cgi?id=104724
fdo#105189 https://bugs.freedesktop.org/show_bug.cgi?id=105189
fdo#105347 https://bugs.freedesktop.org/show_bug.cgi?id=105347
fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
fdo#106886 https://bugs.freedesktop.org/show_bug.cgi?id=106886
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912

== Participating hosts (5 -> 5) ==

No changes in participating hosts

== Build changes ==

* Linux: CI_DRM_4412 -> Patchwork_9498

CI_DRM_4412: 3cd46a79b208e82ba0b2da4282e59312a79d29cc @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_4532: 840d12e2f050b784552197403d6575a57b6e896d @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
Patchwork_9498: f195f00e11e20013ab321df784e9b806aefc81c6 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9498/shards.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#3 lore raw
In reply to Imre Deak

Quoting Imre Deak (2018-07-02 14:57:56)

Quoted 85 lines

Work around the following boot time crash:

[   10.456056] CPU: 1 PID: 220 Comm: systemd-udevd Tainted: G        W         4.17.0-rc7-CI-CI_DRM_4040+ #182
[   10.465828] Hardware name: Intel Corporation Ice Lake Client Platform/IceLake U DDR4 SODIMM PD RVP, BIOS
+ICLSFWR1.R00.2204.A00.1805172221 05/17/2018
[   10.479168] RIP: 0010:acpi_ps_complete_this_op+0xa7/0x22a
[   10.484627] RSP: 0018:ffffc900003a7578 EFLAGS: 00010202
[   10.489881] RAX: 6b6b6b6b6b6b6b6b RBX: ffff8804abeda9c8 RCX: 0000000000000020
[   10.497045] RDX: 0000000000000000 RSI: ffff88049e604a68 RDI: 0000000000000000
[   10.504213] RBP: 0000000000000000 R08: ffff8804abeda9c8 R09: 0000000000000000
[   10.511376] R10: 0000000000000000 R11: 0000000000000000 R12: 000000000000000e
[   10.518542] R13: ffff88049e604a68 R14: ffff88049e604a68 R15: ffffffffa00263c2
[   10.525713] FS:  00007ff6d85f18c0(0000) GS:ffff8804be880000(0000) knlGS:0000000000000000
[   10.533839] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   10.539616] CR2: 00007ff6d73cff40 CR3: 000000049f794001 CR4: 0000000000760ee0
[   10.546783] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   10.553949] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[   10.561112] PKRU: 55555554
[   10.563849] Call Trace:
[   10.566323]  acpi_ps_complete_op+0x49/0x3f1
[   10.570537]  acpi_ps_parse_loop+0x94c/0x9bb
[   10.574754]  ? acpi_ds_delete_walk_state+0x113/0x131
[   10.579750]  acpi_ps_parse_aml+0x1a2/0x4af
[   10.583875]  acpi_ps_execute_method+0x1e9/0x2a5
[   10.588435]  acpi_ns_evaluate+0x2e4/0x42c
[   10.592473]  acpi_evaluate_object+0x1fd/0x3a8
[   10.596873]  usb_acpi_find_companion+0xee/0x1f0 [usbcore]
[   10.602319]  acpi_platform_notify+0x33/0xa0
[   10.606532]  device_add+0x197/0x600
[   10.610048]  ? __init_waitqueue_head+0x36/0x50
[   10.614529]  usb_hub_create_port_device+0x11d/0x340 [usbcore]
[   10.620314]  hub_probe+0x9a5/0x1010 [usbcore]
[   10.624701]  ? _raw_spin_unlock_irqrestore+0x51/0x60
[   10.629730]  usb_probe_interface+0x13f/0x300 [usbcore]
[   10.634900]  driver_probe_device+0x302/0x470
[   10.639198]  ? __driver_attach+0xe0/0xe0
[   10.643147]  bus_for_each_drv+0x59/0x90
[   10.647013]  __device_attach+0xb7/0x130
[   10.650878]  bus_probe_device+0x9c/0xb0
[   10.654745]  device_add+0x3c5/0x600
[   10.658270]  usb_set_configuration+0x540/0x880 [usbcore]
[   10.663621]  generic_probe+0x28/0x80 [usbcore]
[   10.668097]  driver_probe_device+0x302/0x470
[   10.672393]  ? __driver_attach+0xe0/0xe0
[   10.676346]  bus_for_each_drv+0x59/0x90
[   10.680211]  __device_attach+0xb7/0x130
[   10.684076]  bus_probe_device+0x9c/0xb0
[   10.687940]  device_add+0x3c5/0x600
[   10.691464]  usb_new_device+0x269/0x490 [usbcore]
[   10.696206]  usb_add_hcd+0x558/0x850 [usbcore]
[   10.700682]  xhci_pci_probe+0x13d/0x240 [xhci_pci]
[   10.705534]  pci_device_probe+0xa1/0x130
[   10.709484]  driver_probe_device+0x302/0x470
[   10.713784]  __driver_attach+0xb9/0xe0
[   10.717562]  ? driver_probe_device+0x470/0x470
[   10.722033]  ? driver_probe_device+0x470/0x470
[   10.726505]  bus_for_each_dev+0x64/0x90
[   10.730370]  ? preempt_count_sub+0x92/0xd0
[   10.734495]  bus_add_driver+0x164/0x260
[   10.738362]  ? 0xffffffffa004e000
[   10.741704]  driver_register+0x57/0xc0
[   10.745482]  ? 0xffffffffa004e000
[   10.748824]  do_one_initcall+0x4a/0x350
[   10.752690]  ? do_init_module+0x22/0x20a
[   10.756643]  ? rcu_read_lock_sched_held+0x74/0x80
[   10.761377]  ? kmem_cache_alloc_trace+0x284/0x2e0
[   10.766114]  do_init_module+0x5b/0x20a
[   10.769895]  load_module+0x250d/0x2b20
[   10.773678]  ? kernel_read+0x2c/0x40
[   10.777285]  ? __se_sys_finit_module+0xaa/0xc0
[   10.781759]  __se_sys_finit_module+0xaa/0xc0
[   10.786061]  do_syscall_64+0x54/0x190
[   10.789752]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
[   10.794831] RIP: 0033:0x7ff6d74664d9
[   10.798430] RSP: 002b:00007ffd91e7dd78 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[   10.806033] RAX: ffffffffffffffda RBX: 0000560519bfae20 RCX: 00007ff6d74664d9
[   10.813195] RDX: 0000000000000000 RSI: 00007ff6d795ce23 RDI: 000000000000000e
[   10.820360] RBP: 00007ff6d795ce23 R08: 0000000000000000 R09: 0000000000000000
[   10.827523] R10: 000000000000000e R11: 0000000000000246 R12: 0000000000000000
[   10.834690] R13: 0000560519bf9a30 R14: 0000000000020000 R15: 000000000aba9500
[   10.841862] Code: c2 10 5f ea 81 48 c7 c6 f0 5e ea 81 bf 7c 00 00 00 e8 0d 7c 00 00 31 ed e9 88 01 00 00 48 8b 03 31 ed 48 85 c0
+0f 84 e9 00 00 00 <4c> 8b 60 28 4d 85 e4 0f 84 dc 00 00 00 0f b7 78 0a e8 62 fe ff
[   10.860832] RIP: acpi_ps_complete_this_op+0xa7/0x22a RSP: ffffc900003a7578
[   10.867907] ---[ end trace 3a0d2ee1129bc71e ]---
Quoted 2 lines
Cc Chris Wilson <[email protected]>

T-b Tomi?
-Chris
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Tested-by
#4 lore raw
Quoted 23 lines · Chris Wilson

Quoting Imre Deak (2018-07-02 14:57:56)

Quoted 22 lines

Work around the following boot time crash:

[   10.456056] CPU: 1 PID: 220 Comm: systemd-udevd Tainted: G        W         4.17.0-rc7-CI-CI_DRM_4040+ #182
[   10.465828] Hardware name: Intel Corporation Ice Lake Client Platform/IceLake U DDR4 SODIMM PD RVP, BIOS
+ICLSFWR1.R00.2204.A00.1805172221 05/17/2018
[   10.479168] RIP: 0010:acpi_ps_complete_this_op+0xa7/0x22a
[   10.484627] RSP: 0018:ffffc900003a7578 EFLAGS: 00010202
[   10.489881] RAX: 6b6b6b6b6b6b6b6b RBX: ffff8804abeda9c8 RCX: 0000000000000020
[   10.497045] RDX: 0000000000000000 RSI: ffff88049e604a68 RDI: 0000000000000000
[   10.504213] RBP: 0000000000000000 R08: ffff8804abeda9c8 R09: 0000000000000000
[   10.511376] R10: 0000000000000000 R11: 0000000000000000 R12: 000000000000000e
[   10.518542] R13: ffff88049e604a68 R14: ffff88049e604a68 R15: ffffffffa00263c2
[   10.525713] FS:  00007ff6d85f18c0(0000) GS:ffff8804be880000(0000) knlGS:0000000000000000
[   10.533839] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   10.539616] CR2: 00007ff6d73cff40 CR3: 000000049f794001 CR4: 0000000000760ee0
[   10.546783] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   10.553949] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[   10.561112] PKRU: 55555554
[   10.563849] Call Trace:
[   10.566323]  acpi_ps_complete_op+0x49/0x3f1
[   10.570537]  acpi_ps_parse_loop+0x94c/0x9bb
[   10.574754]  ? acpi_ds_delete_walk_state+0x113/0x131

...

Quoted 6 lines
Quoted 3 lines
Cc Chris Wilson <[email protected]>

T-b Tomi?
-Chris

Tested with pre-release ICL hardware, and the patch helps with this particular boot-time crash.

Tomi

Signature · 5 lines
Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
#5 lore raw

Quoting Tomi Sarvela (2018-07-03 08:15:05)

Quoted 29 lines · Chris Wilson
Quoted 23 lines

Quoting Imre Deak (2018-07-02 14:57:56)

Quoted 22 lines

Work around the following boot time crash:

[   10.456056] CPU: 1 PID: 220 Comm: systemd-udevd Tainted: G        W         4.17.0-rc7-CI-CI_DRM_4040+ #182
[   10.465828] Hardware name: Intel Corporation Ice Lake Client Platform/IceLake U DDR4 SODIMM PD RVP, BIOS
+ICLSFWR1.R00.2204.A00.1805172221 05/17/2018
[   10.479168] RIP: 0010:acpi_ps_complete_this_op+0xa7/0x22a
[   10.484627] RSP: 0018:ffffc900003a7578 EFLAGS: 00010202
[   10.489881] RAX: 6b6b6b6b6b6b6b6b RBX: ffff8804abeda9c8 RCX: 0000000000000020
[   10.497045] RDX: 0000000000000000 RSI: ffff88049e604a68 RDI: 0000000000000000
[   10.504213] RBP: 0000000000000000 R08: ffff8804abeda9c8 R09: 0000000000000000
[   10.511376] R10: 0000000000000000 R11: 0000000000000000 R12: 000000000000000e
[   10.518542] R13: ffff88049e604a68 R14: ffff88049e604a68 R15: ffffffffa00263c2
[   10.525713] FS:  00007ff6d85f18c0(0000) GS:ffff8804be880000(0000) knlGS:0000000000000000
[   10.533839] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   10.539616] CR2: 00007ff6d73cff40 CR3: 000000049f794001 CR4: 0000000000760ee0
[   10.546783] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   10.553949] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[   10.561112] PKRU: 55555554
[   10.563849] Call Trace:
[   10.566323]  acpi_ps_complete_op+0x49/0x3f1
[   10.570537]  acpi_ps_parse_loop+0x94c/0x9bb
[   10.574754]  ? acpi_ds_delete_walk_state+0x113/0x131

...

Quoted 4 lines
Quoted 3 lines
Cc Chris Wilson <[email protected]>
Quoted 7 lines
Quoted 2 lines

T-b Tomi?
-Chris

Tested with pre-release ICL hardware, and the patch helps with this particular boot-time crash.

And plonked onto topic/core-for-CI. Imre I trust you'll raise the issue with the authors?
-Chris
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

author
#6 lore raw
Quoted 33 lines · Chris Wilson

Quoting Tomi Sarvela (2018-07-03 08:15:05)

Quoted 32 lines · Chris Wilson
Quoted 23 lines

Quoting Imre Deak (2018-07-02 14:57:56)

Quoted 22 lines

Work around the following boot time crash:

[   10.456056] CPU: 1 PID: 220 Comm: systemd-udevd Tainted: G        W         4.17.0-rc7-CI-CI_DRM_4040+ #182
[   10.465828] Hardware name: Intel Corporation Ice Lake Client Platform/IceLake U DDR4 SODIMM PD RVP, BIOS
+ICLSFWR1.R00.2204.A00.1805172221 05/17/2018
[   10.479168] RIP: 0010:acpi_ps_complete_this_op+0xa7/0x22a
[   10.484627] RSP: 0018:ffffc900003a7578 EFLAGS: 00010202
[   10.489881] RAX: 6b6b6b6b6b6b6b6b RBX: ffff8804abeda9c8 RCX: 0000000000000020
[   10.497045] RDX: 0000000000000000 RSI: ffff88049e604a68 RDI: 0000000000000000
[   10.504213] RBP: 0000000000000000 R08: ffff8804abeda9c8 R09: 0000000000000000
[   10.511376] R10: 0000000000000000 R11: 0000000000000000 R12: 000000000000000e
[   10.518542] R13: ffff88049e604a68 R14: ffff88049e604a68 R15: ffffffffa00263c2
[   10.525713] FS:  00007ff6d85f18c0(0000) GS:ffff8804be880000(0000) knlGS:0000000000000000
[   10.533839] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   10.539616] CR2: 00007ff6d73cff40 CR3: 000000049f794001 CR4: 0000000000760ee0
[   10.546783] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   10.553949] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[   10.561112] PKRU: 55555554
[   10.563849] Call Trace:
[   10.566323]  acpi_ps_complete_op+0x49/0x3f1
[   10.570537]  acpi_ps_parse_loop+0x94c/0x9bb
[   10.574754]  ? acpi_ds_delete_walk_state+0x113/0x131

...

Quoted 6 lines
Quoted 3 lines
Cc Chris Wilson <[email protected]>

T-b Tomi?
-Chris

Quoted 7 lines
Quoted 4 lines

Tested with pre-release ICL hardware, and the patch helps with this particular boot-time crash.

And plonked onto topic/core-for-CI. Imre I trust you'll raise the issue with the authors?

Mathias from the USB team is looking into it, I'll follow up on the progress of that.

--Imre
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#7 lore raw
In reply to Imre Deak

Em Seg, 2018-07-02 às 16:57 +0300, Imre Deak escreveu:

Quoted 1 line

Work around the following boot time crash:

I worked around a very similar boot time crash by disabling CONFIG_SLAB_FREELIST_HARDENED. Can you please verify if this helps?

Reference is LCK-5401.

Quoted 165 lines
[   10.456056] CPU: 1 PID: 220 Comm: systemd-udevd Tainted:
G        W         4.17.0-rc7-CI-CI_DRM_4040+ #182
[   10.465828] Hardware name: Intel Corporation Ice Lake Client
Platform/IceLake U DDR4 SODIMM PD RVP, BIOS
+ICLSFWR1.R00.2204.A00.1805172221 05/17/2018
[   10.479168] RIP: 0010:acpi_ps_complete_this_op+0xa7/0x22a
[   10.484627] RSP: 0018:ffffc900003a7578 EFLAGS: 00010202
[   10.489881] RAX: 6b6b6b6b6b6b6b6b RBX: ffff8804abeda9c8 RCX:
0000000000000020
[   10.497045] RDX: 0000000000000000 RSI: ffff88049e604a68 RDI:
0000000000000000
[   10.504213] RBP: 0000000000000000 R08: ffff8804abeda9c8 R09:
0000000000000000
[   10.511376] R10: 0000000000000000 R11: 0000000000000000 R12:
000000000000000e
[   10.518542] R13: ffff88049e604a68 R14: ffff88049e604a68 R15:
ffffffffa00263c2
[   10.525713] FS:  00007ff6d85f18c0(0000) GS:ffff8804be880000(0000)
knlGS:0000000000000000
[   10.533839] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   10.539616] CR2: 00007ff6d73cff40 CR3: 000000049f794001 CR4:
0000000000760ee0
[   10.546783] DR0: 0000000000000000 DR1: 0000000000000000 DR2:
0000000000000000
[   10.553949] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7:
0000000000000400
[   10.561112] PKRU: 55555554
[   10.563849] Call Trace:
[   10.566323]  acpi_ps_complete_op+0x49/0x3f1
[   10.570537]  acpi_ps_parse_loop+0x94c/0x9bb
[   10.574754]  ? acpi_ds_delete_walk_state+0x113/0x131
[   10.579750]  acpi_ps_parse_aml+0x1a2/0x4af
[   10.583875]  acpi_ps_execute_method+0x1e9/0x2a5
[   10.588435]  acpi_ns_evaluate+0x2e4/0x42c
[   10.592473]  acpi_evaluate_object+0x1fd/0x3a8
[   10.596873]  usb_acpi_find_companion+0xee/0x1f0 [usbcore]
[   10.602319]  acpi_platform_notify+0x33/0xa0
[   10.606532]  device_add+0x197/0x600
[   10.610048]  ? __init_waitqueue_head+0x36/0x50
[   10.614529]  usb_hub_create_port_device+0x11d/0x340 [usbcore]
[   10.620314]  hub_probe+0x9a5/0x1010 [usbcore]
[   10.624701]  ? _raw_spin_unlock_irqrestore+0x51/0x60
[   10.629730]  usb_probe_interface+0x13f/0x300 [usbcore]
[   10.634900]  driver_probe_device+0x302/0x470
[   10.639198]  ? __driver_attach+0xe0/0xe0
[   10.643147]  bus_for_each_drv+0x59/0x90
[   10.647013]  __device_attach+0xb7/0x130
[   10.650878]  bus_probe_device+0x9c/0xb0
[   10.654745]  device_add+0x3c5/0x600
[   10.658270]  usb_set_configuration+0x540/0x880 [usbcore]
[   10.663621]  generic_probe+0x28/0x80 [usbcore]
[   10.668097]  driver_probe_device+0x302/0x470
[   10.672393]  ? __driver_attach+0xe0/0xe0
[   10.676346]  bus_for_each_drv+0x59/0x90
[   10.680211]  __device_attach+0xb7/0x130
[   10.684076]  bus_probe_device+0x9c/0xb0
[   10.687940]  device_add+0x3c5/0x600
[   10.691464]  usb_new_device+0x269/0x490 [usbcore]
[   10.696206]  usb_add_hcd+0x558/0x850 [usbcore]
[   10.700682]  xhci_pci_probe+0x13d/0x240 [xhci_pci]
[   10.705534]  pci_device_probe+0xa1/0x130
[   10.709484]  driver_probe_device+0x302/0x470
[   10.713784]  __driver_attach+0xb9/0xe0
[   10.717562]  ? driver_probe_device+0x470/0x470
[   10.722033]  ? driver_probe_device+0x470/0x470
[   10.726505]  bus_for_each_dev+0x64/0x90
[   10.730370]  ? preempt_count_sub+0x92/0xd0
[   10.734495]  bus_add_driver+0x164/0x260
[   10.738362]  ? 0xffffffffa004e000
[   10.741704]  driver_register+0x57/0xc0
[   10.745482]  ? 0xffffffffa004e000
[   10.748824]  do_one_initcall+0x4a/0x350
[   10.752690]  ? do_init_module+0x22/0x20a
[   10.756643]  ? rcu_read_lock_sched_held+0x74/0x80
[   10.761377]  ? kmem_cache_alloc_trace+0x284/0x2e0
[   10.766114]  do_init_module+0x5b/0x20a
[   10.769895]  load_module+0x250d/0x2b20
[   10.773678]  ? kernel_read+0x2c/0x40
[   10.777285]  ? __se_sys_finit_module+0xaa/0xc0
[   10.781759]  __se_sys_finit_module+0xaa/0xc0
[   10.786061]  do_syscall_64+0x54/0x190
[   10.789752]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
[   10.794831] RIP: 0033:0x7ff6d74664d9
[   10.798430] RSP: 002b:00007ffd91e7dd78 EFLAGS: 00000246 ORIG_RAX:
0000000000000139
[   10.806033] RAX: ffffffffffffffda RBX: 0000560519bfae20 RCX:
00007ff6d74664d9
[   10.813195] RDX: 0000000000000000 RSI: 00007ff6d795ce23 RDI:
000000000000000e
[   10.820360] RBP: 00007ff6d795ce23 R08: 0000000000000000 R09:
0000000000000000
[   10.827523] R10: 000000000000000e R11: 0000000000000246 R12:
0000000000000000
[   10.834690] R13: 0000560519bf9a30 R14: 0000000000020000 R15:
000000000aba9500
[   10.841862] Code: c2 10 5f ea 81 48 c7 c6 f0 5e ea 81 bf 7c 00 00
00 e8 0d 7c 00 00 31 ed e9 88 01 00 00 48 8b 03 31 ed 48 85 c0
+0f 84 e9 00 00 00 <4c> 8b 60 28 4d 85 e4 0f 84 dc 00 00 00 0f b7 78
0a e8 62 fe ff
[   10.860832] RIP: acpi_ps_complete_this_op+0xa7/0x22a RSP:
ffffc900003a7578
[   10.867907] ---[ end trace 3a0d2ee1129bc71e ]---
Cc Chris Wilson <[email protected]>
---
 drivers/usb/core/usb-acpi.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)
drivers/usb/core/usb- renamed from drivers/usb/core/usb-acpi.c +0 -0

acpi.c
index e221861b3187..8424b3a27e7e 100644

drivers/usb/core/usb-acpi.c +15 -0
@@ -12,6 +12,7 @@
 #include <linux/acpi.h>
 #include <linux/pci.h>
 #include <linux/usb/hcd.h>
+#include <linux/dmi.h>
 
 #include "hub.h"
 
@@ -81,6 +82,20 @@ int usb_acpi_set_power_state(struct usb_device
 *hdev, int index, bool enable)
 }
 EXPORT_SYMBOL_GPL(usb_acpi_set_power_state);
 
+static const struct dmi_system_id intel_icl_broken_acpi[] = {
+	{
+		.ident = "ICL RVP",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Intel
 Corporation"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Ice Lake Client
 Platform"),
+		},
+	},
+
+	{ }
+};
+
+static bool acpi_connection_type_broken;
+

static enum usb_port_connect_type
usb_acpi_get_connect_type(acpi_handle handle,

drivers/usb/core/usb-acpi.c +1 -0
 		struct acpi_pld_info *pld)
 {
@@ -89,6 +104,10 @@ static enum usb_port_connect_type
 usb_acpi_get_connect_type(acpi_handle handle,
 	union acpi_object *upc;
 	acpi_status status;
 
+	/* Work around unknown ACPI instruction error on ICL RVP

BIOSes. */

drivers/usb/core/usb-acpi.c +3 -0
+	if (acpi_connection_type_broken)
+		return USB_PORT_CONNECT_TYPE_UNKNOWN;
+
 	/*
 	 * According to 9.14 in ACPI Spec 6.2. _PLD indicates

whether usb port
* is user visible and _UPC indicates whether it is
connectable. If

drivers/usb/core/usb-acpi.c +0 -0
@@ -235,6 +254,11 @@ static struct acpi_bus_type usb_acpi_bus = {
 

drivers/usb/core/usb-acpi.c static struct acpi_bus_type usb_acpi_bus = { · line 264

Quoted 10 lines
drivers/usb/core/usb-acpi.c +5 -0
 int usb_acpi_register(void)
 {
+	if (dmi_check_system(intel_icl_broken_acpi)) {
+		pr_info("USB ACPI connection type broken.\n");
+		acpi_connection_type_broken = true;
+	}
+
 	return register_acpi_bus_type(&usb_acpi_bus);
 }
 

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#8 lore raw
Quoted 5 lines · Paulo Zanoni

Em Seg, 2018-07-02 às 16:57 +0300, Imre Deak escreveu:

Quoted 1 line

Work around the following boot time crash:

I worked around a very similar boot time crash by disabling CONFIG_SLAB_FREELIST_HARDENED. Can you please verify if this helps?

From the CI kernel configuration:

CONFIG_SLUB=y
# CONFIG_SLOB is not set
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLAB_FREELIST_RANDOM is not set
# CONFIG_SLAB_FREELIST_HARDENED is not set
CONFIG_SLUB_CPU_PARTIAL=y
# CONFIG_PROFILING is not set

Tomi

Quoted 168 lines

Reference is LCK-5401.

Quoted 165 lines
[   10.456056] CPU: 1 PID: 220 Comm: systemd-udevd Tainted:
G        W         4.17.0-rc7-CI-CI_DRM_4040+ #182
[   10.465828] Hardware name: Intel Corporation Ice Lake Client
Platform/IceLake U DDR4 SODIMM PD RVP, BIOS
+ICLSFWR1.R00.2204.A00.1805172221 05/17/2018
[   10.479168] RIP: 0010:acpi_ps_complete_this_op+0xa7/0x22a
[   10.484627] RSP: 0018:ffffc900003a7578 EFLAGS: 00010202
[   10.489881] RAX: 6b6b6b6b6b6b6b6b RBX: ffff8804abeda9c8 RCX:
0000000000000020
[   10.497045] RDX: 0000000000000000 RSI: ffff88049e604a68 RDI:
0000000000000000
[   10.504213] RBP: 0000000000000000 R08: ffff8804abeda9c8 R09:
0000000000000000
[   10.511376] R10: 0000000000000000 R11: 0000000000000000 R12:
000000000000000e
[   10.518542] R13: ffff88049e604a68 R14: ffff88049e604a68 R15:
ffffffffa00263c2
[   10.525713] FS:  00007ff6d85f18c0(0000) GS:ffff8804be880000(0000)
knlGS:0000000000000000
[   10.533839] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   10.539616] CR2: 00007ff6d73cff40 CR3: 000000049f794001 CR4:
0000000000760ee0
[   10.546783] DR0: 0000000000000000 DR1: 0000000000000000 DR2:
0000000000000000
[   10.553949] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7:
0000000000000400
[   10.561112] PKRU: 55555554
[   10.563849] Call Trace:
[   10.566323]  acpi_ps_complete_op+0x49/0x3f1
[   10.570537]  acpi_ps_parse_loop+0x94c/0x9bb
[   10.574754]  ? acpi_ds_delete_walk_state+0x113/0x131
[   10.579750]  acpi_ps_parse_aml+0x1a2/0x4af
[   10.583875]  acpi_ps_execute_method+0x1e9/0x2a5
[   10.588435]  acpi_ns_evaluate+0x2e4/0x42c
[   10.592473]  acpi_evaluate_object+0x1fd/0x3a8
[   10.596873]  usb_acpi_find_companion+0xee/0x1f0 [usbcore]
[   10.602319]  acpi_platform_notify+0x33/0xa0
[   10.606532]  device_add+0x197/0x600
[   10.610048]  ? __init_waitqueue_head+0x36/0x50
[   10.614529]  usb_hub_create_port_device+0x11d/0x340 [usbcore]
[   10.620314]  hub_probe+0x9a5/0x1010 [usbcore]
[   10.624701]  ? _raw_spin_unlock_irqrestore+0x51/0x60
[   10.629730]  usb_probe_interface+0x13f/0x300 [usbcore]
[   10.634900]  driver_probe_device+0x302/0x470
[   10.639198]  ? __driver_attach+0xe0/0xe0
[   10.643147]  bus_for_each_drv+0x59/0x90
[   10.647013]  __device_attach+0xb7/0x130
[   10.650878]  bus_probe_device+0x9c/0xb0
[   10.654745]  device_add+0x3c5/0x600
[   10.658270]  usb_set_configuration+0x540/0x880 [usbcore]
[   10.663621]  generic_probe+0x28/0x80 [usbcore]
[   10.668097]  driver_probe_device+0x302/0x470
[   10.672393]  ? __driver_attach+0xe0/0xe0
[   10.676346]  bus_for_each_drv+0x59/0x90
[   10.680211]  __device_attach+0xb7/0x130
[   10.684076]  bus_probe_device+0x9c/0xb0
[   10.687940]  device_add+0x3c5/0x600
[   10.691464]  usb_new_device+0x269/0x490 [usbcore]
[   10.696206]  usb_add_hcd+0x558/0x850 [usbcore]
[   10.700682]  xhci_pci_probe+0x13d/0x240 [xhci_pci]
[   10.705534]  pci_device_probe+0xa1/0x130
[   10.709484]  driver_probe_device+0x302/0x470
[   10.713784]  __driver_attach+0xb9/0xe0
[   10.717562]  ? driver_probe_device+0x470/0x470
[   10.722033]  ? driver_probe_device+0x470/0x470
[   10.726505]  bus_for_each_dev+0x64/0x90
[   10.730370]  ? preempt_count_sub+0x92/0xd0
[   10.734495]  bus_add_driver+0x164/0x260
[   10.738362]  ? 0xffffffffa004e000
[   10.741704]  driver_register+0x57/0xc0
[   10.745482]  ? 0xffffffffa004e000
[   10.748824]  do_one_initcall+0x4a/0x350
[   10.752690]  ? do_init_module+0x22/0x20a
[   10.756643]  ? rcu_read_lock_sched_held+0x74/0x80
[   10.761377]  ? kmem_cache_alloc_trace+0x284/0x2e0
[   10.766114]  do_init_module+0x5b/0x20a
[   10.769895]  load_module+0x250d/0x2b20
[   10.773678]  ? kernel_read+0x2c/0x40
[   10.777285]  ? __se_sys_finit_module+0xaa/0xc0
[   10.781759]  __se_sys_finit_module+0xaa/0xc0
[   10.786061]  do_syscall_64+0x54/0x190
[   10.789752]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
[   10.794831] RIP: 0033:0x7ff6d74664d9
[   10.798430] RSP: 002b:00007ffd91e7dd78 EFLAGS: 00000246 ORIG_RAX:
0000000000000139
[   10.806033] RAX: ffffffffffffffda RBX: 0000560519bfae20 RCX:
00007ff6d74664d9
[   10.813195] RDX: 0000000000000000 RSI: 00007ff6d795ce23 RDI:
000000000000000e
[   10.820360] RBP: 00007ff6d795ce23 R08: 0000000000000000 R09:
0000000000000000
[   10.827523] R10: 000000000000000e R11: 0000000000000246 R12:
0000000000000000
[   10.834690] R13: 0000560519bf9a30 R14: 0000000000020000 R15:
000000000aba9500
[   10.841862] Code: c2 10 5f ea 81 48 c7 c6 f0 5e ea 81 bf 7c 00 00
00 e8 0d 7c 00 00 31 ed e9 88 01 00 00 48 8b 03 31 ed 48 85 c0
+0f 84 e9 00 00 00 <4c> 8b 60 28 4d 85 e4 0f 84 dc 00 00 00 0f b7 78
0a e8 62 fe ff
[   10.860832] RIP: acpi_ps_complete_this_op+0xa7/0x22a RSP:
ffffc900003a7578
[   10.867907] ---[ end trace 3a0d2ee1129bc71e ]---
Cc Chris Wilson <[email protected]>
---
  drivers/usb/core/usb-acpi.c | 24 ++++++++++++++++++++++++
  1 file changed, 24 insertions(+)
drivers/usb/core/usb- renamed from drivers/usb/core/usb-acpi.c +0 -0

acpi.c
index e221861b3187..8424b3a27e7e 100644

drivers/usb/core/usb-acpi.c +15 -0
@@ -12,6 +12,7 @@
  #include <linux/acpi.h>
  #include <linux/pci.h>
  #include <linux/usb/hcd.h>
+#include <linux/dmi.h>
 
  #include "hub.h"
 
@@ -81,6 +82,20 @@ int usb_acpi_set_power_state(struct usb_device
 *hdev, int index, bool enable)
  }
  EXPORT_SYMBOL_GPL(usb_acpi_set_power_state);
 
+static const struct dmi_system_id intel_icl_broken_acpi[] = {
+	{
+		.ident = "ICL RVP",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Intel
 Corporation"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Ice Lake Client
 Platform"),
+		},
+	},
+
+	{ }
+};
+
+static bool acpi_connection_type_broken;
+

static enum usb_port_connect_type
usb_acpi_get_connect_type(acpi_handle handle,
struct acpi_pld_info *pld)
{

drivers/usb/core/usb-acpi.c +1 -0
@@ -89,6 +104,10 @@ static enum usb_port_connect_type
 usb_acpi_get_connect_type(acpi_handle handle,
  	union acpi_object *upc;
  	acpi_status status;
 
+	/* Work around unknown ACPI instruction error on ICL RVP

BIOSes. */

drivers/usb/core/usb-acpi.c +3 -0
+	if (acpi_connection_type_broken)
+		return USB_PORT_CONNECT_TYPE_UNKNOWN;
+
  	/*
  	 * According to 9.14 in ACPI Spec 6.2. _PLD indicates

whether usb port
* is user visible and _UPC indicates whether it is
connectable. If

drivers/usb/core/usb-acpi.c +0 -0
@@ -235,6 +254,11 @@ static struct acpi_bus_type usb_acpi_bus = {
 
Quoted 10 lines

drivers/usb/core/usb-acpi.c static struct acpi_bus_type usb_acpi_bus = { · line 264

Quoted 10 lines
drivers/usb/core/usb-acpi.c +5 -0
  int usb_acpi_register(void)
  {
+	if (dmi_check_system(intel_icl_broken_acpi)) {
+		pr_info("USB ACPI connection type broken.\n");
+		acpi_connection_type_broken = true;
+	}
+
  	return register_acpi_bus_type(&usb_acpi_bus);
  }
 

Tomi

Signature · 5 lines
Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx