|
@@ -1683,16 +1683,44 @@ static void hdmiphy_conf_reset(struct hdmi_context *hdata)
|
|
|
|
|
|
static void hdmiphy_poweron(struct hdmi_context *hdata)
|
|
|
{
|
|
|
- if (hdata->type == HDMI_TYPE14)
|
|
|
- hdmi_reg_writemask(hdata, HDMI_PHY_CON_0, 0,
|
|
|
- HDMI_PHY_POWER_OFF_EN);
|
|
|
+ if (hdata->type != HDMI_TYPE14)
|
|
|
+ return;
|
|
|
+
|
|
|
+ DRM_DEBUG_KMS("\n");
|
|
|
+
|
|
|
+ /* For PHY Mode Setting */
|
|
|
+ hdmiphy_reg_writeb(hdata, HDMIPHY_MODE_SET_DONE,
|
|
|
+ HDMI_PHY_ENABLE_MODE_SET);
|
|
|
+ /* Phy Power On */
|
|
|
+ hdmiphy_reg_writeb(hdata, HDMIPHY_POWER,
|
|
|
+ HDMI_PHY_POWER_ON);
|
|
|
+ /* For PHY Mode Setting */
|
|
|
+ hdmiphy_reg_writeb(hdata, HDMIPHY_MODE_SET_DONE,
|
|
|
+ HDMI_PHY_DISABLE_MODE_SET);
|
|
|
+ /* PHY SW Reset */
|
|
|
+ hdmiphy_conf_reset(hdata);
|
|
|
}
|
|
|
|
|
|
static void hdmiphy_poweroff(struct hdmi_context *hdata)
|
|
|
{
|
|
|
- if (hdata->type == HDMI_TYPE14)
|
|
|
- hdmi_reg_writemask(hdata, HDMI_PHY_CON_0, ~0,
|
|
|
- HDMI_PHY_POWER_OFF_EN);
|
|
|
+ if (hdata->type != HDMI_TYPE14)
|
|
|
+ return;
|
|
|
+
|
|
|
+ DRM_DEBUG_KMS("\n");
|
|
|
+
|
|
|
+ /* PHY SW Reset */
|
|
|
+ hdmiphy_conf_reset(hdata);
|
|
|
+ /* For PHY Mode Setting */
|
|
|
+ hdmiphy_reg_writeb(hdata, HDMIPHY_MODE_SET_DONE,
|
|
|
+ HDMI_PHY_ENABLE_MODE_SET);
|
|
|
+
|
|
|
+ /* PHY Power Off */
|
|
|
+ hdmiphy_reg_writeb(hdata, HDMIPHY_POWER,
|
|
|
+ HDMI_PHY_POWER_OFF);
|
|
|
+
|
|
|
+ /* For PHY Mode Setting */
|
|
|
+ hdmiphy_reg_writeb(hdata, HDMIPHY_MODE_SET_DONE,
|
|
|
+ HDMI_PHY_DISABLE_MODE_SET);
|
|
|
}
|
|
|
|
|
|
static void hdmiphy_conf_apply(struct hdmi_context *hdata)
|