summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJon Mayo <jmayo@nvidia.com>2011-04-29 16:57:07 -0700
committerVarun Colbert <vcolbert@nvidia.com>2011-05-05 00:19:25 -0700
commit606f0d8adcd3efc5773d38ba3d32a93c2f3be872 (patch)
treea77903410522dc998c6a0bc1422a60ba94d7cdbe /drivers
parente08f18eba00bd5d86cb7770f709417a1bd0ca14f (diff)
video: tegra: dc: stop hdcp when keys are missing
verify Aksv, if it is invalid then quickly disable further hdcp checks. Bug 792855 Change-Id: I4a9d689d571d2f916e11f92f5b897f287f724068 Reviewed-on: http://git-master/r/29899 Reviewed-by: Jonathan Mayo <jmayo@nvidia.com> Tested-by: Jonathan Mayo <jmayo@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/tegra/dc/nvhdcp.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/video/tegra/dc/nvhdcp.c b/drivers/video/tegra/dc/nvhdcp.c
index 69b8161119de..baeeaa783aa4 100644
--- a/drivers/video/tegra/dc/nvhdcp.c
+++ b/drivers/video/tegra/dc/nvhdcp.c
@@ -895,7 +895,7 @@ static void nvhdcp_downstream_worker(struct work_struct *work)
nvhdcp_vdbg("An is 0x%016llx\n", nvhdcp->a_n);
if (verify_ksv(nvhdcp->a_ksv)) {
nvhdcp_err("Aksv verify failure! (0x%016llx)\n", nvhdcp->a_ksv);
- goto failure;
+ goto disable;
}
/* write Ainfo to receiver - set 1.1 only if b_caps supports it */
@@ -1020,6 +1020,11 @@ lost_hdmi:
err:
mutex_unlock(&nvhdcp->lock);
return;
+disable:
+ nvhdcp->state = STATE_OFF;
+ nvhdcp_set_plugged(nvhdcp, false);
+ mutex_unlock(&nvhdcp->lock);
+ return;
}
static int tegra_nvhdcp_on(struct tegra_nvhdcp *nvhdcp)