diff options
| author | Henrique de Moraes Holschuh <hmh@hmh.eng.br> | 2006-11-25 13:35:09 -0500 |
|---|---|---|
| committer | Len Brown <len.brown@intel.com> | 2006-12-07 01:38:45 -0500 |
| commit | fb87a811a4c232e2af8d746dc75330cbe5b0780c (patch) | |
| tree | 9a755895c17bcb17fea382c09edb10ce847c5160 /drivers | |
| parent | 2df910b4c3edcce9a0c12394db6f5f4a6e69c712 (diff) | |
ACPI: ibm-acpi: backlight device cleanup
This patch cleans up the recently added backlight device support by Holger
Macht <hmacht@suse.de> to fit well with the rest of the code, using the
ibms struct as the other "subdrivers" in ibm-acpi.
Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/acpi/ibm_acpi.c | 50 |
1 files changed, 31 insertions, 19 deletions
diff --git a/drivers/acpi/ibm_acpi.c b/drivers/acpi/ibm_acpi.c index fbb4970ce16a..36e2667d8652 100644 --- a/drivers/acpi/ibm_acpi.c +++ b/drivers/acpi/ibm_acpi.c | |||
| @@ -397,7 +397,7 @@ struct ibm_struct { | |||
| 397 | 397 | ||
| 398 | static struct proc_dir_entry *proc_dir = NULL; | 398 | static struct proc_dir_entry *proc_dir = NULL; |
| 399 | 399 | ||
| 400 | static struct backlight_device *ibm_backlight_device; | 400 | static struct backlight_device *ibm_backlight_device = NULL; |
| 401 | 401 | ||
| 402 | #define onoff(status,bit) ((status) & (1 << (bit)) ? "on" : "off") | 402 | #define onoff(status,bit) ((status) & (1 << (bit)) ? "on" : "off") |
| 403 | #define enabled(status,bit) ((status) & (1 << (bit)) ? "enabled" : "disabled") | 403 | #define enabled(status,bit) ((status) & (1 << (bit)) ? "enabled" : "disabled") |
| @@ -1639,6 +1639,7 @@ static int brightness_get(struct backlight_device *bd) | |||
| 1639 | return -EIO; | 1639 | return -EIO; |
| 1640 | 1640 | ||
| 1641 | level &= 0x7; | 1641 | level &= 0x7; |
| 1642 | |||
| 1642 | return level; | 1643 | return level; |
| 1643 | } | 1644 | } |
| 1644 | 1645 | ||
| @@ -1713,6 +1714,33 @@ static int brightness_update_status(struct backlight_device *bd) | |||
| 1713 | return brightness_set(bd->props->brightness); | 1714 | return brightness_set(bd->props->brightness); |
| 1714 | } | 1715 | } |
| 1715 | 1716 | ||
| 1717 | static struct backlight_properties ibm_backlight_data = { | ||
| 1718 | .owner = THIS_MODULE, | ||
| 1719 | .get_brightness = brightness_get, | ||
| 1720 | .update_status = brightness_update_status, | ||
| 1721 | .max_brightness = 7, | ||
| 1722 | }; | ||
| 1723 | |||
| 1724 | static int brightness_init(void) | ||
| 1725 | { | ||
| 1726 | ibm_backlight_device = backlight_device_register("ibm", NULL, | ||
| 1727 | &ibm_backlight_data); | ||
| 1728 | if (IS_ERR(ibm_backlight_device)) { | ||
| 1729 | printk(IBM_ERR "Could not register backlight device\n"); | ||
| 1730 | return PTR_ERR(ibm_backlight_device); | ||
| 1731 | } | ||
| 1732 | |||
| 1733 | return 0; | ||
| 1734 | } | ||
| 1735 | |||
| 1736 | static void brightness_exit(void) | ||
| 1737 | { | ||
| 1738 | if (ibm_backlight_device) { | ||
| 1739 | backlight_device_unregister(ibm_backlight_device); | ||
| 1740 | ibm_backlight_device = NULL; | ||
| 1741 | } | ||
| 1742 | } | ||
| 1743 | |||
| 1716 | static int volume_offset = 0x30; | 1744 | static int volume_offset = 0x30; |
| 1717 | 1745 | ||
| 1718 | static int volume_read(char *p) | 1746 | static int volume_read(char *p) |
| @@ -2377,6 +2405,8 @@ static struct ibm_struct ibms[] = { | |||
| 2377 | .name = "brightness", | 2405 | .name = "brightness", |
| 2378 | .read = brightness_read, | 2406 | .read = brightness_read, |
| 2379 | .write = brightness_write, | 2407 | .write = brightness_write, |
| 2408 | .init = brightness_init, | ||
| 2409 | .exit = brightness_exit, | ||
| 2380 | }, | 2410 | }, |
| 2381 | { | 2411 | { |
| 2382 | .name = "volume", | 2412 | .name = "volume", |
| @@ -2642,20 +2672,10 @@ IBM_PARAM(brightness); | |||
| 2642 | IBM_PARAM(volume); | 2672 | IBM_PARAM(volume); |
| 2643 | IBM_PARAM(fan); | 2673 | IBM_PARAM(fan); |
| 2644 | 2674 | ||
| 2645 | static struct backlight_properties ibm_backlight_data = { | ||
| 2646 | .owner = THIS_MODULE, | ||
| 2647 | .get_brightness = brightness_get, | ||
| 2648 | .update_status = brightness_update_status, | ||
| 2649 | .max_brightness = 7, | ||
| 2650 | }; | ||
| 2651 | |||
| 2652 | static void acpi_ibm_exit(void) | 2675 | static void acpi_ibm_exit(void) |
| 2653 | { | 2676 | { |
| 2654 | int i; | 2677 | int i; |
| 2655 | 2678 | ||
| 2656 | if (ibm_backlight_device) | ||
| 2657 | backlight_device_unregister(ibm_backlight_device); | ||
| 2658 | |||
| 2659 | for (i = ARRAY_SIZE(ibms) - 1; i >= 0; i--) | 2679 | for (i = ARRAY_SIZE(ibms) - 1; i >= 0; i--) |
| 2660 | ibm_exit(&ibms[i]); | 2680 | ibm_exit(&ibms[i]); |
| 2661 | 2681 | ||
| @@ -2758,14 +2778,6 @@ static int __init acpi_ibm_init(void) | |||
| 2758 | } | 2778 | } |
| 2759 | } | 2779 | } |
| 2760 | 2780 | ||
| 2761 | ibm_backlight_device = backlight_device_register("ibm", NULL, | ||
| 2762 | &ibm_backlight_data); | ||
| 2763 | if (IS_ERR(ibm_backlight_device)) { | ||
| 2764 | printk(IBM_ERR "Could not register ibm backlight device\n"); | ||
| 2765 | ibm_backlight_device = NULL; | ||
| 2766 | acpi_ibm_exit(); | ||
| 2767 | } | ||
| 2768 | |||
| 2769 | return 0; | 2781 | return 0; |
| 2770 | } | 2782 | } |
| 2771 | 2783 | ||
