Re: ACPI scan regression -> Boot fail on Cherrytrail w/ 5.11-rc3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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)
>>
>>
>>
> 




[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux