Messages in this thread Patch in this message | | | From | Pali Rohár <> | Subject | [PATCH 3/3] i8k: Remove laptop specific config data (fan_mult, fan_max) from driver | Date | Tue, 9 Dec 2014 21:07:01 +0100 |
| |
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 <pali.rohar@gmail.com> --- !!!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
| |