On Monday 11 August 2008 04:37:30 pm Arjan van de Ven wrote: > > From: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx> > Subject: [PATCH] libata: use a DMI match table to set defaults for port-disable > > As suggested by Jeff: > This patch adds a DMI table that is used for setting defaults for > the new dont-probe-port parameter boot time optimization feature. Isn't this the sort of thing we theoretically could learn from ACPI? I know we haven't really taken advantage of what ACPI tells us about the presence of legacy devices like COM ports and IDE ports, but maybe we should. > +static int __init dmi_disable_ports(const struct dmi_system_id *d) > +{ > + int value = (unsigned long)d->driver_data; > + > + printk(KERN_INFO "libata: DMI match used to disable probing\n"); > + libata_disable_ports |= value; > + return 0; > +} > + > +#define DMI_PORT_ATA1 (void *)0x1 > +#define DMI_PORT_ATA2 (void *)0x2 > +#define DMI_PORT_ATA3 (void *)0x4 > +#define DMI_PORT_ATA4 (void *)0x8 > + > +static struct dmi_system_id libata_dmi_table[] __initdata = { > + /* > + * The Asus EeePC901 has its devices attached to ATA2 only > + */ > + { > + .callback = dmi_disable_ports, > + .driver_data = DMI_PORT_ATA1, > + .ident = "Asus EeePC 901", > + .matches = { > + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer INC."), > + DMI_MATCH(DMI_PRODUCT_NAME, "901"), > + }, > + }, > + {} > +}; > + > + > /** > * ata_force_cbl - force cable type according to libata.force > * @ap: ATA port of interest > @@ -6126,6 +6158,7 @@ static void __init ata_parse_force_param(void) > static int __init ata_init(void) > { > ata_parse_force_param(); > + dmi_check_system(libata_dmi_table); > > ata_wq = create_workqueue("ata"); > if (!ata_wq) -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html