Hi, On 1/15/21 4:38 PM, Pierre-Louis Bossart wrote: > >> This means that skipping the enumeration of a certain device alone is >> problematic which is a surprise of sorts. >> >> Let's see what device that may be. >> >> Because the machine booted with the debug patch from Hans, it should also boot >> with the one below, so please do that and send the output of >> >> $ dmesg | grep Dependencies > > Yep, boot success with that patch :-) > > root@plb-Zotac:~# dmesg | grep Dependencies > [ 0.426722] ACPI: \_SB_.PCI0.SDHB: Dependencies found > [ 0.427927] ACPI: \_SB_.PCI0.SDHB.BRCM: Dependencies found > [ 0.431863] ACPI: \_SB_.PCI0.SDHC: Dependencies found > [ 0.433128] ACPI: \_SB_.PCI0.SHC1: Dependencies found > [ 0.466328] ACPI: \_SB_.PCI0.I2C1.BATC: Dependencies found > [ 0.478490] ACPI: \_SB_.PCI0.I2C3.TIDR: Dependencies found > [ 0.479851] ACPI: \_SB_.PCI0.I2C3.ABAT: Dependencies found > [ 0.480756] ACPI: \_SB_.PCI0.I2C4: Dependencies found > [ 0.482605] ACPI: \_SB_.PCI0.I2C4.CA10: Dependencies found > [ 0.484464] ACPI: \_SB_.PCI0.I2C4.CAM9: Dependencies found > [ 0.485769] ACPI: \_SB_.PCI0.I2C4.CAM3: Dependencies found > [ 0.487187] ACPI: \_SB_.PCI0.I2C4.CAM4: Dependencies found > [ 0.490563] ACPI: \_SB_.PCI0.I2C6.TCS0: Dependencies found > [ 0.492673] ACPI: \_SB_.PCI0.I2C6.SYN1: Dependencies found > [ 0.494923] ACPI: \_SB_.PCI0.I2C7.PMI1: Dependencies found > [ 0.496528] ACPI: \_SB_.PCI0.I2C7.PMI2: Dependencies found > [ 0.498111] ACPI: \_SB_.PCI0.I2C7.PMI5: Dependencies found > [ 0.499909] ACPI: \_SB_.PCI0.I2C7.PMIF: Dependencies found > [ 0.500891] ACPI: \_SB_.PCI0.I2C7.PMIC: Dependencies found > [ 0.502822] ACPI: \_SB_.PCI0.I2C7.BMDR: Dependencies found > [ 0.504333] ACPI: \_SB_.PCI0.I2C7.WIDR: Dependencies found > [ 0.505689] ACPI: \_SB_.PCI0.I2C7.BATC: Dependencies found > [ 0.509734] ACPI: \_SB_.PCI0.AMCR: Dependencies found > [ 0.510715] ACPI: \_SB_.PCI0.TIMC: Dependencies found > [ 0.516336] ACPI: \_SB_.PCI0.BRCM: Dependencies found Ah, that is enlightening, that is not supposed to happen, that device has both an _ADR and an _HID method which is not allowed according to the spec. Can you try a clean 5.11 kernel (so none of the previous debug patches) with the following change added: diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index 1f27f74cc83c..93954ac3bfcc 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c @@ -1854,7 +1854,8 @@ static u32 acpi_scan_check_dep(acpi_handle handle) * 2. ACPI nodes describing USB ports. * Still, checking for _HID catches more then just these cases ... */ - if (!acpi_has_method(handle, "_DEP") || !acpi_has_method(handle, "_HID")) + if (!acpi_has_method(handle, "_DEP") || !acpi_has_method(handle, "_HID") || + acpi_has_method(handle, "_ADR")) return 0; status = acpi_evaluate_reference(handle, "_DEP", NULL, &dep_devices); > [ 0.517490] ACPI: \_SB_.PCI0.LNPW: Dependencies found And idem. for this one. That might very well fix this. Regards, Hans > [ 0.531940] ACPI: \_SB_.WLCH: Dependencies found > [ 0.532866] ACPI: \_SB_.WCH2: Dependencies found > [ 0.533927] ACPI: \_SB_.FLDM: Dependencies found > [ 0.541033] ACPI: \_SB_.BTNS: Dependencies found > [ 0.543079] ACPI: \_SB_.TBAD: Dependencies found > [ 0.549169] ACPI: \_SB_.UBTC: Dependencies found > > I can run more tests as needed. > >> --- >> drivers/acpi/scan.c | 9 +++------ >> 1 file changed, 3 insertions(+), 6 deletions(-) >> >> Index: linux-pm/drivers/acpi/scan.c >> =================================================================== >> --- linux-pm.orig/drivers/acpi/scan.c >> +++ linux-pm/drivers/acpi/scan.c >> @@ -1950,10 +1950,8 @@ static acpi_status acpi_bus_check_add(ac >> if (type == ACPI_BUS_TYPE_DEVICE && check_dep) { >> u32 count = acpi_scan_check_dep(handle); >> /* Bail out if the number of recorded dependencies is not 0. */ >> - if (count > 0) { >> - acpi_bus_scan_second_pass = true; >> - return AE_CTRL_DEPTH; >> - } >> + if (count > 0) >> + acpi_handle_info(handle, "Dependencies found\n"); >> } >> acpi_add_single_object(&device, handle, type, sta); >> @@ -1961,8 +1959,7 @@ static acpi_status acpi_bus_check_add(ac >> return AE_CTRL_DEPTH; >> acpi_scan_init_hotplug(device); >> - if (!check_dep) >> - acpi_scan_dep_init(device); >> + acpi_scan_dep_init(device); >> out: >> if (!*adev_p) >> >> >> >