drm/bridge: analogix_dp: Wait for HPD signal before configuring link
authorzain wang <[email protected]>
Mon, 23 Apr 2018 10:49:41 +0000 (12:49 +0200)
committerAndrzej Hajda <[email protected]>
Tue, 24 Apr 2018 06:34:33 +0000 (08:34 +0200)
According to DP spec v1.3 chap 3.5.1.2 Link Training, Link Policy Maker
must first detect that the HPD signal is asserted high by the Downstream
Device before establishing a link with it.

Cc: Stéphane Marchesin <[email protected]>
Signed-off-by: zain wang <[email protected]>
Signed-off-by: Sean Paul <[email protected]>
Signed-off-by: Thierry Escande <[email protected]>
Signed-off-by: Enric Balletbo i Serra <[email protected]>
Tested-by: Marek Szyprowski <[email protected]>
Reviewed-by: Archit Taneja <[email protected]>
Signed-off-by: Andrzej Hajda <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
drivers/gpu/drm/bridge/analogix/analogix_dp_core.c

index bf805f15627250d89fd0e213ca83d9bdba721c53..3269deec739df669462d3d1351a95abbf08dcde5 100644 (file)
@@ -1169,6 +1169,17 @@ static int analogix_dp_set_bridge(struct analogix_dp_device *dp)
        if (ret)
                goto out_dp_init;
 
+       /*
+        * According to DP spec v1.3 chap 3.5.1.2 Link Training,
+        * We should first make sure the HPD signal is asserted high by device
+        * when we want to establish a link with it.
+        */
+       ret = analogix_dp_detect_hpd(dp);
+       if (ret) {
+               DRM_ERROR("failed to get hpd single ret = %d\n", ret);
+               goto out_dp_init;
+       }
+
        ret = analogix_dp_commit(dp);
        if (ret)
                goto out_dp_init;