Re: [PATCH] backlight: Set backlight type and max_brightness beforebacklights are registered

From: JinGoo Han
Date: Tue Jul 05 2011 - 02:07:37 EST


Acked-by: Jingoo Han <jg1.han@xxxxxxxxxxx>

The ams369fg06 driver is tested.

> -----Original Message-----
> From: Axel Lin [mailto:axel.lin@xxxxxxxxx]
> Sent: Tuesday, July 05, 2011 1:38 PM
> To: linux-kernel@xxxxxxxxxxxxxxx
> Cc: Matthew Garrett; Jingoo Han; Donghwa Lee; InKi Dae; Richard Purdie;
> Andrew Morton
> Subject: [PATCH] backlight: Set backlight type and max_brightness before
> backlights are registered
>
> Since commit a19a6ee "backlight: Allow properties to be passed at
> registration"
> and commit bb7ca74 "backlight: add backlight type",
> we can set backlight type and max_brightness before backlights are
> registered.
> Some newly added drivers did not set it properly, let's fix it.
>
> Signed-off-by: Axel Lin <axel.lin@xxxxxxxxx>
> Cc: Matthew Garrett <mjg@xxxxxxxxxx>
> Cc: Jingoo Han <jg1.han@xxxxxxxxxxx>
> Cc: Donghwa Lee <dh09.lee@xxxxxxxxxxx>
> Cc: InKi Dae <inki.dae@xxxxxxxxxxx>
> ---
> drivers/video/backlight/ams369fg06.c | 9 ++++++---
> drivers/video/backlight/ld9040.c | 8 ++++++--
> drivers/video/backlight/s6e63m0.c | 9 ++++++---
> 3 files changed, 18 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/video/backlight/ams369fg06.c
> b/drivers/video/backlight/ams369fg06.c
> index 6462d05..201a593 100644
> --- a/drivers/video/backlight/ams369fg06.c
> +++ b/drivers/video/backlight/ams369fg06.c
> @@ -479,6 +479,7 @@ static int __init ams369fg06_probe(struct spi_device
> *spi)
> struct ams369fg06 *lcd = NULL;
> struct lcd_device *ld = NULL;
> struct backlight_device *bd = NULL;
> + struct backlight_properties props;
>
> lcd = kzalloc(sizeof(struct ams369fg06), GFP_KERNEL);
> if (!lcd)
> @@ -511,16 +512,18 @@ static int __init ams369fg06_probe(struct spi_device
> *spi)
>
> lcd->ld = ld;
>
> + memset(&props, 0, sizeof(struct backlight_properties));
> + props.type = BACKLIGHT_RAW;
> + props.max_brightness = MAX_BRIGHTNESS;
> +
> bd = backlight_device_register("ams369fg06-bl", &spi->dev, lcd,
> - &ams369fg06_backlight_ops, NULL);
> + &ams369fg06_backlight_ops, &props);
> if (IS_ERR(bd)) {
> ret = PTR_ERR(bd);
> goto out_lcd_unregister;
> }
>
> - bd->props.max_brightness = MAX_BRIGHTNESS;
> bd->props.brightness = DEFAULT_BRIGHTNESS;
> - bd->props.type = BACKLIGHT_RAW;
> lcd->bd = bd;
>
> if (!lcd->lcd_pd->lcd_enabled) {
> diff --git a/drivers/video/backlight/ld9040.c
> b/drivers/video/backlight/ld9040.c
> index 62bcde3..5934655 100644
> --- a/drivers/video/backlight/ld9040.c
> +++ b/drivers/video/backlight/ld9040.c
> @@ -668,6 +668,7 @@ static int ld9040_probe(struct spi_device *spi)
> struct ld9040 *lcd = NULL;
> struct lcd_device *ld = NULL;
> struct backlight_device *bd = NULL;
> + struct backlight_properties props;
>
> lcd = kzalloc(sizeof(struct ld9040), GFP_KERNEL);
> if (!lcd)
> @@ -699,14 +700,17 @@ static int ld9040_probe(struct spi_device *spi)
>
> lcd->ld = ld;
>
> + memset(&props, 0, sizeof(struct backlight_properties));
> + props.type = BACKLIGHT_RAW;
> + props.max_brightness = MAX_BRIGHTNESS;
> +
> bd = backlight_device_register("ld9040-bl", &spi->dev,
> - lcd, &ld9040_backlight_ops, NULL);
> + lcd, &ld9040_backlight_ops, &props);
> if (IS_ERR(bd)) {
> ret = PTR_ERR(bd);
> goto out_unregister_lcd;
> }
>
> - bd->props.max_brightness = MAX_BRIGHTNESS;
> bd->props.brightness = MAX_BRIGHTNESS;
> lcd->bd = bd;
>
> diff --git a/drivers/video/backlight/s6e63m0.c
> b/drivers/video/backlight/s6e63m0.c
> index e1803ba..694e5aa 100644
> --- a/drivers/video/backlight/s6e63m0.c
> +++ b/drivers/video/backlight/s6e63m0.c
> @@ -738,6 +738,7 @@ static int __devinit s6e63m0_probe(struct spi_device
> *spi)
> struct s6e63m0 *lcd = NULL;
> struct lcd_device *ld = NULL;
> struct backlight_device *bd = NULL;
> + struct backlight_properties props;
>
> lcd = kzalloc(sizeof(struct s6e63m0), GFP_KERNEL);
> if (!lcd)
> @@ -769,16 +770,18 @@ static int __devinit s6e63m0_probe(struct spi_device
> *spi)
>
> lcd->ld = ld;
>
> + memset(&props, 0, sizeof(struct backlight_properties));
> + props.type = BACKLIGHT_RAW;
> + props.max_brightness = MAX_BRIGHTNESS;
> +
> bd = backlight_device_register("s6e63m0bl-bl", &spi->dev, lcd,
> - &s6e63m0_backlight_ops, NULL);
> + &s6e63m0_backlight_ops, &props);
> if (IS_ERR(bd)) {
> ret = PTR_ERR(bd);
> goto out_lcd_unregister;
> }
>
> - bd->props.max_brightness = MAX_BRIGHTNESS;
> bd->props.brightness = MAX_BRIGHTNESS;
> - bd->props.type = BACKLIGHT_RAW;
> lcd->bd = bd;
>
> /*
> --
> 1.7.4.1
>

?移»®&Þ~º&¶¬–+-깁負¥Šw®왢쎉喝méb욎dz받–)í끾èw*jgП¨¶‰šŽ듶¢j/곴äz받–듺2듷솳鈺Ú&¢)傘«a뛴®G«앶h®æj:+v돣Šwè녪¥>W슧違iÛaxPjØm¶Ÿÿà -»+껠dš_