m_ENCRYPT_DISBALE | m_PH2UPSHFTENC,
v_ENCRYPT_DISBALE(0) | v_PH2UPSHFTENC(1));
/* Reset HDCP Engine */
- hdmi_msk_reg(hdmi_dev, A_HDCPCFG1,
- m_HDCP_SW_RST, v_HDCP_SW_RST(0));
+ if (hdmi_readl(hdmi_dev, MC_CLKDIS) & m_HDCPCLK_DISABLE)
+ hdmi_msk_reg(hdmi_dev, A_HDCPCFG1,
+ m_HDCP_SW_RST, v_HDCP_SW_RST(0));
hdmi_writel(hdmi_dev, A_APIINTMSK, 0x00);
hdmi_msk_reg(hdmi_dev, A_HDCPCFG0, m_RX_DETECT, v_RX_DETECT(1));
static int hdcp_init(struct hdmi *hdmi)
{
int ret;
+ struct hdmi_dev *hdmi_dev = hdmi->property->priv;
mdev.minor = MISC_DYNAMIC_MINOR;
mdev.name = "hdcp";
pr_err("HDCP: request_firmware_nowait failed: %d\n", ret);
goto error4;
}
-
+ if ((hdmi_readl(hdmi_dev, MC_CLKDIS) & m_HDCPCLK_DISABLE) == 0)
+ hdcp->enable = 1;
hdmi->ops->hdcp_cb = rockchip_hdmiv2_hdcp_start;
return 0;
}
hdmi_msk_reg(hdmi_dev, FC_DBGFORCE,
m_FC_FORCEVIDEO, v_FC_FORCEVIDEO(1));
+ hdmi_writel(hdmi_dev, MC_CLKDIS, m_HDCPCLK_DISABLE);
}
- hdmi_writel(hdmi_dev, MC_CLKDIS, m_HDCPCLK_DISABLE);
if (rockchip_hdmiv2_video_framecomposer(hdmi, vpara) < 0)
return -1;
struct hdmi_dev *hdmi_dev = hdmi->property->priv;
HDMIDBG("%s\n", __func__);
- hdmi_writel(hdmi_dev, MC_CLKDIS, m_HDCPCLK_DISABLE);
+ if (!hdmi->uboot)
+ hdmi_writel(hdmi_dev, MC_CLKDIS, m_HDCPCLK_DISABLE);
return HDMI_ERROR_SUCESS;
}