> Date: Sat, 26 Sep 2020 16:32:05 +0200 (CEST)
> From: Mark Kettenis <[email protected]>
> Cc: [email protected], [email protected]
> 
> > Date: Sat, 26 Sep 2020 15:28:15 +0200 (CEST)
> > From: Mark Kettenis <[email protected]>
> > 
> > > Date: Sat, 26 Sep 2020 11:55:40 +0200
> > > From: "Nicola Dell'Uomo" <[email protected]>
> > > 
> > > Il giorno Tue, 22 Sep 2020 12:44:00 +0200 (CEST)
> > > Mark Kettenis <[email protected]> ha scritto:
> > > 
> > > > Sorry, but we need to see the panic and subsequent acpihid(4) output.
> > > > If that output doesn't survive a reboot, please take a picture and
> > > > carefully transcribe the panic and any subsequent output.
> > > > 
> > > > Thanks,
> > > > 
> > > > Mark
> > > 
> > > Hi,
> > > 
> > > these are the screenshots of the panic message.
> > 
> > ok thanks
> > 
> > The problem here is that the AML is broken and calls ToHexString() on
> > a Package, which isn't allowed.  Irritatingly enough, the ACPI
> > standard is very poor at describing what should be done when this
> > happens.  So we panic.
> 
> Actually, I take that back.  The acpihid(4) passes a Buffer (which is
> ok) but somehow that gets converted into a Package.
> 
> Stay tuned...

Does this change fix the issue?


Index: dev/acpi/dsdt.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v
retrieving revision 1.255
diff -u -p -r1.255 dsdt.c
--- dev/acpi/dsdt.c     16 Sep 2020 11:52:17 -0000      1.255
+++ dev/acpi/dsdt.c     26 Sep 2020 16:02:56 -0000
@@ -2080,6 +2080,9 @@ aml_convert(struct aml_value *a, int cty
                case AML_OBJTYPE_STRING:
                        aml_addref(a, "XConvert");
                        return a;
+               case AML_OBJTYPE_PACKAGE: /* XXX Deal with broken Lenovo X1 
BIOS. */
+                       c = aml_allocvalue(AML_OBJTYPE_STRING, 0, NULL);
+                       break;
                }
                break;
        }

Reply via email to