Acked-by: Jingoo Han The ams369fg06 driver is tested. > -----Original Message----- > From: Axel Lin [mailto:axel.lin@gmail.com] > Sent: Tuesday, July 05, 2011 1:38 PM > To: linux-kernel@vger.kernel.org > 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 > Cc: Matthew Garrett > Cc: Jingoo Han > Cc: Donghwa Lee > Cc: InKi Dae > --- > 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 > {.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I