diff options
author | jilai wang <jilaiw@codeaurora.org> | 2015-04-03 00:49:01 +0300 |
---|---|---|
committer | Rob Clark <robdclark@gmail.com> | 2015-08-16 01:27:10 +0300 |
commit | c6a57a50ad562a2e6fc6ac3218b710caea73a58b (patch) | |
tree | c630cd3e4c5328655ebbd8ed1ce59b36ce753c30 /drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | |
parent | 2d3584eb871da2a6fa72e3d50781f33b0312589a (diff) | |
download | linux-c6a57a50ad562a2e6fc6ac3218b710caea73a58b.tar.xz |
drm/msm/hdmi: add hdmi hdcp support (V3)
Add HDMI HDCP support including HDCP PartI/II/III authentication.
V1: Initial Change
V2: Address Bjorn&Rob's comments
Refactor the authentication process to use single work instead
of multiple work for different authentication stages.
V3: Update to align with qcom SCM api.
Signed-off-by: Jilai Wang <jilaiw@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/msm/hdmi/hdmi_bridge.c')
-rw-r--r-- | drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c b/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c index a7a1d8267cf0..1dd093e3451c 100644 --- a/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c +++ b/drivers/gpu/drm/msm/hdmi/hdmi_bridge.c @@ -102,6 +102,9 @@ static void hdmi_bridge_pre_enable(struct drm_bridge *bridge) phy->funcs->powerup(phy, hdmi->pixclock); hdmi_set_mode(hdmi, true); + + if (hdmi->hdcp_ctrl) + hdmi_hdcp_on(hdmi->hdcp_ctrl); } static void hdmi_bridge_enable(struct drm_bridge *bridge) @@ -118,6 +121,9 @@ static void hdmi_bridge_post_disable(struct drm_bridge *bridge) struct hdmi *hdmi = hdmi_bridge->hdmi; struct hdmi_phy *phy = hdmi->phy; + if (hdmi->hdcp_ctrl) + hdmi_hdcp_off(hdmi->hdcp_ctrl); + DBG("power down"); hdmi_set_mode(hdmi, false); phy->funcs->powerdown(phy); @@ -142,8 +148,6 @@ static void hdmi_bridge_mode_set(struct drm_bridge *bridge, hdmi->pixclock = mode->clock * 1000; - hdmi->hdmi_mode = drm_match_cea_mode(mode) > 1; - hstart = mode->htotal - mode->hsync_start; hend = mode->htotal - mode->hsync_start + mode->hdisplay; |