diff mbox series

[11/39] drm: renesas: shmobile: Remove backlight support

Message ID 144586844da90c6cff9c608a9d7e472811d45151.1687423204.git.geert+renesas@glider.be (mailing list archive)
State New, archived
Headers show
Series drm: renesas: shmobile: Atomic conversion + DT support | expand

Commit Message

Geert Uytterhoeven June 22, 2023, 9:21 a.m. UTC
From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

Backlight support should be implemented by panels, not by the LCDC
driver.  As the feature is currently unused anyway, remove it.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
[geert: Cleanups]
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
Changes compared to Laurent's original:
  - Rebase,
  - Remove unused variable ‘scon’,
  - Remove now unused to_shmob_encoder() macro,
  - Remove now empty shmob_drm_encoder wrapper.
---
 drivers/gpu/drm/renesas/shmobile/Makefile     |  3 +-
 .../renesas/shmobile/shmob_drm_backlight.c    | 82 -------------------
 .../renesas/shmobile/shmob_drm_backlight.h    | 19 -----
 .../gpu/drm/renesas/shmobile/shmob_drm_crtc.c | 33 +-------
 .../gpu/drm/renesas/shmobile/shmob_drm_crtc.h |  8 --
 .../gpu/drm/renesas/shmobile/shmob_drm_drv.h  |  2 +-
 .../gpu/drm/renesas/shmobile/shmob_drm_kms.c  |  2 +-
 include/linux/platform_data/shmob_drm.h       |  8 --
 8 files changed, 7 insertions(+), 150 deletions(-)
 delete mode 100644 drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.c
 delete mode 100644 drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.h

Comments

Laurent Pinchart June 23, 2023, 3:36 p.m. UTC | #1
Hi Geert,

Thank you for the patch.

On Thu, Jun 22, 2023 at 11:21:23AM +0200, Geert Uytterhoeven wrote:
> From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> 
> Backlight support should be implemented by panels, not by the LCDC
> driver.  As the feature is currently unused anyway, remove it.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> [geert: Cleanups]
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>

Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

> ---
> Changes compared to Laurent's original:
>   - Rebase,
>   - Remove unused variable ‘scon’,
>   - Remove now unused to_shmob_encoder() macro,
>   - Remove now empty shmob_drm_encoder wrapper.
> ---
>  drivers/gpu/drm/renesas/shmobile/Makefile     |  3 +-
>  .../renesas/shmobile/shmob_drm_backlight.c    | 82 -------------------
>  .../renesas/shmobile/shmob_drm_backlight.h    | 19 -----
>  .../gpu/drm/renesas/shmobile/shmob_drm_crtc.c | 33 +-------
>  .../gpu/drm/renesas/shmobile/shmob_drm_crtc.h |  8 --
>  .../gpu/drm/renesas/shmobile/shmob_drm_drv.h  |  2 +-
>  .../gpu/drm/renesas/shmobile/shmob_drm_kms.c  |  2 +-
>  include/linux/platform_data/shmob_drm.h       |  8 --
>  8 files changed, 7 insertions(+), 150 deletions(-)
>  delete mode 100644 drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.c
>  delete mode 100644 drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.h
> 
> diff --git a/drivers/gpu/drm/renesas/shmobile/Makefile b/drivers/gpu/drm/renesas/shmobile/Makefile
> index 861edafed8562c87..2679555d61a70207 100644
> --- a/drivers/gpu/drm/renesas/shmobile/Makefile
> +++ b/drivers/gpu/drm/renesas/shmobile/Makefile
> @@ -1,6 +1,5 @@
>  # SPDX-License-Identifier: GPL-2.0
> -shmob-drm-y := shmob_drm_backlight.o \
> -	       shmob_drm_crtc.o \
> +shmob-drm-y := shmob_drm_crtc.o \
>  	       shmob_drm_drv.o \
>  	       shmob_drm_kms.o \
>  	       shmob_drm_plane.o
> diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.c
> deleted file mode 100644
> index 794573badfe86076..0000000000000000
> --- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.c
> +++ /dev/null
> @@ -1,82 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0+
> -/*
> - * shmob_drm_backlight.c  --  SH Mobile DRM Backlight
> - *
> - * Copyright (C) 2012 Renesas Electronics Corporation
> - *
> - * Laurent Pinchart (laurent.pinchart@ideasonboard.com)
> - */
> -
> -#include <linux/backlight.h>
> -
> -#include "shmob_drm_backlight.h"
> -#include "shmob_drm_crtc.h"
> -#include "shmob_drm_drv.h"
> -
> -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 = backlight_get_brightness(bdev);
> -
> -	return bdata->set_brightness(brightness);
> -}
> -
> -static int shmob_drm_backlight_get_brightness(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;
> -
> -	return bdata->get_brightness();
> -}
> -
> -static const struct backlight_ops shmob_drm_backlight_ops = {
> -	.options	= BL_CORE_SUSPENDRESUME,
> -	.update_status	= shmob_drm_backlight_update,
> -	.get_brightness	= shmob_drm_backlight_get_brightness,
> -};
> -
> -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);
> -}
> -
> -int shmob_drm_backlight_init(struct shmob_drm_connector *scon)
> -{
> -	struct shmob_drm_device *sdev = scon->connector.dev->dev_private;
> -	const struct shmob_drm_backlight_data *bdata = &sdev->pdata->backlight;
> -	struct drm_connector *connector = &scon->connector;
> -	struct drm_device *dev = connector->dev;
> -	struct backlight_device *backlight;
> -
> -	if (!bdata->max_brightness)
> -		return 0;
> -
> -	backlight = backlight_device_register(bdata->name, dev->dev, scon,
> -					      &shmob_drm_backlight_ops, NULL);
> -	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;
> -	return 0;
> -}
> -
> -void shmob_drm_backlight_exit(struct shmob_drm_connector *scon)
> -{
> -	backlight_device_unregister(scon->backlight);
> -}
> diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.h b/drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.h
> deleted file mode 100644
> index d9abb7a60be5c414..0000000000000000
> --- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.h
> +++ /dev/null
> @@ -1,19 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0+ */
> -/*
> - * shmob_drm_backlight.h  --  SH Mobile DRM Backlight
> - *
> - * Copyright (C) 2012 Renesas Electronics Corporation
> - *
> - * Laurent Pinchart (laurent.pinchart@ideasonboard.com)
> - */
> -
> -#ifndef __SHMOB_DRM_BACKLIGHT_H__
> -#define __SHMOB_DRM_BACKLIGHT_H__
> -
> -struct shmob_drm_connector;
> -
> -void shmob_drm_backlight_dpms(struct shmob_drm_connector *scon, int mode);
> -int shmob_drm_backlight_init(struct shmob_drm_connector *scon);
> -void shmob_drm_backlight_exit(struct shmob_drm_connector *scon);
> -
> -#endif /* __SHMOB_DRM_BACKLIGHT_H__ */
> diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
> index 9bfdfa7c6e2b1001..c775c1d49f0e1ce9 100644
> --- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
> +++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
> @@ -7,7 +7,6 @@
>   * Laurent Pinchart (laurent.pinchart@ideasonboard.com)
>   */
>  
> -#include <linux/backlight.h>
>  #include <linux/clk.h>
>  #include <linux/pm_runtime.h>
>  
> @@ -24,7 +23,6 @@
>  #include <drm/drm_simple_kms_helper.h>
>  #include <drm/drm_vblank.h>
>  
> -#include "shmob_drm_backlight.h"
>  #include "shmob_drm_crtc.h"
>  #include "shmob_drm_drv.h"
>  #include "shmob_drm_kms.h"
> @@ -520,21 +518,9 @@ int shmob_drm_crtc_create(struct shmob_drm_device *sdev)
>   * Encoder
>   */
>  
> -#define to_shmob_encoder(e) \
> -	container_of(e, struct shmob_drm_encoder, encoder)
> -
>  static void shmob_drm_encoder_dpms(struct drm_encoder *encoder, int mode)
>  {
> -	struct shmob_drm_encoder *senc = to_shmob_encoder(encoder);
> -	struct shmob_drm_device *sdev = encoder->dev->dev_private;
> -	struct shmob_drm_connector *scon = &sdev->connector;
> -
> -	if (senc->dpms == mode)
> -		return;
> -
> -	shmob_drm_backlight_dpms(scon, mode);
> -
> -	senc->dpms = mode;
> +	/* No-op, everything is handled in the CRTC code. */
>  }
>  
>  static bool shmob_drm_encoder_mode_fixup(struct drm_encoder *encoder,
> @@ -586,11 +572,9 @@ static const struct drm_encoder_helper_funcs encoder_helper_funcs = {
>  
>  int shmob_drm_encoder_create(struct shmob_drm_device *sdev)
>  {
> -	struct drm_encoder *encoder = &sdev->encoder.encoder;
> +	struct drm_encoder *encoder = &sdev->encoder;
>  	int ret;
>  
> -	sdev->encoder.dpms = DRM_MODE_DPMS_OFF;
> -
>  	encoder->possible_crtcs = 1;
>  
>  	ret = drm_simple_encoder_init(sdev->ddev, encoder,
> @@ -655,9 +639,6 @@ static const struct drm_connector_helper_funcs connector_helper_funcs = {
>  
>  static void shmob_drm_connector_destroy(struct drm_connector *connector)
>  {
> -	struct shmob_drm_connector *scon = to_shmob_connector(connector);
> -
> -	shmob_drm_backlight_exit(scon);
>  	drm_connector_unregister(connector);
>  	drm_connector_cleanup(connector);
>  }
> @@ -686,13 +667,9 @@ int shmob_drm_connector_create(struct shmob_drm_device *sdev,
>  
>  	drm_connector_helper_add(connector, &connector_helper_funcs);
>  
> -	ret = shmob_drm_backlight_init(&sdev->connector);
> -	if (ret < 0)
> -		goto err_cleanup;
> -
>  	ret = drm_connector_attach_encoder(connector, encoder);
>  	if (ret < 0)
> -		goto err_backlight;
> +		goto error;
>  
>  	drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
>  	drm_object_property_set_value(&connector->base,
> @@ -700,9 +677,7 @@ int shmob_drm_connector_create(struct shmob_drm_device *sdev,
>  
>  	return 0;
>  
> -err_backlight:
> -	shmob_drm_backlight_exit(&sdev->connector);
> -err_cleanup:
> +error:
>  	drm_connector_cleanup(connector);
>  	return ret;
>  }
> diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.h b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.h
> index 21718843f46d3d19..bce6926269453b77 100644
> --- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.h
> +++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.h
> @@ -14,7 +14,6 @@
>  #include <drm/drm_connector.h>
>  #include <drm/drm_encoder.h>
>  
> -struct backlight_device;
>  struct drm_pending_vblank_event;
>  struct shmob_drm_device;
>  struct shmob_drm_format_info;
> @@ -31,16 +30,9 @@ struct shmob_drm_crtc {
>  	bool started;
>  };
>  
> -struct shmob_drm_encoder {
> -	struct drm_encoder encoder;
> -	int dpms;
> -};
> -
>  struct shmob_drm_connector {
>  	struct drm_connector connector;
>  	struct drm_encoder *encoder;
> -
> -	struct backlight_device *backlight;
>  };
>  
>  int shmob_drm_crtc_create(struct shmob_drm_device *sdev);
> diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.h b/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.h
> index 4964ddd5ab7472b0..16d830168b2ada21 100644
> --- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.h
> +++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.h
> @@ -35,7 +35,7 @@ struct shmob_drm_device {
>  	struct drm_device *ddev;
>  
>  	struct shmob_drm_crtc crtc;
> -	struct shmob_drm_encoder encoder;
> +	struct drm_encoder encoder;
>  	struct shmob_drm_connector connector;
>  };
>  
> diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
> index 8fd360149743f8e2..3051318ddc7999bc 100644
> --- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
> +++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
> @@ -159,7 +159,7 @@ int shmob_drm_modeset_init(struct shmob_drm_device *sdev)
>  
>  	shmob_drm_crtc_create(sdev);
>  	shmob_drm_encoder_create(sdev);
> -	shmob_drm_connector_create(sdev, &sdev->encoder.encoder);
> +	shmob_drm_connector_create(sdev, &sdev->encoder);
>  
>  	drm_kms_helper_poll_init(sdev->ddev);
>  
> diff --git a/include/linux/platform_data/shmob_drm.h b/include/linux/platform_data/shmob_drm.h
> index d661399b217dfc4b..b6b5b6607fb5e52c 100644
> --- a/include/linux/platform_data/shmob_drm.h
> +++ b/include/linux/platform_data/shmob_drm.h
> @@ -40,13 +40,6 @@ enum shmob_drm_interface {
>  	SHMOB_DRM_IFACE_SYS24,		/* 24bpp */
>  };
>  
> -struct shmob_drm_backlight_data {
> -	const char *name;
> -	int max_brightness;
> -	int (*get_brightness)(void);
> -	int (*set_brightness)(int brightness);
> -};
> -
>  struct shmob_drm_panel_data {
>  	unsigned int width_mm;		/* Panel width in mm */
>  	unsigned int height_mm;		/* Panel height in mm */
> @@ -83,7 +76,6 @@ struct shmob_drm_platform_data {
>  	enum shmob_drm_clk_source clk_source;
>  	struct shmob_drm_interface_data iface;
>  	struct shmob_drm_panel_data panel;
> -	struct shmob_drm_backlight_data backlight;
>  };
>  
>  #endif /* __SHMOB_DRM_H__ */
diff mbox series

Patch

diff --git a/drivers/gpu/drm/renesas/shmobile/Makefile b/drivers/gpu/drm/renesas/shmobile/Makefile
index 861edafed8562c87..2679555d61a70207 100644
--- a/drivers/gpu/drm/renesas/shmobile/Makefile
+++ b/drivers/gpu/drm/renesas/shmobile/Makefile
@@ -1,6 +1,5 @@ 
 # SPDX-License-Identifier: GPL-2.0
-shmob-drm-y := shmob_drm_backlight.o \
-	       shmob_drm_crtc.o \
+shmob-drm-y := shmob_drm_crtc.o \
 	       shmob_drm_drv.o \
 	       shmob_drm_kms.o \
 	       shmob_drm_plane.o
diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.c
deleted file mode 100644
index 794573badfe86076..0000000000000000
--- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.c
+++ /dev/null
@@ -1,82 +0,0 @@ 
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * shmob_drm_backlight.c  --  SH Mobile DRM Backlight
- *
- * Copyright (C) 2012 Renesas Electronics Corporation
- *
- * Laurent Pinchart (laurent.pinchart@ideasonboard.com)
- */
-
-#include <linux/backlight.h>
-
-#include "shmob_drm_backlight.h"
-#include "shmob_drm_crtc.h"
-#include "shmob_drm_drv.h"
-
-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 = backlight_get_brightness(bdev);
-
-	return bdata->set_brightness(brightness);
-}
-
-static int shmob_drm_backlight_get_brightness(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;
-
-	return bdata->get_brightness();
-}
-
-static const struct backlight_ops shmob_drm_backlight_ops = {
-	.options	= BL_CORE_SUSPENDRESUME,
-	.update_status	= shmob_drm_backlight_update,
-	.get_brightness	= shmob_drm_backlight_get_brightness,
-};
-
-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);
-}
-
-int shmob_drm_backlight_init(struct shmob_drm_connector *scon)
-{
-	struct shmob_drm_device *sdev = scon->connector.dev->dev_private;
-	const struct shmob_drm_backlight_data *bdata = &sdev->pdata->backlight;
-	struct drm_connector *connector = &scon->connector;
-	struct drm_device *dev = connector->dev;
-	struct backlight_device *backlight;
-
-	if (!bdata->max_brightness)
-		return 0;
-
-	backlight = backlight_device_register(bdata->name, dev->dev, scon,
-					      &shmob_drm_backlight_ops, NULL);
-	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;
-	return 0;
-}
-
-void shmob_drm_backlight_exit(struct shmob_drm_connector *scon)
-{
-	backlight_device_unregister(scon->backlight);
-}
diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.h b/drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.h
deleted file mode 100644
index d9abb7a60be5c414..0000000000000000
--- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_backlight.h
+++ /dev/null
@@ -1,19 +0,0 @@ 
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * shmob_drm_backlight.h  --  SH Mobile DRM Backlight
- *
- * Copyright (C) 2012 Renesas Electronics Corporation
- *
- * Laurent Pinchart (laurent.pinchart@ideasonboard.com)
- */
-
-#ifndef __SHMOB_DRM_BACKLIGHT_H__
-#define __SHMOB_DRM_BACKLIGHT_H__
-
-struct shmob_drm_connector;
-
-void shmob_drm_backlight_dpms(struct shmob_drm_connector *scon, int mode);
-int shmob_drm_backlight_init(struct shmob_drm_connector *scon);
-void shmob_drm_backlight_exit(struct shmob_drm_connector *scon);
-
-#endif /* __SHMOB_DRM_BACKLIGHT_H__ */
diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
index 9bfdfa7c6e2b1001..c775c1d49f0e1ce9 100644
--- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
+++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
@@ -7,7 +7,6 @@ 
  * Laurent Pinchart (laurent.pinchart@ideasonboard.com)
  */
 
-#include <linux/backlight.h>
 #include <linux/clk.h>
 #include <linux/pm_runtime.h>
 
@@ -24,7 +23,6 @@ 
 #include <drm/drm_simple_kms_helper.h>
 #include <drm/drm_vblank.h>
 
-#include "shmob_drm_backlight.h"
 #include "shmob_drm_crtc.h"
 #include "shmob_drm_drv.h"
 #include "shmob_drm_kms.h"
@@ -520,21 +518,9 @@  int shmob_drm_crtc_create(struct shmob_drm_device *sdev)
  * Encoder
  */
 
-#define to_shmob_encoder(e) \
-	container_of(e, struct shmob_drm_encoder, encoder)
-
 static void shmob_drm_encoder_dpms(struct drm_encoder *encoder, int mode)
 {
-	struct shmob_drm_encoder *senc = to_shmob_encoder(encoder);
-	struct shmob_drm_device *sdev = encoder->dev->dev_private;
-	struct shmob_drm_connector *scon = &sdev->connector;
-
-	if (senc->dpms == mode)
-		return;
-
-	shmob_drm_backlight_dpms(scon, mode);
-
-	senc->dpms = mode;
+	/* No-op, everything is handled in the CRTC code. */
 }
 
 static bool shmob_drm_encoder_mode_fixup(struct drm_encoder *encoder,
@@ -586,11 +572,9 @@  static const struct drm_encoder_helper_funcs encoder_helper_funcs = {
 
 int shmob_drm_encoder_create(struct shmob_drm_device *sdev)
 {
-	struct drm_encoder *encoder = &sdev->encoder.encoder;
+	struct drm_encoder *encoder = &sdev->encoder;
 	int ret;
 
-	sdev->encoder.dpms = DRM_MODE_DPMS_OFF;
-
 	encoder->possible_crtcs = 1;
 
 	ret = drm_simple_encoder_init(sdev->ddev, encoder,
@@ -655,9 +639,6 @@  static const struct drm_connector_helper_funcs connector_helper_funcs = {
 
 static void shmob_drm_connector_destroy(struct drm_connector *connector)
 {
-	struct shmob_drm_connector *scon = to_shmob_connector(connector);
-
-	shmob_drm_backlight_exit(scon);
 	drm_connector_unregister(connector);
 	drm_connector_cleanup(connector);
 }
@@ -686,13 +667,9 @@  int shmob_drm_connector_create(struct shmob_drm_device *sdev,
 
 	drm_connector_helper_add(connector, &connector_helper_funcs);
 
-	ret = shmob_drm_backlight_init(&sdev->connector);
-	if (ret < 0)
-		goto err_cleanup;
-
 	ret = drm_connector_attach_encoder(connector, encoder);
 	if (ret < 0)
-		goto err_backlight;
+		goto error;
 
 	drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
 	drm_object_property_set_value(&connector->base,
@@ -700,9 +677,7 @@  int shmob_drm_connector_create(struct shmob_drm_device *sdev,
 
 	return 0;
 
-err_backlight:
-	shmob_drm_backlight_exit(&sdev->connector);
-err_cleanup:
+error:
 	drm_connector_cleanup(connector);
 	return ret;
 }
diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.h b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.h
index 21718843f46d3d19..bce6926269453b77 100644
--- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.h
+++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.h
@@ -14,7 +14,6 @@ 
 #include <drm/drm_connector.h>
 #include <drm/drm_encoder.h>
 
-struct backlight_device;
 struct drm_pending_vblank_event;
 struct shmob_drm_device;
 struct shmob_drm_format_info;
@@ -31,16 +30,9 @@  struct shmob_drm_crtc {
 	bool started;
 };
 
-struct shmob_drm_encoder {
-	struct drm_encoder encoder;
-	int dpms;
-};
-
 struct shmob_drm_connector {
 	struct drm_connector connector;
 	struct drm_encoder *encoder;
-
-	struct backlight_device *backlight;
 };
 
 int shmob_drm_crtc_create(struct shmob_drm_device *sdev);
diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.h b/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.h
index 4964ddd5ab7472b0..16d830168b2ada21 100644
--- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.h
+++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.h
@@ -35,7 +35,7 @@  struct shmob_drm_device {
 	struct drm_device *ddev;
 
 	struct shmob_drm_crtc crtc;
-	struct shmob_drm_encoder encoder;
+	struct drm_encoder encoder;
 	struct shmob_drm_connector connector;
 };
 
diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
index 8fd360149743f8e2..3051318ddc7999bc 100644
--- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
+++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_kms.c
@@ -159,7 +159,7 @@  int shmob_drm_modeset_init(struct shmob_drm_device *sdev)
 
 	shmob_drm_crtc_create(sdev);
 	shmob_drm_encoder_create(sdev);
-	shmob_drm_connector_create(sdev, &sdev->encoder.encoder);
+	shmob_drm_connector_create(sdev, &sdev->encoder);
 
 	drm_kms_helper_poll_init(sdev->ddev);
 
diff --git a/include/linux/platform_data/shmob_drm.h b/include/linux/platform_data/shmob_drm.h
index d661399b217dfc4b..b6b5b6607fb5e52c 100644
--- a/include/linux/platform_data/shmob_drm.h
+++ b/include/linux/platform_data/shmob_drm.h
@@ -40,13 +40,6 @@  enum shmob_drm_interface {
 	SHMOB_DRM_IFACE_SYS24,		/* 24bpp */
 };
 
-struct shmob_drm_backlight_data {
-	const char *name;
-	int max_brightness;
-	int (*get_brightness)(void);
-	int (*set_brightness)(int brightness);
-};
-
 struct shmob_drm_panel_data {
 	unsigned int width_mm;		/* Panel width in mm */
 	unsigned int height_mm;		/* Panel height in mm */
@@ -83,7 +76,6 @@  struct shmob_drm_platform_data {
 	enum shmob_drm_clk_source clk_source;
 	struct shmob_drm_interface_data iface;
 	struct shmob_drm_panel_data panel;
-	struct shmob_drm_backlight_data backlight;
 };
 
 #endif /* __SHMOB_DRM_H__ */