public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
* RE: DSDT in initrd
@ 2003-05-17  1:17 Grover, Andrew
       [not found] ` <F760B14C9561B941B89469F59BA3A847E96EA0-sBd4vmA9Se4Lll3ZsUKC9FDQ4js95KgL@public.gmane.org>
  0 siblings, 1 reply; 17+ messages in thread
From: Grover, Andrew @ 2003-05-17  1:17 UTC (permalink / raw)
  To: Randy.Dunlap
  Cc: mflt1-DTdK3Ks6N5kHTnRCetW4+N0b+6lKrnBL, Brown, Len,
	acpi-devel-pyega4qmqnRoyOMFzWx49A

> From: Randy.Dunlap [mailto:rddunlap-3NddpPZAyC0@public.gmane.org] 
> Lots of newer systems don't have an option of "... safely reverts to
> non-ACPI ...", and surely you know that.  It's make ACPI work in some
> fashion or have no power management.

Yeah but DSDT in initrd doesn't help solve the problem for anyone but
hackers.

> It seems that your goal is idealistic and not user-friendly, at least
> not in the short-term.  It's a worthy long-term goal.

Anything that does not use the DSDT from the BIOS is not user-friendly.
It should "just work" for as many people as possible, without hackery.
It's never going to be 100%. The only way I can think of to get close is
if we take the time to implement a cutoff based on BIOS date, with both
a Good and Bad BIOS list, for exceptions to that cutoff.

I must admit I'm really torn. If there were 2-3 little AML problems that
if we worked around them, a horde of machines would start working, then
I think we would do that, but my sense is that there are many more ways
a DSDT can be broken, and that implementing workarounds for all of them
would cause other systems to fail. Maybe some of the people who have
fixed their DSDTs can comment on the scope of bugs out there.

> The ACPI interpreter will always have bugs in it.  The BIOS DSDTs
> will always have bugs.  After all, they are software (or firmware).

All I can say w.r.t. bugs is that it used to be the case that when
diagnosing an issue, I started with the assumption the BIOS was right
and the interpreter had a bug -- now I start with the assumption that
the BIOS is buggy. :) If we can come up with a solution to mitigate the
impact of bad DSDTs, then in my mind the only things left are 1)
squashing the few bugs left in the PCI IRQ routing code and 2) sleep
support. We've come a long way baby!

Regards -- Andy


-------------------------------------------------------
This SF.net email is sponsored by: If flattening out C++ or Java
code to make your application fit in a relational database is painful,
don't do it! Check out ObjectStore. Now part of Progress Software.
http://www.objectstore.net/sourceforge

^ permalink raw reply	[flat|nested] 17+ messages in thread
* RE: Working around bugs in ACPI BIOS [was Re: DSDT in initrd]
@ 2003-05-19 17:38 Cagle, John (ISS-Houston)
       [not found] ` <C50AB9511EE59B49B2A503CB7AE1ABD10440E51B-Iar2LzuD2f6P0FQRY6S+e9kSKC0Mw0DFJ8am2ALHCgk@public.gmane.org>
  0 siblings, 1 reply; 17+ messages in thread
From: Cagle, John (ISS-Houston) @ 2003-05-19 17:38 UTC (permalink / raw)
  To: Kevin Fenzi, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

I recently discovered the origin of the infamous Compaq asterisk
problem:

When doing the original ACPI BIOS code (for Win98, many years ago),
either Windows 98 or the Microsoft ASL compiler had a problem with
HIDs generated from EISA ID's.  To work around the problem, Microsoft
instructed us to use an asterisk as the first character of the _HID
value.  All MS OS's since have understood this as a valid character
for use in HIDs, yet it was never added to the ACPI spec.  This wasn't
a problem until Linux came along using Intel's ACPI stack, which was
written to the original spec, which doesn't allow asterisks in the
HIDs...

That said, it would be nice to relax that constraint in the Linux
ACPI implementation.  The BIOS developers are aware of the issue and
they are rolling that change into new implementations going forward,
but there's no way all existing laptops will get new versions of the
BIOS.

Regards,
John

> -----Original Message-----
> From: Kevin Fenzi [mailto:kevin-acpi-+bl/7iUgRMUAvxtiuMwx3w@public.gmane.org] 
> Sent: Monday, May 19, 2003 12:08 PM
> To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> Subject: Re: Working around bugs in ACPI BIOS [was Re: [ACPI] 
> DSDT in initrd]
> 
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> >>>>> "Pavel" == Pavel Machek <pavel-+ZI9xUNit7I@public.gmane.org> writes:
> 
> Pavel> Hi!
> >> I must admit I'm really torn. If there were 2-3 little AML 
> problems 
> >> that if we worked around them, a horde of machines would start 
> >> working, then I think we would do that, but my sense is that there 
> >> are many more ways a DSDT can be broken, and that implementing 
> >> workarounds for all of them would cause other systems to 
> fail. Maybe 
> >> some of the people who have fixed their DSDTs can comment on the 
> >> scope of bugs out there.
> 
> Pavel> I believe policy should be "if it can't possibly break anyone".
> 
> Pavel> AML functions not returning value can be safely replaced with 
> Pavel> returning 0; uninitialized variables can also be 
> initialized with 
> Pavel> 0. Both should be safe, and we should printk() loudly in both 
> Pavel> cases.
> 
> The one I would like to see is when acpi is parsing and comes 
> accross a variable with a * in it, it just removes the * and 
> parses the variable after that. This would make tons of 
> compaq laptops happy with acpi out of the box. I think pretty 
> much all of them have this bug. 
> 
> The main reason I have to modify my dsdt is to remove all the 
> *'s from it. ie, 
> 
> Name(_HID, "*PNP0C0B")
> ...
> Name(_HID, "*PNP0C01")
> ...
> Name(_HID, "*PNP0A03")
> 
> Is there any way this could be added?
> 
> Granted this might cause compaq to not update their bios, but 
> on many of the older laptops I don't think thats going to 
> happen anyhow. 
> 
> kevin
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.1 (GNU/Linux)
> Comment: Processed by Mailcrypt 3.5.8 
> <http://mailcrypt.sourceforge.net/>
> 
> 
> iD8DBQE+yQ9a3imCezTjY0ERAr3/AKCbuqoMQpYkRuMaBskTx1FPTiEDigCeMgN8
> rWg4Pf0x6RuabOMEtfjTVj8=
> =sStk
> -----END PGP SIGNATURE-----


-------------------------------------------------------
This SF.net email is sponsored by: If flattening out C++ or Java
code to make your application fit in a relational database is painful,
don't do it! Check out ObjectStore. Now part of Progress Software.
http://www.objectstore.net/sourceforge

^ permalink raw reply	[flat|nested] 17+ messages in thread
* RE: Working around bugs in ACPI BIOS [was Re: DSDT in initrd]
@ 2003-05-19 17:46 Moore, Robert
  0 siblings, 0 replies; 17+ messages in thread
From: Moore, Robert @ 2003-05-19 17:46 UTC (permalink / raw)
  To: Cagle, John (ISS-Houston), Kevin Fenzi,
	acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f


Why is it that only Compaq machines seem to use the asterisk?
Bob


> -----Original Message-----
> From: Cagle, John (ISS-Houston) [mailto:john.cagle-VXdhtT5mjnY@public.gmane.org]
> Sent: Monday, May 19, 2003 10:38 AM
> To: Kevin Fenzi; acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> Subject: RE: Working around bugs in ACPI BIOS [was Re: [ACPI] DSDT in
> initrd]
> 
> I recently discovered the origin of the infamous Compaq asterisk
> problem:
> 
> When doing the original ACPI BIOS code (for Win98, many years ago),
> either Windows 98 or the Microsoft ASL compiler had a problem with
> HIDs generated from EISA ID's.  To work around the problem, Microsoft
> instructed us to use an asterisk as the first character of the _HID
> value.  All MS OS's since have understood this as a valid character
> for use in HIDs, yet it was never added to the ACPI spec.  This wasn't
> a problem until Linux came along using Intel's ACPI stack, which was
> written to the original spec, which doesn't allow asterisks in the
> HIDs...
> 
> That said, it would be nice to relax that constraint in the Linux
> ACPI implementation.  The BIOS developers are aware of the issue and
> they are rolling that change into new implementations going forward,
> but there's no way all existing laptops will get new versions of the
> BIOS.
> 
> Regards,
> John
> 
> > -----Original Message-----
> > From: Kevin Fenzi [mailto:kevin-acpi-+bl/7iUgRMUAvxtiuMwx3w@public.gmane.org]
> > Sent: Monday, May 19, 2003 12:08 PM
> > To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > Subject: Re: Working around bugs in ACPI BIOS [was Re: [ACPI]
> > DSDT in initrd]
> >
> >
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > >>>>> "Pavel" == Pavel Machek <pavel-+ZI9xUNit7I@public.gmane.org> writes:
> >
> > Pavel> Hi!
> > >> I must admit I'm really torn. If there were 2-3 little AML
> > problems
> > >> that if we worked around them, a horde of machines would start
> > >> working, then I think we would do that, but my sense is that
there
> > >> are many more ways a DSDT can be broken, and that implementing
> > >> workarounds for all of them would cause other systems to
> > fail. Maybe
> > >> some of the people who have fixed their DSDTs can comment on the
> > >> scope of bugs out there.
> >
> > Pavel> I believe policy should be "if it can't possibly break
anyone".
> >
> > Pavel> AML functions not returning value can be safely replaced with
> > Pavel> returning 0; uninitialized variables can also be
> > initialized with
> > Pavel> 0. Both should be safe, and we should printk() loudly in both
> > Pavel> cases.
> >
> > The one I would like to see is when acpi is parsing and comes
> > accross a variable with a * in it, it just removes the * and
> > parses the variable after that. This would make tons of
> > compaq laptops happy with acpi out of the box. I think pretty
> > much all of them have this bug.
> >
> > The main reason I have to modify my dsdt is to remove all the
> > *'s from it. ie,
> >
> > Name(_HID, "*PNP0C0B")
> > ...
> > Name(_HID, "*PNP0C01")
> > ...
> > Name(_HID, "*PNP0A03")
> >
> > Is there any way this could be added?
> >
> > Granted this might cause compaq to not update their bios, but
> > on many of the older laptops I don't think thats going to
> > happen anyhow.
> >
> > kevin
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1.2.1 (GNU/Linux)
> > Comment: Processed by Mailcrypt 3.5.8
> > <http://mailcrypt.sourceforge.net/>
> >
> >
> > iD8DBQE+yQ9a3imCezTjY0ERAr3/AKCbuqoMQpYkRuMaBskTx1FPTiEDigCeMgN8
> > rWg4Pf0x6RuabOMEtfjTVj8=
> > =sStk
> > -----END PGP SIGNATURE-----
> 
> 
> -------------------------------------------------------
> This SF.net email is sponsored by: If flattening out C++ or Java
> code to make your application fit in a relational database is painful,
> don't do it! Check out ObjectStore. Now part of Progress Software.
> http://www.objectstore.net/sourceforge
> _______________________________________________
> Acpi-devel mailing list
> Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/acpi-devel


-------------------------------------------------------
This SF.net email is sponsored by: If flattening out C++ or Java
code to make your application fit in a relational database is painful,
don't do it! Check out ObjectStore. Now part of Progress Software.
http://www.objectstore.net/sourceforge

^ permalink raw reply	[flat|nested] 17+ messages in thread
* RE: Working around bugs in ACPI BIOS [was Re: DSDT in initrd]
@ 2003-05-19 17:50 Grover, Andrew
  0 siblings, 0 replies; 17+ messages in thread
From: Grover, Andrew @ 2003-05-19 17:50 UTC (permalink / raw)
  To: Cagle, John (ISS-Houston), Kevin Fenzi,
	acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

OK, sounds reasonable. Anyone have a patch verified to work for this,
sitting around? If not, I'll take a look at this for next release.

Regards -- Andy

> -----Original Message-----
> From: Cagle, John (ISS-Houston) [mailto:john.cagle-VXdhtT5mjnY@public.gmane.org] 
> Sent: Monday, May 19, 2003 10:38 AM
> To: Kevin Fenzi; acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> Subject: RE: Working around bugs in ACPI BIOS [was Re: [ACPI] 
> DSDT in initrd]
> 
> 
> I recently discovered the origin of the infamous Compaq asterisk
> problem:
> 
> When doing the original ACPI BIOS code (for Win98, many years ago),
> either Windows 98 or the Microsoft ASL compiler had a problem with
> HIDs generated from EISA ID's.  To work around the problem, Microsoft
> instructed us to use an asterisk as the first character of the _HID
> value.  All MS OS's since have understood this as a valid character
> for use in HIDs, yet it was never added to the ACPI spec.  This wasn't
> a problem until Linux came along using Intel's ACPI stack, which was
> written to the original spec, which doesn't allow asterisks in the
> HIDs...
> 
> That said, it would be nice to relax that constraint in the Linux
> ACPI implementation.  The BIOS developers are aware of the issue and
> they are rolling that change into new implementations going forward,
> but there's no way all existing laptops will get new versions of the
> BIOS.
> 
> Regards,
> John
> 
> > -----Original Message-----
> > From: Kevin Fenzi [mailto:kevin-acpi-+bl/7iUgRMUAvxtiuMwx3w@public.gmane.org] 
> > Sent: Monday, May 19, 2003 12:08 PM
> > To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > Subject: Re: Working around bugs in ACPI BIOS [was Re: [ACPI] 
> > DSDT in initrd]
> > 
> > 
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> > 
> > >>>>> "Pavel" == Pavel Machek <pavel-+ZI9xUNit7I@public.gmane.org> writes:
> > 
> > Pavel> Hi!
> > >> I must admit I'm really torn. If there were 2-3 little AML 
> > problems 
> > >> that if we worked around them, a horde of machines would start 
> > >> working, then I think we would do that, but my sense is 
> that there 
> > >> are many more ways a DSDT can be broken, and that implementing 
> > >> workarounds for all of them would cause other systems to 
> > fail. Maybe 
> > >> some of the people who have fixed their DSDTs can comment on the 
> > >> scope of bugs out there.
> > 
> > Pavel> I believe policy should be "if it can't possibly 
> break anyone".
> > 
> > Pavel> AML functions not returning value can be safely 
> replaced with 
> > Pavel> returning 0; uninitialized variables can also be 
> > initialized with 
> > Pavel> 0. Both should be safe, and we should printk() 
> loudly in both 
> > Pavel> cases.
> > 
> > The one I would like to see is when acpi is parsing and comes 
> > accross a variable with a * in it, it just removes the * and 
> > parses the variable after that. This would make tons of 
> > compaq laptops happy with acpi out of the box. I think pretty 
> > much all of them have this bug. 
> > 
> > The main reason I have to modify my dsdt is to remove all the 
> > *'s from it. ie, 
> > 
> > Name(_HID, "*PNP0C0B")
> > ...
> > Name(_HID, "*PNP0C01")
> > ...
> > Name(_HID, "*PNP0A03")
> > 
> > Is there any way this could be added?
> > 
> > Granted this might cause compaq to not update their bios, but 
> > on many of the older laptops I don't think thats going to 
> > happen anyhow. 
> > 
> > kevin
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1.2.1 (GNU/Linux)
> > Comment: Processed by Mailcrypt 3.5.8 
> > <http://mailcrypt.sourceforge.net/>
> > 
> > 
> > iD8DBQE+yQ9a3imCezTjY0ERAr3/AKCbuqoMQpYkRuMaBskTx1FPTiEDigCeMgN8
> > rWg4Pf0x6RuabOMEtfjTVj8=
> > =sStk
> > -----END PGP SIGNATURE-----
> 
> 
> -------------------------------------------------------
> This SF.net email is sponsored by: If flattening out C++ or Java
> code to make your application fit in a relational database is 
> painful, 
> don't do it! Check out ObjectStore. Now part of Progress Software.
> http://www.objectstore.net/sourceforge
> _______________________________________________
> Acpi-devel mailing list
> Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/acpi-devel
> 


-------------------------------------------------------
This SF.net email is sponsored by: If flattening out C++ or Java
code to make your application fit in a relational database is painful,
don't do it! Check out ObjectStore. Now part of Progress Software.
http://www.objectstore.net/sourceforge

^ permalink raw reply	[flat|nested] 17+ messages in thread
* RE: Working around bugs in ACPI BIOS [was Re: DSDT in initrd]
@ 2003-05-19 18:09 Cagle, John (ISS-Houston)
  0 siblings, 0 replies; 17+ messages in thread
From: Cagle, John (ISS-Houston) @ 2003-05-19 18:09 UTC (permalink / raw)
  To: Moore, Robert, Kevin Fenzi,
	acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

Compaq was probably the first OEM to support ACPI with Windows 98.
The MS OS issue must have been fixed by the time other hardware
vendors implemented ACPI, so they didn't have to use the "*"
workaround.  (But that's just a guess, I don't know for sure.)

> -----Original Message-----
> From: Moore, Robert [mailto:robert.moore-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org] 
> Sent: Monday, May 19, 2003 12:46 PM
> To: Cagle, John (ISS-Houston); Kevin Fenzi; 
> acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> Subject: RE: Working around bugs in ACPI BIOS [was Re: [ACPI] 
> DSDT in initrd]
> 
> 
> 
> Why is it that only Compaq machines seem to use the asterisk? Bob
> 
> 
> > -----Original Message-----
> > From: Cagle, John (ISS-Houston) [mailto:john.cagle-VXdhtT5mjnY@public.gmane.org]
> > Sent: Monday, May 19, 2003 10:38 AM
> > To: Kevin Fenzi; acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > Subject: RE: Working around bugs in ACPI BIOS [was Re: 
> [ACPI] DSDT in 
> > initrd]
> > 
> > I recently discovered the origin of the infamous Compaq asterisk
> > problem:
> > 
> > When doing the original ACPI BIOS code (for Win98, many years ago), 
> > either Windows 98 or the Microsoft ASL compiler had a problem with 
> > HIDs generated from EISA ID's.  To work around the problem, 
> Microsoft 
> > instructed us to use an asterisk as the first character of the _HID 
> > value.  All MS OS's since have understood this as a valid character 
> > for use in HIDs, yet it was never added to the ACPI spec.  
> This wasn't 
> > a problem until Linux came along using Intel's ACPI stack, 
> which was 
> > written to the original spec, which doesn't allow asterisks in the 
> > HIDs...
> > 
> > That said, it would be nice to relax that constraint in the 
> Linux ACPI 
> > implementation.  The BIOS developers are aware of the issue 
> and they 
> > are rolling that change into new implementations going forward, but 
> > there's no way all existing laptops will get new versions 
> of the BIOS.
> > 
> > Regards,
> > John
> > 
> > > -----Original Message-----
> > > From: Kevin Fenzi [mailto:kevin-acpi-+bl/7iUgRMUAvxtiuMwx3w@public.gmane.org]
> > > Sent: Monday, May 19, 2003 12:08 PM
> > > To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > > Subject: Re: Working around bugs in ACPI BIOS [was Re: 
> [ACPI] DSDT 
> > > in initrd]
> > >
> > >
> > > -----BEGIN PGP SIGNED MESSAGE-----
> > > Hash: SHA1
> > >
> > > >>>>> "Pavel" == Pavel Machek <pavel-+ZI9xUNit7I@public.gmane.org> writes:
> > >
> > > Pavel> Hi!
> > > >> I must admit I'm really torn. If there were 2-3 little AML
> > > problems
> > > >> that if we worked around them, a horde of machines would start 
> > > >> working, then I think we would do that, but my sense is that
> there
> > > >> are many more ways a DSDT can be broken, and that implementing 
> > > >> workarounds for all of them would cause other systems to
> > > fail. Maybe
> > > >> some of the people who have fixed their DSDTs can 
> comment on the 
> > > >> scope of bugs out there.
> > >
> > > Pavel> I believe policy should be "if it can't possibly break
> anyone".
> > >
> > > Pavel> AML functions not returning value can be safely 
> replaced with 
> > > Pavel> returning 0; uninitialized variables can also be
> > > initialized with
> > > Pavel> 0. Both should be safe, and we should printk() 
> loudly in both 
> > > Pavel> cases.
> > >
> > > The one I would like to see is when acpi is parsing and comes 
> > > accross a variable with a * in it, it just removes the * 
> and parses 
> > > the variable after that. This would make tons of compaq laptops 
> > > happy with acpi out of the box. I think pretty much all 
> of them have 
> > > this bug.
> > >
> > > The main reason I have to modify my dsdt is to remove all the *'s 
> > > from it. ie,
> > >
> > > Name(_HID, "*PNP0C0B")
> > > ...
> > > Name(_HID, "*PNP0C01")
> > > ...
> > > Name(_HID, "*PNP0A03")
> > >
> > > Is there any way this could be added?
> > >
> > > Granted this might cause compaq to not update their bios, but on 
> > > many of the older laptops I don't think thats going to happen 
> > > anyhow.
> > >
> > > kevin
> > > -----BEGIN PGP SIGNATURE-----
> > > Version: GnuPG v1.2.1 (GNU/Linux)
> > > Comment: Processed by Mailcrypt 3.5.8 
> > > <http://mailcrypt.sourceforge.net/>
> > >
> > >
> > > iD8DBQE+yQ9a3imCezTjY0ERAr3/AKCbuqoMQpYkRuMaBskTx1FPTiEDigCeMgN8
> > > rWg4Pf0x6RuabOMEtfjTVj8=
> > > =sStk
> > > -----END PGP SIGNATURE-----
> > 
> > 
> > -------------------------------------------------------
> > This SF.net email is sponsored by: If flattening out C++ or 
> Java code 
> > to make your application fit in a relational database is painful, 
> > don't do it! Check out ObjectStore. Now part of Progress Software. 
> > http://www.objectstore.net/sourceforge
> > _______________________________________________
> > Acpi-devel mailing list
> > Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org 
> > https://lists.sourceforge.net/lists/listinfo/acpi-devel
> 
> 
> -------------------------------------------------------
> This SF.net email is sponsored by: If flattening out C++ or 
> Java code to make your application fit in a relational 
> database is painful, 
> don't do it! Check out ObjectStore. Now part of Progress 
> Software. http://www.objectstore.net/sourceforge
> _______________________________________________
> Acpi-devel mailing list
> Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org 
> https://lists.sourceforge.net/lists/listinfo/a> cpi-devel
> 


-------------------------------------------------------
This SF.net email is sponsored by: If flattening out C++ or Java
code to make your application fit in a relational database is painful,
don't do it! Check out ObjectStore. Now part of Progress Software.
http://www.objectstore.net/sourceforge

^ permalink raw reply	[flat|nested] 17+ messages in thread
* RE: Working around bugs in ACPI BIOS [was Re: DSDT in initrd]
@ 2003-05-19 18:49 Grover, Andrew
       [not found] ` <F760B14C9561B941B89469F59BA3A847E96EA5-sBd4vmA9Se4Lll3ZsUKC9FDQ4js95KgL@public.gmane.org>
  0 siblings, 1 reply; 17+ messages in thread
From: Grover, Andrew @ 2003-05-19 18:49 UTC (permalink / raw)
  To: Cagle, John (ISS-Houston), Kevin Fenzi,
	acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f

[-- Attachment #1: Type: text/plain, Size: 5563 bytes --]

Against 2.4-acpi-latest.

Completely untested. Does this work?

-- Andy

> -----Original Message-----
> From: Grover, Andrew 
> Sent: Monday, May 19, 2003 10:51 AM
> To: Cagle, John (ISS-Houston); Kevin Fenzi; 
> acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> Subject: RE: Working around bugs in ACPI BIOS [was Re: [ACPI] 
> DSDT in initrd]
> 
> 
> OK, sounds reasonable. Anyone have a patch verified to work for this,
> sitting around? If not, I'll take a look at this for next release.
> 
> Regards -- Andy
> 
> > -----Original Message-----
> > From: Cagle, John (ISS-Houston) [mailto:john.cagle-VXdhtT5mjnY@public.gmane.org] 
> > Sent: Monday, May 19, 2003 10:38 AM
> > To: Kevin Fenzi; acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > Subject: RE: Working around bugs in ACPI BIOS [was Re: [ACPI] 
> > DSDT in initrd]
> > 
> > 
> > I recently discovered the origin of the infamous Compaq asterisk
> > problem:
> > 
> > When doing the original ACPI BIOS code (for Win98, many years ago),
> > either Windows 98 or the Microsoft ASL compiler had a problem with
> > HIDs generated from EISA ID's.  To work around the problem, 
> Microsoft
> > instructed us to use an asterisk as the first character of the _HID
> > value.  All MS OS's since have understood this as a valid character
> > for use in HIDs, yet it was never added to the ACPI spec.  
> This wasn't
> > a problem until Linux came along using Intel's ACPI stack, which was
> > written to the original spec, which doesn't allow asterisks in the
> > HIDs...
> > 
> > That said, it would be nice to relax that constraint in the Linux
> > ACPI implementation.  The BIOS developers are aware of the issue and
> > they are rolling that change into new implementations going forward,
> > but there's no way all existing laptops will get new versions of the
> > BIOS.
> > 
> > Regards,
> > John
> > 
> > > -----Original Message-----
> > > From: Kevin Fenzi [mailto:kevin-acpi-+bl/7iUgRMUAvxtiuMwx3w@public.gmane.org] 
> > > Sent: Monday, May 19, 2003 12:08 PM
> > > To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > > Subject: Re: Working around bugs in ACPI BIOS [was Re: [ACPI] 
> > > DSDT in initrd]
> > > 
> > > 
> > > -----BEGIN PGP SIGNED MESSAGE-----
> > > Hash: SHA1
> > > 
> > > >>>>> "Pavel" == Pavel Machek <pavel-+ZI9xUNit7I@public.gmane.org> writes:
> > > 
> > > Pavel> Hi!
> > > >> I must admit I'm really torn. If there were 2-3 little AML 
> > > problems 
> > > >> that if we worked around them, a horde of machines would start 
> > > >> working, then I think we would do that, but my sense is 
> > that there 
> > > >> are many more ways a DSDT can be broken, and that implementing 
> > > >> workarounds for all of them would cause other systems to 
> > > fail. Maybe 
> > > >> some of the people who have fixed their DSDTs can 
> comment on the 
> > > >> scope of bugs out there.
> > > 
> > > Pavel> I believe policy should be "if it can't possibly 
> > break anyone".
> > > 
> > > Pavel> AML functions not returning value can be safely 
> > replaced with 
> > > Pavel> returning 0; uninitialized variables can also be 
> > > initialized with 
> > > Pavel> 0. Both should be safe, and we should printk() 
> > loudly in both 
> > > Pavel> cases.
> > > 
> > > The one I would like to see is when acpi is parsing and comes 
> > > accross a variable with a * in it, it just removes the * and 
> > > parses the variable after that. This would make tons of 
> > > compaq laptops happy with acpi out of the box. I think pretty 
> > > much all of them have this bug. 
> > > 
> > > The main reason I have to modify my dsdt is to remove all the 
> > > *'s from it. ie, 
> > > 
> > > Name(_HID, "*PNP0C0B")
> > > ...
> > > Name(_HID, "*PNP0C01")
> > > ...
> > > Name(_HID, "*PNP0A03")
> > > 
> > > Is there any way this could be added?
> > > 
> > > Granted this might cause compaq to not update their bios, but 
> > > on many of the older laptops I don't think thats going to 
> > > happen anyhow. 
> > > 
> > > kevin
> > > -----BEGIN PGP SIGNATURE-----
> > > Version: GnuPG v1.2.1 (GNU/Linux)
> > > Comment: Processed by Mailcrypt 3.5.8 
> > > <http://mailcrypt.sourceforge.net/>
> > > 
> > > 
> > > iD8DBQE+yQ9a3imCezTjY0ERAr3/AKCbuqoMQpYkRuMaBskTx1FPTiEDigCeMgN8
> > > rWg4Pf0x6RuabOMEtfjTVj8=
> > > =sStk
> > > -----END PGP SIGNATURE-----
> > 
> > 
> > -------------------------------------------------------
> > This SF.net email is sponsored by: If flattening out C++ or Java
> > code to make your application fit in a relational database is 
> > painful, 
> > don't do it! Check out ObjectStore. Now part of Progress Software.
> > http://www.objectstore.net/sourceforge
> > _______________________________________________
> > Acpi-devel mailing list
> > Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > https://lists.sourceforge.net/lists/listinfo/acpi-devel
> > 
> 
> 
> -------------------------------------------------------
> This SF.net email is sponsored by: If flattening out C++ or Java
> code to make your application fit in a relational database is 
> painful, 
> don't do it! Check out ObjectStore. Now part of Progress Software.
> http://www.objectstore.net/sourceforge
> _______________________________________________
> Acpi-devel mailing list
> Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/acpi-devel
> 

[-- Attachment #2: compaq.diff --]
[-- Type: application/octet-stream, Size: 525 bytes --]

===== drivers/acpi/bus.c 1.14 vs edited =====
--- 1.14/drivers/acpi/bus.c	Fri May 16 13:35:09 2003
+++ edited/drivers/acpi/bus.c	Mon May 19 11:46:08 2003
@@ -1508,6 +1508,12 @@
 		sprintf(device->pnp.device_class, "%s", ACPI_BUS_CLASS);
 	}
 
+	/* Compaq erroneously puts * in front of their HIDs on old BIOSes */
+	if (hid && *hid == '*') {
+		printk(KERN_DEBUG PREFIX "Ignoring * in _HID. Is this a Compaq?\n");
+		hid++;
+	}
+
 	if (hid) {
 		sprintf(device->pnp.hardware_id, "%s", hid);
 		device->flags.hardware_id = 1;

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2003-05-21 12:07 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-05-17  1:17 DSDT in initrd Grover, Andrew
     [not found] ` <F760B14C9561B941B89469F59BA3A847E96EA0-sBd4vmA9Se4Lll3ZsUKC9FDQ4js95KgL@public.gmane.org>
2003-05-18 20:07   ` Mark Santcroos
     [not found]     ` <20030518200724.GB631-ScjxTogt4I4lGuH5DXb43w@public.gmane.org>
2003-05-19 10:10       ` Adachi, Kenichi
2003-05-18 21:34   ` Working around bugs in ACPI BIOS [was Re: DSDT in initrd] Pavel Machek
     [not found]     ` <20030518213405.GB452-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2003-05-19 15:17       ` Ducrot Bruno
     [not found]         ` <20030519151727.GK346-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2003-05-19 15:14           ` Alan Cox
     [not found]             ` <1053357286.28972.0.camel-2MMpYkNvuYAXoXS6vNje7nviChZXdy279dF7HbQ/qKg@public.gmane.org>
2003-05-20 14:01               ` Ducrot Bruno
2003-05-19 17:07     ` Kevin Fenzi
  -- strict thread matches above, loose matches on Subject: below --
2003-05-19 17:38 Cagle, John (ISS-Houston)
     [not found] ` <C50AB9511EE59B49B2A503CB7AE1ABD10440E51B-Iar2LzuD2f6P0FQRY6S+e9kSKC0Mw0DFJ8am2ALHCgk@public.gmane.org>
2003-05-19 17:55   ` Alan Cox
2003-05-21 12:07   ` Sérgio Monteiro Basto
2003-05-19 17:46 Moore, Robert
2003-05-19 17:50 Grover, Andrew
2003-05-19 18:09 Cagle, John (ISS-Houston)
2003-05-19 18:49 Grover, Andrew
     [not found] ` <F760B14C9561B941B89469F59BA3A847E96EA5-sBd4vmA9Se4Lll3ZsUKC9FDQ4js95KgL@public.gmane.org>
2003-05-20  4:11   ` Kevin Fenzi
2003-05-20 22:17   ` Pavel Machek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox