Commit 0e308efe authored by Maxime Ripard's avatar Maxime Ripard

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.techSigned-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
parent 00dcc4a2
...@@ -1752,22 +1752,24 @@ static int drm_mode_parse_cmdline_options(const char *str, ...@@ -1752,22 +1752,24 @@ static int drm_mode_parse_cmdline_options(const char *str,
struct drm_named_mode { struct drm_named_mode {
const char *name; const char *name;
unsigned int pixel_clock_khz;
unsigned int xres; unsigned int xres;
unsigned int yres; unsigned int yres;
unsigned int flags; unsigned int flags;
}; };
#define NAMED_MODE(_name, _x, _y, _flags) \ #define NAMED_MODE(_name, _pclk, _x, _y, _flags) \
{ \ { \
.name = _name, \ .name = _name, \
.pixel_clock_khz = _pclk, \
.xres = _x, \ .xres = _x, \
.yres = _y, \ .yres = _y, \
.flags = _flags, \ .flags = _flags, \
} }
static const struct drm_named_mode drm_named_modes[] = { static const struct drm_named_mode drm_named_modes[] = {
NAMED_MODE("NTSC", 720, 480, DRM_MODE_FLAG_INTERLACE), NAMED_MODE("NTSC", 13500, 720, 480, DRM_MODE_FLAG_INTERLACE),
NAMED_MODE("PAL", 720, 576, 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, 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, ...@@ -1808,6 +1810,7 @@ static int drm_mode_parse_cmdline_named_mode(const char *name,
continue; continue;
strcpy(cmdline_mode->name, mode->name); strcpy(cmdline_mode->name, mode->name);
cmdline_mode->pixel_clock = mode->pixel_clock_khz;
cmdline_mode->xres = mode->xres; cmdline_mode->xres = mode->xres;
cmdline_mode->yres = mode->yres; cmdline_mode->yres = mode->yres;
cmdline_mode->interlace = !!(mode->flags & DRM_MODE_FLAG_INTERLACE); cmdline_mode->interlace = !!(mode->flags & DRM_MODE_FLAG_INTERLACE);
......
...@@ -1212,6 +1212,13 @@ struct drm_cmdline_mode { ...@@ -1212,6 +1212,13 @@ struct drm_cmdline_mode {
*/ */
bool bpp_specified; bool bpp_specified;
/**
* @pixel_clock:
*
* Pixel Clock in kHz. Optional.
*/
unsigned int pixel_clock;
/** /**
* @xres: * @xres:
* *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment