diff options
| -rw-r--r-- | drivers/video/tegra/dc/nvhdcp.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/video/tegra/dc/nvhdcp.c b/drivers/video/tegra/dc/nvhdcp.c index 215f44538dcc..657f621f0c23 100644 --- a/drivers/video/tegra/dc/nvhdcp.c +++ b/drivers/video/tegra/dc/nvhdcp.c @@ -980,12 +980,12 @@ static void nvhdcp_downstream_worker(struct work_struct *work) nvhdcp_info("link verified!\n"); while (1) { - if (nvhdcp->state != STATE_LINK_VERIFY) - goto failure; - if (!nvhdcp_is_plugged(nvhdcp)) goto lost_hdmi; + if (nvhdcp->state != STATE_LINK_VERIFY) + goto failure; + e = verify_link(nvhdcp, true); if (e) { nvhdcp_err("link verification failed err %d\n", e); @@ -1003,7 +1003,9 @@ failure: nvhdcp_err("nvhdcp failure - too many failures, giving up!\n"); } else { nvhdcp_err("nvhdcp failure - renegotiating in 1.75 seconds\n"); + mutex_unlock(&nvhdcp->lock); msleep(1750); + mutex_lock(&nvhdcp->lock); queue_work(nvhdcp->downstream_wq, &nvhdcp->work); } |
