Now we have autodetection code for fan multiplier and maximal fan speed so we do
not need to have those constants for each laptop in kernel driver code.

Signed-off-by: Pali Rohár <[email protected]>
---
!!!Please do not apply this patch until all affected machines will be tested!!!

I tested autodetection code only on Dell Latitude E6440 (where it worked).
Other machines which needs to be tested:

Dell Latitude D520
Dell Latitude E6540
Dell Precision WorkStation 490
Dell Studio
Dell XPS M140 (MXC051)
---
 drivers/char/i8k.c |   88 +---------------------------------------------------
 1 file changed, 1 insertion(+), 87 deletions(-)

diff --git a/drivers/char/i8k.c b/drivers/char/i8k.c
index 8bdbed2..bf74644 100644
--- a/drivers/char/i8k.c
+++ b/drivers/char/i8k.c
@@ -725,42 +725,6 @@ static int __init i8k_init_hwmon(void)
        return 0;
 }
 
-struct i8k_config_data {
-       int fan_mult;
-       int fan_max;
-};
-
-enum i8k_configs {
-       DELL_LATITUDE_D520,
-       DELL_LATITUDE_E6540,
-       DELL_PRECISION_490,
-       DELL_STUDIO,
-       DELL_XPS_M140,
-};
-
-static const struct i8k_config_data i8k_config_data[] = {
-       [DELL_LATITUDE_D520] = {
-               .fan_mult = 1,
-               .fan_max = I8K_FAN_TURBO,
-       },
-       [DELL_LATITUDE_E6540] = {
-               .fan_mult = 1,
-               .fan_max = I8K_FAN_HIGH,
-       },
-       [DELL_PRECISION_490] = {
-               .fan_mult = 1,
-               .fan_max = I8K_FAN_TURBO,
-       },
-       [DELL_STUDIO] = {
-               .fan_mult = 1,
-               .fan_max = I8K_FAN_HIGH,
-       },
-       [DELL_XPS_M140] = {
-               .fan_mult = 1,
-               .fan_max = I8K_FAN_HIGH,
-       },
-};
-
 static struct dmi_system_id i8k_dmi_table[] __initdata = {
        {
                .ident = "Dell Inspiron",
@@ -784,30 +748,6 @@ static struct dmi_system_id i8k_dmi_table[] __initdata = {
                },
        },
        {
-               .ident = "Dell Latitude D520",
-               .matches = {
-                       DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-                       DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D520"),
-               },
-               .driver_data = (void *)&i8k_config_data[DELL_LATITUDE_D520],
-       },
-       {
-               .ident = "Dell Latitude E6440",
-               .matches = {
-                       DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-                       DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6440"),
-               },
-               .driver_data = (void *)&i8k_config_data[DELL_LATITUDE_E6540],
-       },
-       {
-               .ident = "Dell Latitude E6540",
-               .matches = {
-                       DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-                       DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6540"),
-               },
-               .driver_data = (void *)&i8k_config_data[DELL_LATITUDE_E6540],
-       },
-       {
                .ident = "Dell Latitude 2",
                .matches = {
                        DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -822,22 +762,13 @@ static struct dmi_system_id i8k_dmi_table[] __initdata = {
                },
        },
        {
-               .ident = "Dell Inspiron 3",
+               .ident = "Dell Inspiron 4",
                .matches = {
                        DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
                        DMI_MATCH(DMI_PRODUCT_NAME, "MP061"),
                },
        },
        {
-               .ident = "Dell Precision 490",
-               .matches = {
-                       DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-                       DMI_MATCH(DMI_PRODUCT_NAME,
-                                 "Precision WorkStation 490"),
-               },
-               .driver_data = (void *)&i8k_config_data[DELL_PRECISION_490],
-       },
-       {
                .ident = "Dell Precision",
                .matches = {
                        DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
@@ -864,7 +795,6 @@ static struct dmi_system_id i8k_dmi_table[] __initdata = {
                        DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
                        DMI_MATCH(DMI_PRODUCT_NAME, "Studio"),
                },
-               .driver_data = (void *)&i8k_config_data[DELL_STUDIO],
        },
        {
                .ident = "Dell XPS M140",
@@ -872,7 +802,6 @@ static struct dmi_system_id i8k_dmi_table[] __initdata = {
                        DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
                        DMI_MATCH(DMI_PRODUCT_NAME, "MXC051"),
                },
-               .driver_data = (void *)&i8k_config_data[DELL_XPS_M140],
        },
        { }
 };
@@ -884,8 +813,6 @@ MODULE_DEVICE_TABLE(dmi, i8k_dmi_table);
  */
 static int __init i8k_probe(void)
 {
-       const struct i8k_config_data *conf;
-       const struct dmi_system_id *id;
        int fan, val, ret;
 
        /*
@@ -915,19 +842,6 @@ static int __init i8k_probe(void)
                        return -ENODEV;
        }
 
-       /*
-        * Autodetect fan multiplier and maximal fan speed from dmi config
-        * Values specified in module parameters override values from dmi
-        */
-       id = dmi_first_match(i8k_dmi_table);
-       if (id && id->driver_data) {
-               conf = id->driver_data;
-               if (fan_mult <= 0 && conf->fan_mult > 0)
-                       fan_mult = conf->fan_mult;
-               if (fan_max <= 0 && conf->fan_max > 0)
-                       fan_max = conf->fan_max;
-       }
-
        if (fan_mult <= 0) {
                /*
                 * Autodetect fan multiplier for each fan based on nominal rpm
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to