Unverified Commit 0e308efe authored by Maxime Ripard's avatar Maxime Ripard
Browse files

drm/connector: Add pixel clock to cmdline mode



We'll need to get the pixel clock to generate proper display modes for
all the current named modes. Let's add it to struct drm_cmdline_mode and
fill it when parsing the named mode.

Reviewed-by: default avatarNoralf Trønnes <noralf@tronnes.org>
Tested-by: default avatarMateusz Kwiatkowski <kfyatek+publicgit@gmail.com>
Link: https://lore.kernel.org/r/20220728-rpi-analog-tv-properties-v9-12-24b168e5bcd5@cerno.tech


Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
parent 00dcc4a2
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -1752,22 +1752,24 @@ static int drm_mode_parse_cmdline_options(const char *str,

struct drm_named_mode {
	const char *name;
	unsigned int pixel_clock_khz;
	unsigned int xres;
	unsigned int yres;
	unsigned int flags;
};

#define NAMED_MODE(_name, _x, _y, _flags)		\
#define NAMED_MODE(_name, _pclk, _x, _y, _flags)	\
	{						\
		.name = _name,				\
		.pixel_clock_khz = _pclk,		\
		.xres = _x,				\
		.yres = _y,				\
		.flags = _flags,			\
	}

static const struct drm_named_mode drm_named_modes[] = {
	NAMED_MODE("NTSC", 720, 480, DRM_MODE_FLAG_INTERLACE),
	NAMED_MODE("PAL", 720, 576, DRM_MODE_FLAG_INTERLACE),
	NAMED_MODE("NTSC", 13500, 720, 480, DRM_MODE_FLAG_INTERLACE),
	NAMED_MODE("PAL", 13500, 720, 576, DRM_MODE_FLAG_INTERLACE),
};

static int drm_mode_parse_cmdline_named_mode(const char *name,
@@ -1808,6 +1810,7 @@ static int drm_mode_parse_cmdline_named_mode(const char *name,
			continue;

		strcpy(cmdline_mode->name, mode->name);
		cmdline_mode->pixel_clock = mode->pixel_clock_khz;
		cmdline_mode->xres = mode->xres;
		cmdline_mode->yres = mode->yres;
		cmdline_mode->interlace = !!(mode->flags & DRM_MODE_FLAG_INTERLACE);
+7 −0
Original line number Diff line number Diff line
@@ -1212,6 +1212,13 @@ struct drm_cmdline_mode {
	 */
	bool bpp_specified;

	/**
	 * @pixel_clock:
	 *
	 * Pixel Clock in kHz. Optional.
	 */
	unsigned int pixel_clock;

	/**
	 * @xres:
	 *