drm/amd/display: Add dc_dmub_srv helpers for in/out DMCUB commands
[Why] We added these in DMCUB for runtime feature detection but we didn't have helpers to call these with DC error handling/logging. [How] Add helpers. Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Reviewed-by: Eric Yang <eric.yang2@amd.com> Acked-by: Qingqing Zhuo <Qingqing.Zhuo@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
		
							parent
							
								
									efe213e5a5
								
							
						
					
					
						commit
						ecdfc5c92f
					
				| @ -27,6 +27,9 @@ | ||||
| #include "dc_dmub_srv.h" | ||||
| #include "../dmub/dmub_srv.h" | ||||
| 
 | ||||
| #define CTX dc_dmub_srv->ctx | ||||
| #define DC_LOGGER CTX->logger | ||||
| 
 | ||||
| static void dc_dmub_srv_construct(struct dc_dmub_srv *dc_srv, struct dc *dc, | ||||
| 				  struct dmub_srv *dmub) | ||||
| { | ||||
| @ -106,6 +109,25 @@ void dc_dmub_srv_wait_idle(struct dc_dmub_srv *dc_dmub_srv) | ||||
| 		DC_ERROR("Error waiting for DMUB idle: status=%d\n", status); | ||||
| } | ||||
| 
 | ||||
| bool dc_dmub_srv_cmd_with_reply_data(struct dc_dmub_srv *dc_dmub_srv, union dmub_rb_cmd *cmd) | ||||
| { | ||||
| 	struct dmub_srv *dmub; | ||||
| 	enum dmub_status status; | ||||
| 
 | ||||
| 	if (!dc_dmub_srv || !dc_dmub_srv->dmub) | ||||
| 		return false; | ||||
| 
 | ||||
| 	dmub = dc_dmub_srv->dmub; | ||||
| 
 | ||||
| 	status = dmub_srv_cmd_with_reply_data(dmub, cmd); | ||||
| 	if (status != DMUB_STATUS_OK) { | ||||
| 		DC_LOG_DEBUG("No reply for DMUB command: status=%d\n", status); | ||||
| 		return false; | ||||
| 	} | ||||
| 
 | ||||
| 	return true; | ||||
| } | ||||
| 
 | ||||
| void dc_dmub_srv_wait_phy_init(struct dc_dmub_srv *dc_dmub_srv) | ||||
| { | ||||
| 	struct dmub_srv *dmub = dc_dmub_srv->dmub; | ||||
|  | ||||
| @ -56,6 +56,8 @@ void dc_dmub_srv_wait_idle(struct dc_dmub_srv *dc_dmub_srv); | ||||
| 
 | ||||
| void dc_dmub_srv_wait_phy_init(struct dc_dmub_srv *dc_dmub_srv); | ||||
| 
 | ||||
| bool dc_dmub_srv_cmd_with_reply_data(struct dc_dmub_srv *dc_dmub_srv, union dmub_rb_cmd *cmd); | ||||
| 
 | ||||
| bool dc_dmub_srv_notify_stream_mask(struct dc_dmub_srv *dc_dmub_srv, | ||||
| 				    unsigned int stream_mask); | ||||
| #endif /* _DMUB_DC_SRV_H_ */ | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user