History

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.

Maxime Ripard committed 4 years ago

Commit 0e308ef1 parent 00dcc4a2 files · +13 −3Browse files

Unified · Split

2 files
  1. drivers/gpu/drm/drm_modes.c +6 −3
  2. include/drm/drm_connector.h +7 −0
drivers/gpu/drm/drm_modes.c+6−3
@@ -1752,22 +1752,24 @@ static int drm_mode_parse_cmdline_options(const char *str, · 1751 unmodified lines
1752 1752
1753struct drm_named_mode {1753struct drm_named_mode {
1754 const char *name;1754 const char *name;
1755 unsigned int pixel_clock_khz;
1755 unsigned int xres;1756 unsigned int xres;
1756 unsigned int yres;1757 unsigned int yres;
1757 unsigned int flags;1758 unsigned int flags;
1758};1759};
1759 1760
1760#define NAMED_MODE(_name, _x, _y, _flags) \1761#define NAMED_MODE(_name, _pclk, _x, _y, _flags) \
1761 { \1762 { \
1762 .name = _name, \1763 .name = _name, \
1764 .pixel_clock_khz = _pclk, \
1763 .xres = _x, \1765 .xres = _x, \
1764 .yres = _y, \1766 .yres = _y, \
1765 .flags = _flags, \1767 .flags = _flags, \
1766 }1768 }
1767 1769
1768static const struct drm_named_mode drm_named_modes[] = {1770static const struct drm_named_mode drm_named_modes[] = {
1769 NAMED_MODE("NTSC", 720, 480, DRM_MODE_FLAG_INTERLACE),1771 NAMED_MODE("NTSC", 13500, 720, 480, DRM_MODE_FLAG_INTERLACE),
1770 NAMED_MODE("PAL", 720, 576, DRM_MODE_FLAG_INTERLACE),1772 NAMED_MODE("PAL", 13500, 720, 576, DRM_MODE_FLAG_INTERLACE),
1771};1773};
1772 1774
1773static int drm_mode_parse_cmdline_named_mode(const char *name,1775static 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, · 34 unmodified lines
1808 continue;1810 continue;
1809 1811
1810 strcpy(cmdline_mode->name, mode->name);1812 strcpy(cmdline_mode->name, mode->name);
1813 cmdline_mode->pixel_clock = mode->pixel_clock_khz;
1811 cmdline_mode->xres = mode->xres;1814 cmdline_mode->xres = mode->xres;
1812 cmdline_mode->yres = mode->yres;1815 cmdline_mode->yres = mode->yres;
1813 cmdline_mode->interlace = !!(mode->flags & DRM_MODE_FLAG_INTERLACE);1816 cmdline_mode->interlace = !!(mode->flags & DRM_MODE_FLAG_INTERLACE);
include/drm/drm_connector.h+7−0
@@ -1212,6 +1212,13 @@ struct drm_cmdline_mode { · 1211 unmodified lines
1212 */1212 */
1213 bool bpp_specified;1213 bool bpp_specified;
1214 1214
1215 /**
1216 * @pixel_clock:
1217 *
1218 * Pixel Clock in kHz. Optional.
1219 */
1220 unsigned int pixel_clock;
1221
1215 /**1222 /**
1216 * @xres:1223 * @xres:
1217 *1224 *