Message ID | 20180425174253.4616-4-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Greg, Thomas, On Wed, 25 Apr 2018, Daniel Vetter wrote: > Leaking driver internal tracking into the already massively confusing > backlight power tracking is really confusing. > > Luckily we have already a drvdata structure, so fixing this is really > easy. > > Cc: Lee Jones <lee.jones@linaro.org> > Cc: Daniel Thompson <daniel.thompson@linaro.org> > Cc: Jingoo Han <jingoohan1@gmail.com> > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > Acked-by: Daniel Thompson <daniel.thompson@linaro.org> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > --- > drivers/staging/fbtft/fbtft-core.c | 4 ++-- > drivers/staging/fbtft/fbtft.h | 1 + > 2 files changed, 3 insertions(+), 2 deletions(-) Do you want a pull-request for this patch or can I just take it? > diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c > index 0e36b66ae5f7..731e47149af8 100644 > --- a/drivers/staging/fbtft/fbtft-core.c > +++ b/drivers/staging/fbtft/fbtft-core.c > @@ -246,7 +246,7 @@ static int fbtft_request_gpios_dt(struct fbtft_par *par) > static int fbtft_backlight_update_status(struct backlight_device *bd) > { > struct fbtft_par *par = bl_get_data(bd); > - bool polarity = !!(bd->props.state & BL_CORE_DRIVER1); > + bool polarity = par->polarity; > > fbtft_par_dbg(DEBUG_BACKLIGHT, par, > "%s: polarity=%d, power=%d, fb_blank=%d\n", > @@ -296,7 +296,7 @@ void fbtft_register_backlight(struct fbtft_par *par) > /* Assume backlight is off, get polarity from current state of pin */ > bl_props.power = FB_BLANK_POWERDOWN; > if (!gpio_get_value(par->gpio.led[0])) > - bl_props.state |= BL_CORE_DRIVER1; > + par->polarity = true; > > bd = backlight_device_register(dev_driver_string(par->info->device), > par->info->device, par, > diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h > index e19e64e0d094..c7cb4a7896f4 100644 > --- a/drivers/staging/fbtft/fbtft.h > +++ b/drivers/staging/fbtft/fbtft.h > @@ -229,6 +229,7 @@ struct fbtft_par { > ktime_t update_time; > bool bgr; > void *extra; > + bool polarity; > }; > > #define NUMARGS(...) (sizeof((int[]){__VA_ARGS__})/sizeof(int))
On Wed, 25 Apr 2018, Daniel Vetter <daniel.vetter@ffwll.ch> wrote: > Leaking driver internal tracking into the already massively confusing > backlight power tracking is really confusing. > > Luckily we have already a drvdata structure, so fixing this is really > easy. > > Cc: Lee Jones <lee.jones@linaro.org> > Cc: Daniel Thompson <daniel.thompson@linaro.org> > Cc: Jingoo Han <jingoohan1@gmail.com> > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > Acked-by: Daniel Thompson <daniel.thompson@linaro.org> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Reviewed-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/staging/fbtft/fbtft-core.c | 4 ++-- > drivers/staging/fbtft/fbtft.h | 1 + > 2 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c > index 0e36b66ae5f7..731e47149af8 100644 > --- a/drivers/staging/fbtft/fbtft-core.c > +++ b/drivers/staging/fbtft/fbtft-core.c > @@ -246,7 +246,7 @@ static int fbtft_request_gpios_dt(struct fbtft_par *par) > static int fbtft_backlight_update_status(struct backlight_device *bd) > { > struct fbtft_par *par = bl_get_data(bd); > - bool polarity = !!(bd->props.state & BL_CORE_DRIVER1); > + bool polarity = par->polarity; > > fbtft_par_dbg(DEBUG_BACKLIGHT, par, > "%s: polarity=%d, power=%d, fb_blank=%d\n", > @@ -296,7 +296,7 @@ void fbtft_register_backlight(struct fbtft_par *par) > /* Assume backlight is off, get polarity from current state of pin */ > bl_props.power = FB_BLANK_POWERDOWN; > if (!gpio_get_value(par->gpio.led[0])) > - bl_props.state |= BL_CORE_DRIVER1; > + par->polarity = true; > > bd = backlight_device_register(dev_driver_string(par->info->device), > par->info->device, par, > diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h > index e19e64e0d094..c7cb4a7896f4 100644 > --- a/drivers/staging/fbtft/fbtft.h > +++ b/drivers/staging/fbtft/fbtft.h > @@ -229,6 +229,7 @@ struct fbtft_par { > ktime_t update_time; > bool bgr; > void *extra; > + bool polarity; > }; > > #define NUMARGS(...) (sizeof((int[]){__VA_ARGS__})/sizeof(int))
On Mon, Apr 30, 2018 at 10:54:15AM +0100, Lee Jones wrote: > Greg, Thomas, > > On Wed, 25 Apr 2018, Daniel Vetter wrote: > > Leaking driver internal tracking into the already massively confusing > > backlight power tracking is really confusing. > > > > Luckily we have already a drvdata structure, so fixing this is really > > easy. > > > > Cc: Lee Jones <lee.jones@linaro.org> > > Cc: Daniel Thompson <daniel.thompson@linaro.org> > > Cc: Jingoo Han <jingoohan1@gmail.com> > > Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > > Acked-by: Daniel Thompson <daniel.thompson@linaro.org> > > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> > > --- > > drivers/staging/fbtft/fbtft-core.c | 4 ++-- > > drivers/staging/fbtft/fbtft.h | 1 + > > 2 files changed, 3 insertions(+), 2 deletions(-) > > Do you want a pull-request for this patch or can I just take it? Please take it if you need to take the whole series. Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index 0e36b66ae5f7..731e47149af8 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -246,7 +246,7 @@ static int fbtft_request_gpios_dt(struct fbtft_par *par) static int fbtft_backlight_update_status(struct backlight_device *bd) { struct fbtft_par *par = bl_get_data(bd); - bool polarity = !!(bd->props.state & BL_CORE_DRIVER1); + bool polarity = par->polarity; fbtft_par_dbg(DEBUG_BACKLIGHT, par, "%s: polarity=%d, power=%d, fb_blank=%d\n", @@ -296,7 +296,7 @@ void fbtft_register_backlight(struct fbtft_par *par) /* Assume backlight is off, get polarity from current state of pin */ bl_props.power = FB_BLANK_POWERDOWN; if (!gpio_get_value(par->gpio.led[0])) - bl_props.state |= BL_CORE_DRIVER1; + par->polarity = true; bd = backlight_device_register(dev_driver_string(par->info->device), par->info->device, par, diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h index e19e64e0d094..c7cb4a7896f4 100644 --- a/drivers/staging/fbtft/fbtft.h +++ b/drivers/staging/fbtft/fbtft.h @@ -229,6 +229,7 @@ struct fbtft_par { ktime_t update_time; bool bgr; void *extra; + bool polarity; }; #define NUMARGS(...) (sizeof((int[]){__VA_ARGS__})/sizeof(int))