diff options
| author | Camus Wong <camusw@codeaurora.org> | 2018-02-05 17:14:44 -0500 |
|---|---|---|
| committer | Camus Wong <camusw@codeaurora.org> | 2018-02-12 19:36:58 -0500 |
| commit | def1bee62a0a653ae4a7824a17ddec1b182c98dd (patch) | |
| tree | 7eccdaaa6d32f96aa3d4109c4400a6548f0c40f7 /drivers/gpu/drm/msm/dba_bridge.c | |
| parent | a15bce8f33bccaa3b83b40024620fd36533685c2 (diff) | |
DRM: DBA: Adding hardware power sequence to DBA power off code
Adding power off register sequence to reduce power in power off.
Adding switch GPIO sequence in power on/off call.
Change-Id: Ifbe57852a43e1b1d0f05594a84a10540cfeb6be7
Signed-off-by: Camus Wong <camusw@codeaurora.org>
Diffstat (limited to 'drivers/gpu/drm/msm/dba_bridge.c')
| -rw-r--r-- | drivers/gpu/drm/msm/dba_bridge.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/gpu/drm/msm/dba_bridge.c b/drivers/gpu/drm/msm/dba_bridge.c index f933a7f3dcfb..49999ba468e5 100644 --- a/drivers/gpu/drm/msm/dba_bridge.c +++ b/drivers/gpu/drm/msm/dba_bridge.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2017, The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -205,7 +205,8 @@ static void _dba_bridge_disable(struct drm_bridge *bridge) } if (d_bridge->ops.video_on) { - rc = d_bridge->ops.video_on(d_bridge->dba_ctx, false, NULL, 0); + rc = d_bridge->ops.video_on(d_bridge->dba_ctx, + false, NULL, 0); if (rc) SDE_ERROR("video off failed ret=%d\n", rc); } @@ -213,10 +214,19 @@ static void _dba_bridge_disable(struct drm_bridge *bridge) static void _dba_bridge_post_disable(struct drm_bridge *bridge) { + int rc = 0; + struct dba_bridge *d_bridge = to_dba_bridge(bridge); + if (!bridge) { SDE_ERROR("Invalid params\n"); return; } + + if (d_bridge->ops.power_on) { + rc = d_bridge->ops.power_on(d_bridge->dba_ctx, false, 0); + if (rc) + SDE_ERROR("power off failed ret=%d\n", rc); + } } static void _dba_bridge_mode_set(struct drm_bridge *bridge, |
