Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 40e5f937 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Tomi Valkeinen
Browse files

drm/omap: venc: List both PAL and NTSC modes



The TV encoder supports both PAL and NTSC modes, but when queried for
the list of modes it supports, only the currently selected mode is
reported. Fix it and report the two modes unconditionally.

Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
Tested-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent 46b3847d
Loading
Loading
Loading
Loading
+19 −6
Original line number Diff line number Diff line
@@ -551,14 +551,27 @@ static void venc_display_disable(struct omap_dss_device *dssdev)
static int venc_get_modes(struct omap_dss_device *dssdev,
			  struct drm_connector *connector)
{
	struct venc_device *venc = dssdev_to_venc(dssdev);
	int r;
	static const struct videomode *modes[] = {
		&omap_dss_pal_vm,
		&omap_dss_ntsc_vm,
	};
	unsigned int i;

	mutex_lock(&venc->venc_lock);
	r = omapdss_display_get_modes(connector, &venc->vm);
	mutex_unlock(&venc->venc_lock);
	for (i = 0; i < ARRAY_SIZE(modes); ++i) {
		struct drm_display_mode *mode;

	return r;
		mode = drm_mode_create(connector->dev);
		if (!mode)
			return i;

		drm_display_mode_from_videomode(modes[i], mode);

		mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
		drm_mode_set_name(mode);
		drm_mode_probed_add(connector, mode);
	}

	return ARRAY_SIZE(modes);
}

static void venc_set_timings(struct omap_dss_device *dssdev,