@@ -18,13 +18,8 @@ static int shmob_drm_backlight_update(struct backlight_device *bdev)
struct shmob_drm_connector *scon = bl_get_data(bdev);
struct shmob_drm_device *sdev = scon->connector.dev->dev_private;
const struct shmob_drm_backlight_data *bdata = &sdev->pdata->backlight;
- int brightness = bdev->props.brightness;
- if (bdev->props.power != FB_BLANK_UNBLANK ||
- bdev->props.state & BL_CORE_SUSPENDED)
- brightness = 0;
-
- return bdata->set_brightness(brightness);
+ return bdata->set_brightness(backlight_get_brightness(bdev));
}
static int shmob_drm_backlight_get_brightness(struct backlight_device *bdev)
@@ -47,9 +42,10 @@ void shmob_drm_backlight_dpms(struct shmob_drm_connector *scon, int mode)
if (scon->backlight == NULL)
return;
- scon->backlight->props.power = mode == DRM_MODE_DPMS_ON
- ? FB_BLANK_UNBLANK : FB_BLANK_POWERDOWN;
- backlight_update_status(scon->backlight);
+ if (mode == DRM_MODE_DPMS_ON)
+ backlight_enable(scon->backlight);
+ else
+ backlight_disable(scon->backlight);
}
int shmob_drm_backlight_init(struct shmob_drm_connector *scon)
@@ -59,21 +55,19 @@ int shmob_drm_backlight_init(struct shmob_drm_connector *scon)
struct drm_connector *connector = &scon->connector;
struct drm_device *dev = connector->dev;
struct backlight_device *backlight;
+ DECLARE_BACKLIGHT_INIT_RAW(props, bdata->max_brightness, bdata->max_brightness);
if (!bdata->max_brightness)
return 0;
backlight = backlight_device_register(bdata->name, dev->dev, scon,
- &shmob_drm_backlight_ops, NULL);
+ &shmob_drm_backlight_ops, &props);
if (IS_ERR(backlight)) {
dev_err(dev->dev, "unable to register backlight device: %ld\n",
PTR_ERR(backlight));
return PTR_ERR(backlight);
}
- backlight->props.max_brightness = bdata->max_brightness;
- backlight->props.brightness = bdata->max_brightness;
- backlight->props.power = FB_BLANK_POWERDOWN;
backlight_update_status(backlight);
scon->backlight = backlight;
- Use get/set methods for backlight_properties - Use macro for backlight initialization Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com> Cc: linux-renesas-soc@vger.kernel.org --- .../gpu/drm/shmobile/shmob_drm_backlight.c | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-)