diff options
Diffstat (limited to 'drivers/platform/x86/thinkpad_acpi.c')
-rw-r--r-- | drivers/platform/x86/thinkpad_acpi.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c index c64e3528889b..63290b33c879 100644 --- a/drivers/platform/x86/thinkpad_acpi.c +++ b/drivers/platform/x86/thinkpad_acpi.c | |||
@@ -58,6 +58,7 @@ | |||
58 | #include <linux/kthread.h> | 58 | #include <linux/kthread.h> |
59 | #include <linux/freezer.h> | 59 | #include <linux/freezer.h> |
60 | #include <linux/delay.h> | 60 | #include <linux/delay.h> |
61 | #include <linux/slab.h> | ||
61 | 62 | ||
62 | #include <linux/nvram.h> | 63 | #include <linux/nvram.h> |
63 | #include <linux/proc_fs.h> | 64 | #include <linux/proc_fs.h> |
@@ -6170,6 +6171,7 @@ static const struct tpacpi_quirk brightness_quirk_table[] __initconst = { | |||
6170 | 6171 | ||
6171 | static int __init brightness_init(struct ibm_init_struct *iibm) | 6172 | static int __init brightness_init(struct ibm_init_struct *iibm) |
6172 | { | 6173 | { |
6174 | struct backlight_properties props; | ||
6173 | int b; | 6175 | int b; |
6174 | unsigned long quirks; | 6176 | unsigned long quirks; |
6175 | 6177 | ||
@@ -6259,9 +6261,12 @@ static int __init brightness_init(struct ibm_init_struct *iibm) | |||
6259 | printk(TPACPI_INFO | 6261 | printk(TPACPI_INFO |
6260 | "detected a 16-level brightness capable ThinkPad\n"); | 6262 | "detected a 16-level brightness capable ThinkPad\n"); |
6261 | 6263 | ||
6262 | ibm_backlight_device = backlight_device_register( | 6264 | memset(&props, 0, sizeof(struct backlight_properties)); |
6263 | TPACPI_BACKLIGHT_DEV_NAME, NULL, NULL, | 6265 | props.max_brightness = (tp_features.bright_16levels) ? 15 : 7; |
6264 | &ibm_backlight_data); | 6266 | ibm_backlight_device = backlight_device_register(TPACPI_BACKLIGHT_DEV_NAME, |
6267 | NULL, NULL, | ||
6268 | &ibm_backlight_data, | ||
6269 | &props); | ||
6265 | if (IS_ERR(ibm_backlight_device)) { | 6270 | if (IS_ERR(ibm_backlight_device)) { |
6266 | int rc = PTR_ERR(ibm_backlight_device); | 6271 | int rc = PTR_ERR(ibm_backlight_device); |
6267 | ibm_backlight_device = NULL; | 6272 | ibm_backlight_device = NULL; |
@@ -6280,8 +6285,6 @@ static int __init brightness_init(struct ibm_init_struct *iibm) | |||
6280 | "or not on your ThinkPad\n", TPACPI_MAIL); | 6285 | "or not on your ThinkPad\n", TPACPI_MAIL); |
6281 | } | 6286 | } |
6282 | 6287 | ||
6283 | ibm_backlight_device->props.max_brightness = | ||
6284 | (tp_features.bright_16levels)? 15 : 7; | ||
6285 | ibm_backlight_device->props.brightness = b & TP_EC_BACKLIGHT_LVLMSK; | 6288 | ibm_backlight_device->props.brightness = b & TP_EC_BACKLIGHT_LVLMSK; |
6286 | backlight_update_status(ibm_backlight_device); | 6289 | backlight_update_status(ibm_backlight_device); |
6287 | 6290 | ||