[4.9.y,1/3] drm/bridge: adv7511: Rework adv7511_power_on/off() so they can be reused internally

Message ID 20171103031026.11224-1-nhan.nguyen.yb@renesas.com
State New
Headers show
Series
  • [4.9.y,1/3] drm/bridge: adv7511: Rework adv7511_power_on/off() so they can be reused internally
Related show

Commit Message

Nhan Ngoc. Nguyen Nov. 3, 2017, 3:10 a.m.
From: John Stultz <john.stultz@linaro.org>


commit 651e4769ba2a9f20c4b8a823ae2727bf7fa9c9f0 upstream.

In chasing down issues with EDID probing, I found some
duplicated but incomplete logic used to power the chip on and
off.

This patch refactors the adv7511_power_on/off functions, so
they can be used for internal needs.

Cc: David Airlie <airlied@linux.ie>
Cc: Archit Taneja <architt@codeaurora.org>
Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: dri-devel@lists.freedesktop.org
Cc: stable@vger.kernel.org
Signed-off-by: John Stultz <john.stultz@linaro.org>

Signed-off-by: Archit Taneja <architt@codeaurora.org>

Signed-off-by: Thong Ho <thong.ho.px@rvc.renesas.com>

Signed-off-by: Nhan Nguyen <nhan.nguyen.yb@renesas.com>

Link: http://patchwork.freedesktop.org/patch/msgid/1484614372-15342-5-git-send-email-john.stultz@linaro.org
---
 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

-- 
2.7.4

Comments

Greg Kroah-Hartman Nov. 6, 2017, 7:57 a.m. | #1
On Fri, Nov 03, 2017 at 10:10:26AM +0700, Nhan Nguyen wrote:
> From: John Stultz <john.stultz@linaro.org>

> 

> commit 651e4769ba2a9f20c4b8a823ae2727bf7fa9c9f0 upstream.

> 

> In chasing down issues with EDID probing, I found some

> duplicated but incomplete logic used to power the chip on and

> off.

> 

> This patch refactors the adv7511_power_on/off functions, so

> they can be used for internal needs.

> 

> Cc: David Airlie <airlied@linux.ie>

> Cc: Archit Taneja <architt@codeaurora.org>

> Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>

> Cc: Lars-Peter Clausen <lars@metafoo.de>

> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> Cc: dri-devel@lists.freedesktop.org

> Cc: stable@vger.kernel.org

> Signed-off-by: John Stultz <john.stultz@linaro.org>

> Signed-off-by: Archit Taneja <architt@codeaurora.org>

> Signed-off-by: Thong Ho <thong.ho.px@rvc.renesas.com>

> Signed-off-by: Nhan Nguyen <nhan.nguyen.yb@renesas.com>

> Link: http://patchwork.freedesktop.org/patch/msgid/1484614372-15342-5-git-send-email-john.stultz@linaro.org

> ---

>  drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 15 +++++++++++----

>  1 file changed, 11 insertions(+), 4 deletions(-)


Why are you asking for these 3 patches to be backported to the 4.9
stable tree?  What bugs are they fixing?  How do they meet the stable
kernel rules?

totally confused,

greg k-h
Nhan Ngoc. Nguyen Nov. 7, 2017, 2:53 a.m. | #2
On 11/6/2017 2:57 PM, Greg KH wrote:
> On Fri, Nov 03, 2017 at 10:10:26AM +0700, Nhan Nguyen wrote:

>> From: John Stultz <john.stultz@linaro.org>

>>

>> commit 651e4769ba2a9f20c4b8a823ae2727bf7fa9c9f0 upstream.

>>

>> In chasing down issues with EDID probing, I found some

>> duplicated but incomplete logic used to power the chip on and

>> off.

>>

>> This patch refactors the adv7511_power_on/off functions, so

>> they can be used for internal needs.

>>

>> Cc: David Airlie <airlied@linux.ie>

>> Cc: Archit Taneja <architt@codeaurora.org>

>> Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>

>> Cc: Lars-Peter Clausen <lars@metafoo.de>

>> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

>> Cc: dri-devel@lists.freedesktop.org

>> Cc: stable@vger.kernel.org

>> Signed-off-by: John Stultz <john.stultz@linaro.org>

>> Signed-off-by: Archit Taneja <architt@codeaurora.org>

>> Signed-off-by: Thong Ho <thong.ho.px@rvc.renesas.com>

>> Signed-off-by: Nhan Nguyen <nhan.nguyen.yb@renesas.com>

>> Link: http://patchwork.freedesktop.org/patch/msgid/1484614372-15342-5-git-send-email-john.stultz@linaro.org

>> ---

>>   drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 15 +++++++++++----

>>   1 file changed, 11 insertions(+), 4 deletions(-)

> Why are you asking for these 3 patches to be backported to the 4.9

> stable tree?  What bugs are they fixing?  How do they meet the stable

> kernel rules?

>

> totally confused,

>

> greg k-h


This patch is re-writes the i2c address to ADV7511_REG_EDID_I2C_ADDR register to ensure its properly set before reading the EDID data.
In the past, the backporting is for Kernel v4.4 and you asked to port for 4.9 also.

Patch

diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
index 72939d4..545ceff 100644
--- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
+++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
@@ -325,7 +325,7 @@  static void adv7511_set_link_config(struct adv7511 *adv7511,
 	adv7511->rgb = config->input_colorspace == HDMI_COLORSPACE_RGB;
 }
 
-static void adv7511_power_on(struct adv7511 *adv7511)
+static void __adv7511_power_on(struct adv7511 *adv7511)
 {
 	adv7511->current_edid_segment = -1;
 
@@ -354,6 +354,11 @@  static void adv7511_power_on(struct adv7511 *adv7511)
 	regmap_update_bits(adv7511->regmap, ADV7511_REG_POWER2,
 			   ADV7511_REG_POWER2_HPD_SRC_MASK,
 			   ADV7511_REG_POWER2_HPD_SRC_NONE);
+}
+
+static void adv7511_power_on(struct adv7511 *adv7511)
+{
+	__adv7511_power_on(adv7511);
 
 	/*
 	 * Most of the registers are reset during power down or when HPD is low.
@@ -362,21 +367,23 @@  static void adv7511_power_on(struct adv7511 *adv7511)
 
 	if (adv7511->type == ADV7533)
 		adv7533_dsi_power_on(adv7511);
-
 	adv7511->powered = true;
 }
 
-static void adv7511_power_off(struct adv7511 *adv7511)
+static void __adv7511_power_off(struct adv7511 *adv7511)
 {
 	/* TODO: setup additional power down modes */
 	regmap_update_bits(adv7511->regmap, ADV7511_REG_POWER,
 			   ADV7511_POWER_POWER_DOWN,
 			   ADV7511_POWER_POWER_DOWN);
 	regcache_mark_dirty(adv7511->regmap);
+}
 
+static void adv7511_power_off(struct adv7511 *adv7511)
+{
+	__adv7511_power_off(adv7511);
 	if (adv7511->type == ADV7533)
 		adv7533_dsi_power_off(adv7511);
-
 	adv7511->powered = false;
 }