lkml.org 
[lkml]   [2014]   [Dec]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH 3/3] i8k: Remove laptop specific config data (fan_mult, fan_max) from driver
Date
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


\
 
 \ /
  Last update: 2014-12-09 21:41    [W:0.218 / U:0.416 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site