diff options
Diffstat (limited to 'drivers/misc/fujitsu-laptop.c')
| -rw-r--r-- | drivers/misc/fujitsu-laptop.c | 43 |
1 files changed, 30 insertions, 13 deletions
diff --git a/drivers/misc/fujitsu-laptop.c b/drivers/misc/fujitsu-laptop.c index d2cf0bfe3163..a7dd3e9fb79d 100644 --- a/drivers/misc/fujitsu-laptop.c +++ b/drivers/misc/fujitsu-laptop.c | |||
| @@ -464,6 +464,14 @@ static int dmi_check_cb_s6410(const struct dmi_system_id *id) | |||
| 464 | return 0; | 464 | return 0; |
| 465 | } | 465 | } |
| 466 | 466 | ||
| 467 | static int dmi_check_cb_s6420(const struct dmi_system_id *id) | ||
| 468 | { | ||
| 469 | dmi_check_cb_common(id); | ||
| 470 | fujitsu->keycode1 = KEY_SCREENLOCK; /* "Lock" */ | ||
| 471 | fujitsu->keycode2 = KEY_HELP; /* "Mobility Center" */ | ||
| 472 | return 0; | ||
| 473 | } | ||
| 474 | |||
| 467 | static int dmi_check_cb_p8010(const struct dmi_system_id *id) | 475 | static int dmi_check_cb_p8010(const struct dmi_system_id *id) |
| 468 | { | 476 | { |
| 469 | dmi_check_cb_common(id); | 477 | dmi_check_cb_common(id); |
| @@ -473,7 +481,7 @@ static int dmi_check_cb_p8010(const struct dmi_system_id *id) | |||
| 473 | return 0; | 481 | return 0; |
| 474 | } | 482 | } |
| 475 | 483 | ||
| 476 | static struct dmi_system_id __initdata fujitsu_dmi_table[] = { | 484 | static struct dmi_system_id fujitsu_dmi_table[] = { |
| 477 | { | 485 | { |
| 478 | .ident = "Fujitsu Siemens S6410", | 486 | .ident = "Fujitsu Siemens S6410", |
| 479 | .matches = { | 487 | .matches = { |
| @@ -482,6 +490,13 @@ static struct dmi_system_id __initdata fujitsu_dmi_table[] = { | |||
| 482 | }, | 490 | }, |
| 483 | .callback = dmi_check_cb_s6410}, | 491 | .callback = dmi_check_cb_s6410}, |
| 484 | { | 492 | { |
| 493 | .ident = "Fujitsu Siemens S6420", | ||
| 494 | .matches = { | ||
| 495 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), | ||
| 496 | DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK S6420"), | ||
| 497 | }, | ||
| 498 | .callback = dmi_check_cb_s6420}, | ||
| 499 | { | ||
| 485 | .ident = "Fujitsu LifeBook P8010", | 500 | .ident = "Fujitsu LifeBook P8010", |
| 486 | .matches = { | 501 | .matches = { |
| 487 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), | 502 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), |
| @@ -990,16 +1005,16 @@ static int __init fujitsu_init(void) | |||
| 990 | 1005 | ||
| 991 | /* Register backlight stuff */ | 1006 | /* Register backlight stuff */ |
| 992 | 1007 | ||
| 993 | fujitsu->bl_device = | 1008 | if (!acpi_video_backlight_support()) { |
| 994 | backlight_device_register("fujitsu-laptop", NULL, NULL, | 1009 | fujitsu->bl_device = |
| 995 | &fujitsubl_ops); | 1010 | backlight_device_register("fujitsu-laptop", NULL, NULL, |
| 996 | if (IS_ERR(fujitsu->bl_device)) | 1011 | &fujitsubl_ops); |
| 997 | return PTR_ERR(fujitsu->bl_device); | 1012 | if (IS_ERR(fujitsu->bl_device)) |
| 998 | 1013 | return PTR_ERR(fujitsu->bl_device); | |
| 999 | max_brightness = fujitsu->max_brightness; | 1014 | max_brightness = fujitsu->max_brightness; |
| 1000 | 1015 | fujitsu->bl_device->props.max_brightness = max_brightness - 1; | |
| 1001 | fujitsu->bl_device->props.max_brightness = max_brightness - 1; | 1016 | fujitsu->bl_device->props.brightness = fujitsu->brightness_level; |
| 1002 | fujitsu->bl_device->props.brightness = fujitsu->brightness_level; | 1017 | } |
| 1003 | 1018 | ||
| 1004 | ret = platform_driver_register(&fujitsupf_driver); | 1019 | ret = platform_driver_register(&fujitsupf_driver); |
| 1005 | if (ret) | 1020 | if (ret) |
| @@ -1035,7 +1050,8 @@ fail_hotkey: | |||
| 1035 | 1050 | ||
| 1036 | fail_backlight: | 1051 | fail_backlight: |
| 1037 | 1052 | ||
| 1038 | backlight_device_unregister(fujitsu->bl_device); | 1053 | if (fujitsu->bl_device) |
| 1054 | backlight_device_unregister(fujitsu->bl_device); | ||
| 1039 | 1055 | ||
| 1040 | fail_platform_device2: | 1056 | fail_platform_device2: |
| 1041 | 1057 | ||
| @@ -1062,7 +1078,8 @@ static void __exit fujitsu_cleanup(void) | |||
| 1062 | &fujitsupf_attribute_group); | 1078 | &fujitsupf_attribute_group); |
| 1063 | platform_device_unregister(fujitsu->pf_device); | 1079 | platform_device_unregister(fujitsu->pf_device); |
| 1064 | platform_driver_unregister(&fujitsupf_driver); | 1080 | platform_driver_unregister(&fujitsupf_driver); |
| 1065 | backlight_device_unregister(fujitsu->bl_device); | 1081 | if (fujitsu->bl_device) |
| 1082 | backlight_device_unregister(fujitsu->bl_device); | ||
| 1066 | 1083 | ||
| 1067 | acpi_bus_unregister_driver(&acpi_fujitsu_driver); | 1084 | acpi_bus_unregister_driver(&acpi_fujitsu_driver); |
| 1068 | 1085 | ||
