[patch 2/2] fastboot: use a DMI match table to set defaults forport-disable
From: Arjan van de Ven
Date: Mon Aug 11 2008 - 18:37:38 EST
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.
Initially, the table only contains the Asus EeePC 901 as this is the
device I have for testing.
Signed-off-by: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>
---
drivers/ata/libata-core.c | 33 +++++++++++++++++++++++++++++++++
1 files changed, 33 insertions(+), 0 deletions(-)
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 831a8ca..a6b0540 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -56,6 +56,7 @@
#include <linux/workqueue.h>
#include <linux/scatterlist.h>
#include <linux/io.h>
+#include <linux/dmi.h>
#include <scsi/scsi.h>
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_host.h>
@@ -166,6 +167,37 @@ MODULE_LICENSE("GPL");
MODULE_VERSION(DRV_VERSION);
+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)
--
1.5.5.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/