diff options
Diffstat (limited to 'drivers/leds')
-rw-r--r-- | drivers/leds/dell-led.c | 1 | ||||
-rw-r--r-- | drivers/leds/leds-88pm860x.c | 1 | ||||
-rw-r--r-- | drivers/leds/leds-asic3.c | 36 | ||||
-rw-r--r-- | drivers/leds/leds-atmel-pwm.c | 1 | ||||
-rw-r--r-- | drivers/leds/leds-cobalt-raq.c | 1 | ||||
-rw-r--r-- | drivers/leds/leds-fsg.c | 1 | ||||
-rw-r--r-- | drivers/leds/leds-gpio.c | 1 | ||||
-rw-r--r-- | drivers/leds/leds-lm3530.c | 1 | ||||
-rw-r--r-- | drivers/leds/leds-locomo.c | 1 | ||||
-rw-r--r-- | drivers/leds/leds-lt3593.c | 1 | ||||
-rw-r--r-- | drivers/leds/leds-mc13783.c | 60 | ||||
-rw-r--r-- | drivers/leds/leds-net48xx.c | 1 | ||||
-rw-r--r-- | drivers/leds/leds-net5501.c | 1 | ||||
-rw-r--r-- | drivers/leds/leds-ns2.c | 1 | ||||
-rw-r--r-- | drivers/leds/leds-s3c24xx.c | 1 | ||||
-rw-r--r-- | drivers/leds/leds-wm831x-status.c | 1 | ||||
-rw-r--r-- | drivers/leds/leds-wm8350.c | 1 | ||||
-rw-r--r-- | drivers/leds/leds-wrap.c | 1 |
18 files changed, 81 insertions, 31 deletions
diff --git a/drivers/leds/dell-led.c b/drivers/leds/dell-led.c index 52590296af33..e5c57389efd6 100644 --- a/drivers/leds/dell-led.c +++ b/drivers/leds/dell-led.c @@ -14,6 +14,7 @@ #include <linux/acpi.h> #include <linux/leds.h> #include <linux/slab.h> +#include <linux/module.h> MODULE_AUTHOR("Louis Davis/Jim Dailey"); MODULE_DESCRIPTION("Dell LED Control Driver"); diff --git a/drivers/leds/leds-88pm860x.c b/drivers/leds/leds-88pm860x.c index 0d4c16678ace..0810604dc701 100644 --- a/drivers/leds/leds-88pm860x.c +++ b/drivers/leds/leds-88pm860x.c @@ -18,6 +18,7 @@ #include <linux/slab.h> #include <linux/workqueue.h> #include <linux/mfd/88pm860x.h> +#include <linux/module.h> #define LED_PWM_SHIFT (3) #define LED_PWM_MASK (0x1F) diff --git a/drivers/leds/leds-asic3.c b/drivers/leds/leds-asic3.c index 22f847c890c9..48d9fe61bdfc 100644 --- a/drivers/leds/leds-asic3.c +++ b/drivers/leds/leds-asic3.c @@ -14,6 +14,7 @@ #include <linux/mfd/asic3.h> #include <linux/mfd/core.h> +#include <linux/module.h> /* * The HTC ASIC3 LED GPIOs are inputs, not outputs. @@ -107,9 +108,10 @@ static int __devinit asic3_led_probe(struct platform_device *pdev) } led->cdev->name = led->name; - led->cdev->default_trigger = led->default_trigger; + led->cdev->flags = LED_CORE_SUSPENDRESUME; led->cdev->brightness_set = brightness_set; led->cdev->blink_set = blink_set; + led->cdev->default_trigger = led->default_trigger; ret = led_classdev_register(&pdev->dev, led->cdev); if (ret < 0) @@ -136,12 +138,44 @@ static int __devexit asic3_led_remove(struct platform_device *pdev) return mfd_cell_disable(pdev); } +static int asic3_led_suspend(struct device *dev) +{ + struct platform_device *pdev = to_platform_device(dev); + const struct mfd_cell *cell = mfd_get_cell(pdev); + int ret; + + ret = 0; + if (cell->suspend) + ret = (*cell->suspend)(pdev); + + return ret; +} + +static int asic3_led_resume(struct device *dev) +{ + struct platform_device *pdev = to_platform_device(dev); + const struct mfd_cell *cell = mfd_get_cell(pdev); + int ret; + + ret = 0; + if (cell->resume) + ret = (*cell->resume)(pdev); + + return ret; +} + +static const struct dev_pm_ops asic3_led_pm_ops = { + .suspend = asic3_led_suspend, + .resume = asic3_led_resume, +}; + static struct platform_driver asic3_led_driver = { .probe = asic3_led_probe, .remove = __devexit_p(asic3_led_remove), .driver = { .name = "leds-asic3", .owner = THIS_MODULE, + .pm = &asic3_led_pm_ops, }, }; diff --git a/drivers/leds/leds-atmel-pwm.c b/drivers/leds/leds-atmel-pwm.c index c941d906bba6..109c875ea233 100644 --- a/drivers/leds/leds-atmel-pwm.c +++ b/drivers/leds/leds-atmel-pwm.c @@ -4,6 +4,7 @@ #include <linux/io.h> #include <linux/atmel_pwm.h> #include <linux/slab.h> +#include <linux/module.h> struct pwmled { diff --git a/drivers/leds/leds-cobalt-raq.c b/drivers/leds/leds-cobalt-raq.c index 438d48384636..aac1c073fe7b 100644 --- a/drivers/leds/leds-cobalt-raq.c +++ b/drivers/leds/leds-cobalt-raq.c @@ -24,6 +24,7 @@ #include <linux/platform_device.h> #include <linux/spinlock.h> #include <linux/types.h> +#include <linux/export.h> #define LED_WEB 0x04 #define LED_POWER_OFF 0x08 diff --git a/drivers/leds/leds-fsg.c b/drivers/leds/leds-fsg.c index d11d05be0dee..49aceffaa5b6 100644 --- a/drivers/leds/leds-fsg.c +++ b/drivers/leds/leds-fsg.c @@ -19,6 +19,7 @@ #include <linux/init.h> #include <linux/platform_device.h> #include <linux/leds.h> +#include <linux/module.h> #include <mach/hardware.h> #include <asm/io.h> diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c index 504cc26c7e4b..399a86f2013a 100644 --- a/drivers/leds/leds-gpio.c +++ b/drivers/leds/leds-gpio.c @@ -18,6 +18,7 @@ #include <linux/of_gpio.h> #include <linux/slab.h> #include <linux/workqueue.h> +#include <linux/module.h> #include <asm/gpio.h> diff --git a/drivers/leds/leds-lm3530.c b/drivers/leds/leds-lm3530.c index 4dc510fdfa06..0630e4f4b286 100644 --- a/drivers/leds/leds-lm3530.c +++ b/drivers/leds/leds-lm3530.c @@ -18,6 +18,7 @@ #include <linux/led-lm3530.h> #include <linux/types.h> #include <linux/regulator/consumer.h> +#include <linux/module.h> #define LM3530_LED_DEV "lcd-backlight" #define LM3530_NAME "lm3530-led" diff --git a/drivers/leds/leds-locomo.c b/drivers/leds/leds-locomo.c index 1f7c10f6b7f2..80ba048889d6 100644 --- a/drivers/leds/leds-locomo.c +++ b/drivers/leds/leds-locomo.c @@ -10,6 +10,7 @@ #include <linux/kernel.h> #include <linux/init.h> +#include <linux/module.h> #include <linux/device.h> #include <linux/leds.h> diff --git a/drivers/leds/leds-lt3593.c b/drivers/leds/leds-lt3593.c index 2579678f97a6..53f67b8ce55d 100644 --- a/drivers/leds/leds-lt3593.c +++ b/drivers/leds/leds-lt3593.c @@ -24,6 +24,7 @@ #include <linux/delay.h> #include <linux/gpio.h> #include <linux/slab.h> +#include <linux/module.h> struct lt3593_led_data { struct led_classdev cdev; diff --git a/drivers/leds/leds-mc13783.c b/drivers/leds/leds-mc13783.c index f369e56d6547..b3393a9f2139 100644 --- a/drivers/leds/leds-mc13783.c +++ b/drivers/leds/leds-mc13783.c @@ -21,13 +21,13 @@ #include <linux/platform_device.h> #include <linux/leds.h> #include <linux/workqueue.h> -#include <linux/mfd/mc13783.h> +#include <linux/mfd/mc13xxx.h> #include <linux/slab.h> struct mc13783_led { struct led_classdev cdev; struct work_struct work; - struct mc13783 *master; + struct mc13xxx *master; enum led_brightness new_brightness; int id; }; @@ -111,11 +111,11 @@ static void mc13783_led_work(struct work_struct *work) break; } - mc13783_lock(led->master); + mc13xxx_lock(led->master); - mc13783_reg_rmw(led->master, reg, mask, value); + mc13xxx_reg_rmw(led->master, reg, mask, value); - mc13783_unlock(led->master); + mc13xxx_unlock(led->master); } static void mc13783_led_set(struct led_classdev *led_cdev, @@ -172,23 +172,23 @@ static int __devinit mc13783_led_setup(struct mc13783_led *led, int max_current) break; } - mc13783_lock(led->master); + mc13xxx_lock(led->master); - ret = mc13783_reg_rmw(led->master, reg, mask << shift, + ret = mc13xxx_reg_rmw(led->master, reg, mask << shift, value << shift); - mc13783_unlock(led->master); + mc13xxx_unlock(led->master); return ret; } static int __devinit mc13783_leds_prepare(struct platform_device *pdev) { - struct mc13783_leds_platform_data *pdata = dev_get_platdata(&pdev->dev); - struct mc13783 *dev = dev_get_drvdata(pdev->dev.parent); + struct mc13xxx_leds_platform_data *pdata = dev_get_platdata(&pdev->dev); + struct mc13xxx *dev = dev_get_drvdata(pdev->dev.parent); int ret = 0; int reg = 0; - mc13783_lock(dev); + mc13xxx_lock(dev); if (pdata->flags & MC13783_LED_TC1HALF) reg |= MC13783_LED_C1_TC1HALF_BIT; @@ -196,7 +196,7 @@ static int __devinit mc13783_leds_prepare(struct platform_device *pdev) if (pdata->flags & MC13783_LED_SLEWLIMTC) reg |= MC13783_LED_Cx_SLEWLIM_BIT; - ret = mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_1, reg); + ret = mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_1, reg); if (ret) goto out; @@ -206,7 +206,7 @@ static int __devinit mc13783_leds_prepare(struct platform_device *pdev) if (pdata->flags & MC13783_LED_SLEWLIMBL) reg |= MC13783_LED_Cx_SLEWLIM_BIT; - ret = mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_2, reg); + ret = mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_2, reg); if (ret) goto out; @@ -216,7 +216,7 @@ static int __devinit mc13783_leds_prepare(struct platform_device *pdev) if (pdata->flags & MC13783_LED_TRIODE_TC1) reg |= MC13783_LED_Cx_TRIODE_TC_BIT; - ret = mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_3, reg); + ret = mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_3, reg); if (ret) goto out; @@ -226,7 +226,7 @@ static int __devinit mc13783_leds_prepare(struct platform_device *pdev) if (pdata->flags & MC13783_LED_TRIODE_TC2) reg |= MC13783_LED_Cx_TRIODE_TC_BIT; - ret = mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_4, reg); + ret = mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_4, reg); if (ret) goto out; @@ -236,7 +236,7 @@ static int __devinit mc13783_leds_prepare(struct platform_device *pdev) if (pdata->flags & MC13783_LED_TRIODE_TC3) reg |= MC13783_LED_Cx_TRIODE_TC_BIT; - ret = mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_5, reg); + ret = mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_5, reg); if (ret) goto out; @@ -255,17 +255,17 @@ static int __devinit mc13783_leds_prepare(struct platform_device *pdev) reg |= (pdata->abref & MC13783_LED_C0_ABREF_MASK) << MC13783_LED_C0_ABREF; - ret = mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_0, reg); + ret = mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_0, reg); out: - mc13783_unlock(dev); + mc13xxx_unlock(dev); return ret; } static int __devinit mc13783_led_probe(struct platform_device *pdev) { - struct mc13783_leds_platform_data *pdata = dev_get_platdata(&pdev->dev); - struct mc13783_led_platform_data *led_cur; + struct mc13xxx_leds_platform_data *pdata = dev_get_platdata(&pdev->dev); + struct mc13xxx_led_platform_data *led_cur; struct mc13783_led *led, *led_dat; int ret, i; int init_led = 0; @@ -351,9 +351,9 @@ err_free: static int __devexit mc13783_led_remove(struct platform_device *pdev) { - struct mc13783_leds_platform_data *pdata = dev_get_platdata(&pdev->dev); + struct mc13xxx_leds_platform_data *pdata = dev_get_platdata(&pdev->dev); struct mc13783_led *led = platform_get_drvdata(pdev); - struct mc13783 *dev = dev_get_drvdata(pdev->dev.parent); + struct mc13xxx *dev = dev_get_drvdata(pdev->dev.parent); int i; for (i = 0; i < pdata->num_leds; i++) { @@ -361,16 +361,16 @@ static int __devexit mc13783_led_remove(struct platform_device *pdev) cancel_work_sync(&led[i].work); } - mc13783_lock(dev); + mc13xxx_lock(dev); - mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_0, 0); - mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_1, 0); - mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_2, 0); - mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_3, 0); - mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_4, 0); - mc13783_reg_write(dev, MC13783_REG_LED_CONTROL_5, 0); + mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_0, 0); + mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_1, 0); + mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_2, 0); + mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_3, 0); + mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_4, 0); + mc13xxx_reg_write(dev, MC13783_REG_LED_CONTROL_5, 0); - mc13783_unlock(dev); + mc13xxx_unlock(dev); kfree(led); return 0; diff --git a/drivers/leds/leds-net48xx.c b/drivers/leds/leds-net48xx.c index 93987a12da49..f117f7326c5b 100644 --- a/drivers/leds/leds-net48xx.c +++ b/drivers/leds/leds-net48xx.c @@ -18,6 +18,7 @@ #include <asm/io.h> #include <linux/nsc_gpio.h> #include <linux/scx200_gpio.h> +#include <linux/module.h> #define DRVNAME "net48xx-led" #define NET48XX_ERROR_LED_GPIO 20 diff --git a/drivers/leds/leds-net5501.c b/drivers/leds/leds-net5501.c index 7e764b8365e6..0555d4709a7c 100644 --- a/drivers/leds/leds-net5501.c +++ b/drivers/leds/leds-net5501.c @@ -16,6 +16,7 @@ #include <linux/leds.h> #include <linux/platform_device.h> #include <linux/gpio.h> +#include <linux/module.h> #include <asm/geode.h> diff --git a/drivers/leds/leds-ns2.c b/drivers/leds/leds-ns2.c index f77d48d0b3e4..37b7d0cfe586 100644 --- a/drivers/leds/leds-ns2.c +++ b/drivers/leds/leds-ns2.c @@ -28,6 +28,7 @@ #include <linux/slab.h> #include <linux/gpio.h> #include <linux/leds.h> +#include <linux/module.h> #include <mach/leds-ns2.h> /* diff --git a/drivers/leds/leds-s3c24xx.c b/drivers/leds/leds-s3c24xx.c index a77771dc2e95..29f8b0f0e2c6 100644 --- a/drivers/leds/leds-s3c24xx.c +++ b/drivers/leds/leds-s3c24xx.c @@ -17,6 +17,7 @@ #include <linux/leds.h> #include <linux/gpio.h> #include <linux/slab.h> +#include <linux/module.h> #include <mach/hardware.h> #include <mach/regs-gpio.h> diff --git a/drivers/leds/leds-wm831x-status.c b/drivers/leds/leds-wm831x-status.c index ef5c24140a44..b1eb34c3e81f 100644 --- a/drivers/leds/leds-wm831x-status.c +++ b/drivers/leds/leds-wm831x-status.c @@ -18,6 +18,7 @@ #include <linux/mfd/wm831x/core.h> #include <linux/mfd/wm831x/pdata.h> #include <linux/mfd/wm831x/status.h> +#include <linux/module.h> struct wm831x_status { diff --git a/drivers/leds/leds-wm8350.c b/drivers/leds/leds-wm8350.c index f14edd82cb00..4a1276578352 100644 --- a/drivers/leds/leds-wm8350.c +++ b/drivers/leds/leds-wm8350.c @@ -17,6 +17,7 @@ #include <linux/mfd/wm8350/pmic.h> #include <linux/regulator/consumer.h> #include <linux/slab.h> +#include <linux/module.h> /* Microamps */ static const int isink_cur[] = { diff --git a/drivers/leds/leds-wrap.c b/drivers/leds/leds-wrap.c index 2982c86ac4cf..6e21e654bb02 100644 --- a/drivers/leds/leds-wrap.c +++ b/drivers/leds/leds-wrap.c @@ -17,6 +17,7 @@ #include <linux/err.h> #include <asm/io.h> #include <linux/scx200_gpio.h> +#include <linux/module.h> #define DRVNAME "wrap-led" #define WRAP_POWER_LED_GPIO 2 |