diff options
-rw-r--r-- | drivers/platform/x86/ideapad-laptop.c | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c index 04b4f5b3114d..3c6c5b5e1d53 100644 --- a/drivers/platform/x86/ideapad-laptop.c +++ b/drivers/platform/x86/ideapad-laptop.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * ideapad_acpi.c - Lenovo IdeaPad ACPI Extras | 2 | * ideapad-laptop.c - Lenovo IdeaPad ACPI Extras |
3 | * | 3 | * |
4 | * Copyright © 2010 Intel Corporation | 4 | * Copyright © 2010 Intel Corporation |
5 | * Copyright © 2010 David Woodhouse <dwmw2@infradead.org> | 5 | * Copyright © 2010 David Woodhouse <dwmw2@infradead.org> |
@@ -168,8 +168,10 @@ static int write_ec_cmd(acpi_handle handle, int cmd, unsigned long data) | |||
168 | pr_err("timeout in write_ec_cmd\n"); | 168 | pr_err("timeout in write_ec_cmd\n"); |
169 | return -1; | 169 | return -1; |
170 | } | 170 | } |
171 | /* the above is ACPI helpers */ | ||
172 | 171 | ||
172 | /* | ||
173 | * camera power | ||
174 | */ | ||
173 | static ssize_t show_ideapad_cam(struct device *dev, | 175 | static ssize_t show_ideapad_cam(struct device *dev, |
174 | struct device_attribute *attr, | 176 | struct device_attribute *attr, |
175 | char *buf) | 177 | char *buf) |
@@ -203,6 +205,9 @@ static ssize_t store_ideapad_cam(struct device *dev, | |||
203 | 205 | ||
204 | static DEVICE_ATTR(camera_power, 0644, show_ideapad_cam, store_ideapad_cam); | 206 | static DEVICE_ATTR(camera_power, 0644, show_ideapad_cam, store_ideapad_cam); |
205 | 207 | ||
208 | /* | ||
209 | * Rfkill | ||
210 | */ | ||
206 | static int ideapad_rfk_set(void *data, bool blocked) | 211 | static int ideapad_rfk_set(void *data, bool blocked) |
207 | { | 212 | { |
208 | int device = (unsigned long)data; | 213 | int device = (unsigned long)data; |
@@ -235,7 +240,8 @@ static void ideapad_sync_rfk_state(struct acpi_device *adevice) | |||
235 | rfkill_set_hw_state(priv->rfk[i], hw_blocked); | 240 | rfkill_set_hw_state(priv->rfk[i], hw_blocked); |
236 | } | 241 | } |
237 | 242 | ||
238 | static int ideapad_register_rfkill(struct acpi_device *adevice, int dev) | 243 | static int __devinit ideapad_register_rfkill(struct acpi_device *adevice, |
244 | int dev) | ||
239 | { | 245 | { |
240 | struct ideapad_private *priv = dev_get_drvdata(&adevice->dev); | 246 | struct ideapad_private *priv = dev_get_drvdata(&adevice->dev); |
241 | int ret; | 247 | int ret; |
@@ -271,7 +277,8 @@ static int ideapad_register_rfkill(struct acpi_device *adevice, int dev) | |||
271 | return 0; | 277 | return 0; |
272 | } | 278 | } |
273 | 279 | ||
274 | static void ideapad_unregister_rfkill(struct acpi_device *adevice, int dev) | 280 | static void __devexit ideapad_unregister_rfkill(struct acpi_device *adevice, |
281 | int dev) | ||
275 | { | 282 | { |
276 | struct ideapad_private *priv = dev_get_drvdata(&adevice->dev); | 283 | struct ideapad_private *priv = dev_get_drvdata(&adevice->dev); |
277 | 284 | ||
@@ -326,7 +333,6 @@ static void ideapad_platform_exit(void) | |||
326 | &ideapad_attribute_group); | 333 | &ideapad_attribute_group); |
327 | platform_device_unregister(ideapad_priv->platform_device); | 334 | platform_device_unregister(ideapad_priv->platform_device); |
328 | } | 335 | } |
329 | /* the above is platform device */ | ||
330 | 336 | ||
331 | /* | 337 | /* |
332 | * input device | 338 | * input device |
@@ -386,15 +392,17 @@ static void ideapad_input_report(unsigned long scancode) | |||
386 | { | 392 | { |
387 | sparse_keymap_report_event(ideapad_priv->inputdev, scancode, 1, true); | 393 | sparse_keymap_report_event(ideapad_priv->inputdev, scancode, 1, true); |
388 | } | 394 | } |
389 | /* the above is input device */ | ||
390 | 395 | ||
396 | /* | ||
397 | * module init/exit | ||
398 | */ | ||
391 | static const struct acpi_device_id ideapad_device_ids[] = { | 399 | static const struct acpi_device_id ideapad_device_ids[] = { |
392 | { "VPC2004", 0}, | 400 | { "VPC2004", 0}, |
393 | { "", 0}, | 401 | { "", 0}, |
394 | }; | 402 | }; |
395 | MODULE_DEVICE_TABLE(acpi, ideapad_device_ids); | 403 | MODULE_DEVICE_TABLE(acpi, ideapad_device_ids); |
396 | 404 | ||
397 | static int ideapad_acpi_add(struct acpi_device *adevice) | 405 | static int __devinit ideapad_acpi_add(struct acpi_device *adevice) |
398 | { | 406 | { |
399 | int ret, i, cfg; | 407 | int ret, i, cfg; |
400 | struct ideapad_private *priv; | 408 | struct ideapad_private *priv; |
@@ -432,7 +440,7 @@ platform_failed: | |||
432 | return ret; | 440 | return ret; |
433 | } | 441 | } |
434 | 442 | ||
435 | static int ideapad_acpi_remove(struct acpi_device *adevice, int type) | 443 | static int __devexit ideapad_acpi_remove(struct acpi_device *adevice, int type) |
436 | { | 444 | { |
437 | struct ideapad_private *priv = dev_get_drvdata(&adevice->dev); | 445 | struct ideapad_private *priv = dev_get_drvdata(&adevice->dev); |
438 | int i; | 446 | int i; |
@@ -478,19 +486,14 @@ static struct acpi_driver ideapad_acpi_driver = { | |||
478 | .owner = THIS_MODULE, | 486 | .owner = THIS_MODULE, |
479 | }; | 487 | }; |
480 | 488 | ||
481 | |||
482 | static int __init ideapad_acpi_module_init(void) | 489 | static int __init ideapad_acpi_module_init(void) |
483 | { | 490 | { |
484 | acpi_bus_register_driver(&ideapad_acpi_driver); | 491 | return acpi_bus_register_driver(&ideapad_acpi_driver); |
485 | |||
486 | return 0; | ||
487 | } | 492 | } |
488 | 493 | ||
489 | |||
490 | static void __exit ideapad_acpi_module_exit(void) | 494 | static void __exit ideapad_acpi_module_exit(void) |
491 | { | 495 | { |
492 | acpi_bus_unregister_driver(&ideapad_acpi_driver); | 496 | acpi_bus_unregister_driver(&ideapad_acpi_driver); |
493 | |||
494 | } | 497 | } |
495 | 498 | ||
496 | MODULE_AUTHOR("David Woodhouse <dwmw2@infradead.org>"); | 499 | MODULE_AUTHOR("David Woodhouse <dwmw2@infradead.org>"); |