New ACPI blacklist format

Marcel Moolenaar marcel at xcllnt.net
Sat May 8 09:43:35 PDT 2004


On Fri, May 07, 2004 at 11:28:15PM -0700, Nate Lawson wrote:

*snip*

> static struct acpi_table_desc Abit_BP6[] = {
>     { "FACP", "AWARD", "AWRDACPI", "<=", "30302e31", "", "", "" },
> };
> static struct acpi_table_desc AMI_INT[] = {     /* 01/18/00 */
>     { "FACP", "AWARD", "", "<=", "10", "", "", "" },
>     { "DSDT", "",      "", "<=", "5",  "", "", "" },
> };
> static struct acpi_table_desc Compaq_ViperII[] = {
>     { "FACP", "COMPAQ", "VIPER II", "<=", "06040000", "PTL", "<=", "000F4240" },
> };

*snip*

> Each entry in acpi_table_desc lists a table ID and then a set of strings
> to match against the table.  Multiple tables may be matched for a given
> system (i.e. AMI_INT above).  The op values will be "<=", "=", and ">=".
> The quirk associated with each system will be a bitmask returned from the
> quirk matching function.
> 
> In English, the last entry means, "Check the table named 'FACP' for an OEM
> ID of 'COMPAQ' and table ID of 'VIPER II' and OEM revision <= '06040000'
> ..."  Substring matches will work too (e.g., "COMPA").
> 
> Is there any better way to compact this?

If space is a concern, you can enable (i.e. compile-in) quirks by
using kernel options, like:

	options 	ACPI_QUIRK_ABIT_BP6

and

	#ifdef ACPI_QUIRK_ABIT_BP6
	static struct acpi_table_desc Abit_BP6[] = {
	    { "FACP", "AWARD", "AWRDACPI", "<=", "30302e31", "", "", "" },
	};
	#endif

You put all three of them in GENERIC and people can add or remove them
from their own kernel configuration to fit their needs (and save space).
If the quirks are in MI files, then this also avoids that i386 quirks
end up in amd64 or ia64 kernels.

Just a thought,

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel at xcllnt.net


More information about the freebsd-acpi mailing list