diff options
author | Jon Mayo <jmayo@nvidia.com> | 2011-04-29 16:57:07 -0700 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-05-05 00:19:25 -0700 |
commit | 606f0d8adcd3efc5773d38ba3d32a93c2f3be872 (patch) | |
tree | a77903410522dc998c6a0bc1422a60ba94d7cdbe /drivers | |
parent | e08f18eba00bd5d86cb7770f709417a1bd0ca14f (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.c | 7 |
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) |