Message ID | 20230928111630.1217419-14-dmitry.baryshkov@linaro.org |
---|---|
State | New |
Headers | show |
Series | drm/msm/hdmi & phy: use generic PHY framework | expand |
On 9/28/23 13:16, Dmitry Baryshkov wrote: > In preparation to converting MSM HDMI driver to use PHY framework, which > requires phy_power_on() calls to be paired with phy_power_off(), add a > conditional call to msm_hdmi_phy_powerdown() before the call to > msm_hdmi_phy_powerup(). > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- Is this a conversion artifact that will be undone, or does the framework actually expect that refcounting may not be enough and phy resetting will have to take place? Konrad
On Thu, 26 Oct 2023 at 22:54, Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > > > > On 9/28/23 13:16, Dmitry Baryshkov wrote: > > In preparation to converting MSM HDMI driver to use PHY framework, which > > requires phy_power_on() calls to be paired with phy_power_off(), add a > > conditional call to msm_hdmi_phy_powerdown() before the call to > > msm_hdmi_phy_powerup(). > > > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > --- > Is this a conversion artifact that will be undone, or does the > framework actually expect that refcounting may not be enough and > phy resetting will have to take place? I don't remember why I did it this way. Let me check, most likely this patch can be completely dropped as the enable / disable operations are paired by the DRM core.
diff --git a/drivers/gpu/drm/msm/hdmi/hdmi.h b/drivers/gpu/drm/msm/hdmi/hdmi.h index 2d405da63bd0..46ae7ef9bc98 100644 --- a/drivers/gpu/drm/msm/hdmi/hdmi.h +++ b/drivers/gpu/drm/msm/hdmi/hdmi.h @@ -42,6 +42,7 @@ struct hdmi { /* video state: */ bool power_on; + bool phy_power_on; unsigned long int pixclock; void __iomem *mmio; diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c b/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c index bb10b35194ff..1bbd76e595af 100644 --- a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c +++ b/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c @@ -148,7 +148,11 @@ static void msm_hdmi_bridge_atomic_pre_enable(struct drm_bridge *bridge, msm_hdmi_audio_update(hdmi); } + if (hdmi->phy_power_on) + msm_hdmi_phy_powerdown(phy); + msm_hdmi_phy_powerup(phy, hdmi->pixclock); + hdmi->phy_power_on = true; msm_hdmi_set_mode(hdmi, true); @@ -170,6 +174,7 @@ static void msm_hdmi_bridge_atomic_post_disable(struct drm_bridge *bridge, msm_hdmi_set_mode(hdmi, false); msm_hdmi_phy_powerdown(phy); + hdmi->phy_power_on = false; if (hdmi->power_on) { power_off(bridge);
In preparation to converting MSM HDMI driver to use PHY framework, which requires phy_power_on() calls to be paired with phy_power_off(), add a conditional call to msm_hdmi_phy_powerdown() before the call to msm_hdmi_phy_powerup(). Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- drivers/gpu/drm/msm/hdmi/hdmi.h | 1 + drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 5 +++++ 2 files changed, 6 insertions(+)