On Tuesday 09 December 2014 21:07:01 Pali Rohár wrote:
> 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)

Just a note: "or in dmi" has to be removed from a couple of comments.

Gabriele

> ---
>  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
> 

--
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