mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-22 01:50:16 -05:00
drm/ast: astdp: Validate display modes
Validate each display mode against the astdp transmitter chips. Filters out modes that the chip does not support. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20250204133209.403327-5-tzimmermann@suse.de
This commit is contained in:
@@ -300,6 +300,19 @@ static const struct drm_encoder_funcs ast_astdp_encoder_funcs = {
|
||||
.destroy = drm_encoder_cleanup,
|
||||
};
|
||||
|
||||
static enum drm_mode_status
|
||||
ast_astdp_encoder_helper_mode_valid(struct drm_encoder *encoder,
|
||||
const struct drm_display_mode *mode)
|
||||
{
|
||||
int res;
|
||||
|
||||
res = ast_astdp_get_mode_index(mode->hdisplay, mode->vdisplay);
|
||||
if (res < 0)
|
||||
return MODE_NOMODE;
|
||||
|
||||
return MODE_OK;
|
||||
}
|
||||
|
||||
static void ast_astdp_encoder_helper_atomic_mode_set(struct drm_encoder *encoder,
|
||||
struct drm_crtc_state *crtc_state,
|
||||
struct drm_connector_state *conn_state)
|
||||
@@ -389,6 +402,7 @@ static int ast_astdp_encoder_helper_atomic_check(struct drm_encoder *encoder,
|
||||
}
|
||||
|
||||
static const struct drm_encoder_helper_funcs ast_astdp_encoder_helper_funcs = {
|
||||
.mode_valid = ast_astdp_encoder_helper_mode_valid,
|
||||
.atomic_mode_set = ast_astdp_encoder_helper_atomic_mode_set,
|
||||
.atomic_enable = ast_astdp_encoder_helper_atomic_enable,
|
||||
.atomic_disable = ast_astdp_encoder_helper_atomic_disable,
|
||||
|
||||
Reference in New Issue
Block a user