* [v1] drm/msm/dsi: save pll state before dsi host is powered off
@ 2020-02-06 8:51 Harigovindan P
2020-02-06 14:51 ` [Freedreno] " Jeffrey Hugo
0 siblings, 1 reply; 3+ messages in thread
From: Harigovindan P @ 2020-02-06 8:51 UTC (permalink / raw)
To: dri-devel, linux-arm-msm, freedreno, devicetree
Cc: Harigovindan P, linux-kernel, robdclark, seanpaul, hoegsberg,
kalyan_t, nganji
Save pll state before dsi host is powered off. Without this change
some register values gets resetted.
Signed-off-by: Harigovindan P <harigovi@codeaurora.org>
---
Changes in v1:
- Saving pll state before dsi host is powered off.
- Removed calling of save state in post_disable since everything
would be resetted and it would save only resetted values.
drivers/gpu/drm/msm/dsi/dsi_manager.c | 5 +++++
drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 4 ----
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
index 104115d..a987efe 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
@@ -506,6 +506,7 @@ static void dsi_mgr_bridge_post_disable(struct drm_bridge *bridge)
struct msm_dsi *msm_dsi1 = dsi_mgr_get_dsi(DSI_1);
struct mipi_dsi_host *host = msm_dsi->host;
struct drm_panel *panel = msm_dsi->panel;
+ struct msm_dsi_pll *src_pll;
bool is_dual_dsi = IS_DUAL_DSI();
int ret;
@@ -539,6 +540,10 @@ static void dsi_mgr_bridge_post_disable(struct drm_bridge *bridge)
id, ret);
}
+ /* Save PLL status if it is a clock source */
+ src_pll = msm_dsi_phy_get_pll(msm_dsi->phy);
+ msm_dsi_pll_save_state(src_pll);
+
ret = msm_dsi_host_power_off(host);
if (ret)
pr_err("%s: host %d power off failed,%d\n", __func__, id, ret);
diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
index b0cfa67..f509ebd 100644
--- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
+++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
@@ -724,10 +724,6 @@ void msm_dsi_phy_disable(struct msm_dsi_phy *phy)
if (!phy || !phy->cfg->ops.disable)
return;
- /* Save PLL status if it is a clock source */
- if (phy->usecase != MSM_DSI_PHY_SLAVE)
- msm_dsi_pll_save_state(phy->pll);
-
phy->cfg->ops.disable(phy);
dsi_phy_regulator_disable(phy);
--
2.7.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Freedreno] [v1] drm/msm/dsi: save pll state before dsi host is powered off
2020-02-06 8:51 [v1] drm/msm/dsi: save pll state before dsi host is powered off Harigovindan P
@ 2020-02-06 14:51 ` Jeffrey Hugo
0 siblings, 0 replies; 3+ messages in thread
From: Jeffrey Hugo @ 2020-02-06 14:51 UTC (permalink / raw)
To: Harigovindan P
Cc: open list:DRM PANEL DRIVERS, MSM, freedreno, DTML, lkml,
Rob Clark, nganji, Sean Paul, kalyan_t, Kristian H. Kristensen
On Thu, Feb 6, 2020 at 1:52 AM Harigovindan P <harigovi@codeaurora.org> wrote:
>
> Save pll state before dsi host is powered off. Without this change
> some register values gets resetted.
The phy driver already does this. Why is the current implementation
insufficient?
>
> Signed-off-by: Harigovindan P <harigovi@codeaurora.org>
> ---
>
> Changes in v1:
> - Saving pll state before dsi host is powered off.
> - Removed calling of save state in post_disable since everything
> would be resetted and it would save only resetted values.
Removed from post_disable? Thats not what I see in the change since
you are adding code to dsi_mgr_bridge_post_disable()
^ permalink raw reply [flat|nested] 3+ messages in thread
* [v1] drm/msm/dsi: save pll state before dsi host is powered off
@ 2020-02-06 8:56 Harigovindan P
0 siblings, 0 replies; 3+ messages in thread
From: Harigovindan P @ 2020-02-06 8:56 UTC (permalink / raw)
To: dri-devel, linux-arm-msm, freedreno, devicetree
Cc: Harigovindan P, linux-kernel, robdclark, seanpaul, hoegsberg,
kalyan_t, nganji
Save pll state before dsi host is powered off. Without this change
some register values gets resetted.
Signed-off-by: Harigovindan P <harigovi@codeaurora.org>
---
Changes in v1:
- Saving pll state before dsi host is powered off.
- Removed calling of save state in msm_dsi_phy_disable since everything
would be resetted and it would save only resetted values.
drivers/gpu/drm/msm/dsi/dsi_manager.c | 5 +++++
drivers/gpu/drm/msm/dsi/phy/dsi_phy.c | 4 ----
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c
index 104115d..a987efe 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_manager.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c
@@ -506,6 +506,7 @@ static void dsi_mgr_bridge_post_disable(struct drm_bridge *bridge)
struct msm_dsi *msm_dsi1 = dsi_mgr_get_dsi(DSI_1);
struct mipi_dsi_host *host = msm_dsi->host;
struct drm_panel *panel = msm_dsi->panel;
+ struct msm_dsi_pll *src_pll;
bool is_dual_dsi = IS_DUAL_DSI();
int ret;
@@ -539,6 +540,10 @@ static void dsi_mgr_bridge_post_disable(struct drm_bridge *bridge)
id, ret);
}
+ /* Save PLL status if it is a clock source */
+ src_pll = msm_dsi_phy_get_pll(msm_dsi->phy);
+ msm_dsi_pll_save_state(src_pll);
+
ret = msm_dsi_host_power_off(host);
if (ret)
pr_err("%s: host %d power off failed,%d\n", __func__, id, ret);
diff --git a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
index b0cfa67..f509ebd 100644
--- a/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
+++ b/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c
@@ -724,10 +724,6 @@ void msm_dsi_phy_disable(struct msm_dsi_phy *phy)
if (!phy || !phy->cfg->ops.disable)
return;
- /* Save PLL status if it is a clock source */
- if (phy->usecase != MSM_DSI_PHY_SLAVE)
- msm_dsi_pll_save_state(phy->pll);
-
phy->cfg->ops.disable(phy);
dsi_phy_regulator_disable(phy);
--
2.7.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-02-06 14:51 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-06 8:51 [v1] drm/msm/dsi: save pll state before dsi host is powered off Harigovindan P
2020-02-06 14:51 ` [Freedreno] " Jeffrey Hugo
2020-02-06 8:56 Harigovindan P
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).