1 From 651e4769ba2a9f20c4b8a823ae2727bf7fa9c9f0 Mon Sep 17 00:00:00 2001
2 From: John Stultz <john.stultz@linaro.org>
3 Date: Mon, 16 Jan 2017 16:52:50 -0800
4 Subject: drm/bridge: adv7511: Rework adv7511_power_on/off() so they can be reused internally
6 From: John Stultz <john.stultz@linaro.org>
8 commit 651e4769ba2a9f20c4b8a823ae2727bf7fa9c9f0 upstream.
10 In chasing down issues with EDID probing, I found some
11 duplicated but incomplete logic used to power the chip on and
14 This patch refactors the adv7511_power_on/off functions, so
15 they can be used for internal needs.
17 Cc: David Airlie <airlied@linux.ie>
18 Cc: Archit Taneja <architt@codeaurora.org>
19 Cc: Wolfram Sang <wsa+renesas@sang-engineering.com>
20 Cc: Lars-Peter Clausen <lars@metafoo.de>
21 Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
22 Cc: dri-devel@lists.freedesktop.org
23 Signed-off-by: John Stultz <john.stultz@linaro.org>
24 Signed-off-by: Archit Taneja <architt@codeaurora.org>
25 Link: http://patchwork.freedesktop.org/patch/msgid/1484614372-15342-5-git-send-email-john.stultz@linaro.org
26 Signed-off-by: Nhan Nguyen <nhan.nguyen.yb@renesas.com>
27 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
30 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 15 +++++++++++----
31 1 file changed, 11 insertions(+), 4 deletions(-)
33 --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
34 +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
35 @@ -325,7 +325,7 @@ static void adv7511_set_link_config(stru
36 adv7511->rgb = config->input_colorspace == HDMI_COLORSPACE_RGB;
39 -static void adv7511_power_on(struct adv7511 *adv7511)
40 +static void __adv7511_power_on(struct adv7511 *adv7511)
42 adv7511->current_edid_segment = -1;
44 @@ -354,6 +354,11 @@ static void adv7511_power_on(struct adv7
45 regmap_update_bits(adv7511->regmap, ADV7511_REG_POWER2,
46 ADV7511_REG_POWER2_HPD_SRC_MASK,
47 ADV7511_REG_POWER2_HPD_SRC_NONE);
50 +static void adv7511_power_on(struct adv7511 *adv7511)
52 + __adv7511_power_on(adv7511);
55 * Most of the registers are reset during power down or when HPD is low.
56 @@ -362,21 +367,23 @@ static void adv7511_power_on(struct adv7
58 if (adv7511->type == ADV7533)
59 adv7533_dsi_power_on(adv7511);
61 adv7511->powered = true;
64 -static void adv7511_power_off(struct adv7511 *adv7511)
65 +static void __adv7511_power_off(struct adv7511 *adv7511)
67 /* TODO: setup additional power down modes */
68 regmap_update_bits(adv7511->regmap, ADV7511_REG_POWER,
69 ADV7511_POWER_POWER_DOWN,
70 ADV7511_POWER_POWER_DOWN);
71 regcache_mark_dirty(adv7511->regmap);
74 +static void adv7511_power_off(struct adv7511 *adv7511)
76 + __adv7511_power_off(adv7511);
77 if (adv7511->type == ADV7533)
78 adv7533_dsi_power_off(adv7511);
80 adv7511->powered = false;