]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/amd/display: Only wait for DMUB phy init on dcn21
authorNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Thu, 7 Nov 2019 20:26:14 +0000 (15:26 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 5 Dec 2019 21:27:48 +0000 (16:27 -0500)
[Why]
The wait for PHY init won't finish if the firmware doesn't support it.

[How]
Only hook this functionality up on DCN21 and move it out of DCN20.

For ASIC without support then this should return OK so we don't hang
while waiting in DC.

Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Leo Li <sunpeng.li@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn20.c
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn20.h
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn21.c
drivers/gpu/drm/amd/display/dmub/src/dmub_dcn21.h
drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c

index e2b2cf2e01fdfe32ce490aa68883bfd07f1080f8..6b7d54572aa32176b6d66b68932c41febbc37902 100644 (file)
@@ -135,8 +135,3 @@ bool dmub_dcn20_is_supported(struct dmub_srv *dmub)
 
        return supported;
 }
-
-bool dmub_dcn20_is_phy_init(struct dmub_srv *dmub)
-{
-       return REG_READ(DMCUB_SCRATCH10) == 0;
-}
index e1ba748ca594d909aefaae846b941dd4e915d6f6..ca7db03b94f72d96de28bf78635215285c33b400 100644 (file)
@@ -59,6 +59,4 @@ bool dmub_dcn20_is_hw_init(struct dmub_srv *dmub);
 
 bool dmub_dcn20_is_supported(struct dmub_srv *dmub);
 
-bool dmub_dcn20_is_phy_init(struct dmub_srv *dmub);
-
 #endif /* _DMUB_DCN20_H_ */
index d40a808112e7125b58de83130effab346b176c8f..b9dc2dd645eb3e7454ea16210211abbad12e784c 100644 (file)
@@ -124,3 +124,8 @@ bool dmub_dcn21_is_auto_load_done(struct dmub_srv *dmub)
 {
        return (REG_READ(DMCUB_SCRATCH0) == 3);
 }
+
+bool dmub_dcn21_is_phy_init(struct dmub_srv *dmub)
+{
+       return REG_READ(DMCUB_SCRATCH10) == 0;
+}
index f57969d8d56fa6f2e45e9d638305516626f517ae..9e5f195e288f42cb56b8ccee9675422174513538 100644 (file)
@@ -42,4 +42,6 @@ void dmub_dcn21_setup_windows(struct dmub_srv *dmub,
 
 bool dmub_dcn21_is_auto_load_done(struct dmub_srv *dmub);
 
+bool dmub_dcn21_is_phy_init(struct dmub_srv *dmub);
+
 #endif /* _DMUB_DCN21_H_ */
index 60c574a39c6af567fd8abc34caf06dc9ad3d3ab1..3ec26f6af2e14d6e1392e945ff401b2d1ee2c5c3 100644 (file)
@@ -76,13 +76,13 @@ static bool dmub_srv_hw_setup(struct dmub_srv *dmub, enum dmub_asic asic)
                funcs->get_inbox1_rptr = dmub_dcn20_get_inbox1_rptr;
                funcs->set_inbox1_wptr = dmub_dcn20_set_inbox1_wptr;
                funcs->is_supported = dmub_dcn20_is_supported;
-               funcs->is_phy_init = dmub_dcn20_is_phy_init;
                funcs->is_hw_init = dmub_dcn20_is_hw_init;
 
                if (asic == DMUB_ASIC_DCN21) {
                        funcs->backdoor_load = dmub_dcn21_backdoor_load;
                        funcs->setup_windows = dmub_dcn21_setup_windows;
                        funcs->is_auto_load_done = dmub_dcn21_is_auto_load_done;
+                       funcs->is_phy_init = dmub_dcn21_is_phy_init;
                }
                break;