mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
drm/rockchip: analogix_dp: add mode_valid func support
The edp controller can not support display timings whose front porch or back porch is 0. Signed-off-by: Damon Ding <damon.ding@rock-chips.com> Change-Id: I689f9f23154cffd7199e65767e2a977cd3404ea9
This commit is contained in:
@@ -324,6 +324,23 @@ static void rockchip_dp_bridge_detach(struct analogix_dp_plat_data *plat_data,
|
||||
rockchip_drm_unregister_sub_dev(sdev);
|
||||
}
|
||||
|
||||
static enum drm_mode_status
|
||||
rockchip_dp_drm_encoder_mode_valid(struct drm_encoder *encoder,
|
||||
const struct drm_display_mode *mode)
|
||||
{
|
||||
struct rockchip_dp_device *dp = encoder_to_dp(encoder);
|
||||
struct videomode vm;
|
||||
|
||||
drm_display_mode_to_videomode(mode, &vm);
|
||||
|
||||
if (!vm.hfront_porch || !vm.hback_porch || !vm.vfront_porch || !vm.vback_porch) {
|
||||
DRM_DEV_ERROR(dp->dev, "front porch or back porch can not be 0\n");
|
||||
return MODE_BAD;
|
||||
}
|
||||
|
||||
return MODE_OK;
|
||||
}
|
||||
|
||||
static bool
|
||||
rockchip_dp_drm_encoder_mode_fixup(struct drm_encoder *encoder,
|
||||
const struct drm_display_mode *mode,
|
||||
@@ -494,6 +511,7 @@ rockchip_dp_drm_encoder_atomic_check(struct drm_encoder *encoder,
|
||||
}
|
||||
|
||||
static struct drm_encoder_helper_funcs rockchip_dp_encoder_helper_funcs = {
|
||||
.mode_valid = rockchip_dp_drm_encoder_mode_valid,
|
||||
.mode_fixup = rockchip_dp_drm_encoder_mode_fixup,
|
||||
.mode_set = rockchip_dp_drm_encoder_mode_set,
|
||||
.atomic_enable = rockchip_dp_drm_encoder_enable,
|
||||
|
||||
Reference in New Issue
Block a user