disp: msm: sde: add support for hw fence error handling

Register callback function to hw fence driver and implement the
callback funtion.

As part of fence error handling, address out of ordering of HW
fences, SW override for release fence signal and handle BW voting
in both cmd and video mode.

Change-Id: I22902762b4cc09a5f5a20cf0dd01fc336a0f0cb4
Signed-off-by: GG Hou <quic_renjhou@quicinc.com>
Cette révision appartient à :
GG Hou
2023-03-22 11:26:41 +08:00
révisé par Gerrit - the friendly Code Review server
Parent 97b1afdda8
révision 725c7a0f3d
10 fichiers modifiés avec 236 ajouts et 3 suppressions

Voir le fichier

@@ -315,6 +315,22 @@ void sde_encoder_get_hw_resources(struct drm_encoder *encoder,
*/
void sde_encoder_early_wakeup(struct drm_encoder *drm_enc);
/**
* sde_encoder_handle_hw_fence_error - hw fence error handing in sde encoder
* @ctl_idx: control path index
* @sde_kms: Pointer to sde_kms
* @handle: hash of fence signaled with error
* @error: error signaled for fence from hw fence callback
*/
void sde_encoder_handle_hw_fence_error(int ctl_idx, struct sde_kms *sde_kms, u32 handle, int error);
/**
* sde_encoder_hw_fence_error_handle - fence error handing while hw fence error
* @drm_enc: Pointer to drm encoder structure
* return: 0 on success; error code otherwise
*/
int sde_encoder_hw_fence_error_handle(struct drm_encoder *drm_enc);
/**
* sde_encoder_register_vblank_callback - provide callback to encoder that
* will be called on the next vblank.