drm/rockchip: vop2: add support soft te for mipi cmd mode

some product will use gpio to instead of TE, so we add soft TE for all vp.

Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: Idb2d8b6a63c17308519761ae986f853b2baf0bc4
This commit is contained in:
Sandy Huang
2022-06-30 14:53:45 +08:00
parent 7a37d65939
commit c07f31cc8c
2 changed files with 7 additions and 6 deletions

View File

@@ -181,6 +181,11 @@ struct rockchip_crtc_state {
* (3) edp psr mode
*/
bool hold_mode;
/**
* when enable soft_te, use gpio irq to triggle new fs,
* otherwise use hardware te
*/
bool soft_te;
struct drm_tv_connector_state *tv_state;
int left_margin;

View File

@@ -6599,7 +6599,7 @@ static void vop2_crtc_atomic_enable(struct drm_crtc *crtc, struct drm_crtc_state
VOP_CTRL_SET(vop2, mipi_pin_pol, val);
VOP_CTRL_SET(vop2, mipi_dclk_pol, dclk_inv);
if (vcstate->hold_mode) {
VOP_MODULE_SET(vop2, vp, edpi_te_en, 1);
VOP_MODULE_SET(vop2, vp, edpi_te_en, !vcstate->soft_te);
VOP_MODULE_SET(vop2, vp, edpi_wms_hold_en, 1);
}
}
@@ -6621,11 +6621,7 @@ static void vop2_crtc_atomic_enable(struct drm_crtc *crtc, struct drm_crtc_state
VOP_CTRL_SET(vop2, mipi_pin_pol, val);
VOP_CTRL_SET(vop2, mipi_dclk_pol, dclk_inv);
if (vcstate->hold_mode) {
/* RK3588 VP1->DSC1->DSI1 only can support soft TE mode */
if (vop2->version == VOP_VERSION_RK3588 && vp->id == 1)
VOP_MODULE_SET(vop2, vp, edpi_te_en, 0);
else
VOP_MODULE_SET(vop2, vp, edpi_te_en, 1);
VOP_MODULE_SET(vop2, vp, edpi_te_en, !vcstate->soft_te);
VOP_MODULE_SET(vop2, vp, edpi_wms_hold_en, 1);
}
}