diff options
author | Andrzej Hajda <a.hajda@samsung.com> | 2016-10-19 13:25:21 +0200 |
---|---|---|
committer | Seung-Woo Kim <sw0312.kim@samsung.com> | 2016-12-14 13:53:57 +0900 |
commit | 2eec2a75d4e69deb9041eee18d122fa9087784c2 (patch) | |
tree | 593e274b13b2bb85be86c5b4c5f42297f2b30c75 | |
parent | 93cf4e77fbedb50de87969c96d561856fd550fb9 (diff) |
drm/bridge/sii8620: improve on/off sequence
The patch puts clock management into on/off functions and adds neccessary
delay after regulator enable.
Change-Id: I4fc052eb21058e787355a8f2dfeb75b05a5d5341
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
-rw-r--r-- | drivers/gpu/drm/bridge/sii8620.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/gpu/drm/bridge/sii8620.c b/drivers/gpu/drm/bridge/sii8620.c index f4b30565b855..9c2303fe4b85 100644 --- a/drivers/gpu/drm/bridge/sii8620.c +++ b/drivers/gpu/drm/bridge/sii8620.c @@ -619,12 +619,13 @@ static int sii8620_hw_on(struct sii8620 *ctx) ret = regulator_bulk_enable(ARRAY_SIZE(ctx->supplies), ctx->supplies); if (ret) return ret; - - return 0; + usleep_range(10000, 20000); + return clk_prepare_enable(ctx->clk_xtal); } static int sii8620_hw_off(struct sii8620 *ctx) { + clk_disable_unprepare(ctx->clk_xtal); gpiod_set_value(ctx->gpio_reset, 1); return regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies); } @@ -1403,7 +1404,6 @@ static void sii8620_cable_in(struct sii8620 *ctx) int ret; sii8620_hw_on(ctx); - clk_prepare_enable(ctx->clk_xtal); sii8620_hw_reset(ctx); msleep(100); @@ -1443,7 +1443,6 @@ static void sii8620_cable_in(struct sii8620 *ctx) static void sii8620_cable_out(struct sii8620 *ctx) { disable_irq(to_i2c_client(ctx->dev)->irq); - clk_disable_unprepare(ctx->clk_xtal); sii8620_hw_off(ctx); } |