Hi Maxime, On Tue, Aug 16, 2022 at 3:20 PM Maxime Ripard <maxime@xxxxxxxxxx> wrote: > On Fri, Aug 12, 2022 at 03:25:18PM +0200, Geert Uytterhoeven wrote: > > > --- a/drivers/gpu/drm/drm_connector.c > > > +++ b/drivers/gpu/drm/drm_connector.c > > > @@ -1649,11 +1650,40 @@ EXPORT_SYMBOL(drm_mode_create_tv_margin_properties); > > > * 0 on success or a negative error code on failure. > > > */ > > > int drm_mode_create_tv_properties(struct drm_device *dev, > > > + unsigned int supported_tv_norms, > > > unsigned int num_modes, > > > const char * const modes[]) > > > { > > > + static const struct drm_prop_enum_list tv_norm_values[] = { > > > + { __builtin_ffs(DRM_MODE_TV_NORM_NTSC_443) - 1, "NTSC-443" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_NTSC_J) - 1, "NTSC-J" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_NTSC_M) - 1, "NTSC-M" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_PAL_60) - 1, "PAL-60" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_PAL_B) - 1, "PAL-B" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_PAL_D) - 1, "PAL-D" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_PAL_G) - 1, "PAL-G" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_PAL_H) - 1, "PAL-H" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_PAL_I) - 1, "PAL-I" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_PAL_M) - 1, "PAL-M" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_PAL_N) - 1, "PAL-N" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_PAL_NC) - 1, "PAL-Nc" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_SECAM_60) - 1, "SECAM-60" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_SECAM_B) - 1, "SECAM-B" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_SECAM_D) - 1, "SECAM-D" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_SECAM_G) - 1, "SECAM-G" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_SECAM_K) - 1, "SECAM-K" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_SECAM_K1) - 1, "SECAM-K1" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_SECAM_L) - 1, "SECAM-L" }, > > > > The above are analog standards, with a variable horizontal resolution. > > > > > + { __builtin_ffs(DRM_MODE_TV_NORM_HD480I) - 1, "hd480i" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_HD480P) - 1, "hd480p" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_HD576I) - 1, "hd576i" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_HD576P) - 1, "hd576p" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_HD720P) - 1, "hd720p" }, > > > + { __builtin_ffs(DRM_MODE_TV_NORM_HD1080I) - 1, "hd1080i" }, > > > > The above are digital standards, with a fixed resolution. > > Are they? > > It's not clear to me from looking at nouveau, but I was under the > impression that they were modes for a component output, so CEA 770.3. I > don't have the spec though, so I can't check. Oh right, I forgot about analog HD over component, where you can use other pixel clocks than in the digital standard. > > You seem to have missed "hd1080p"? > > Nobody is using it. If we ever have a driver that uses it I think we can > add it. The PS3 supports 1080p over component https://manuals.playstation.net/document/en/ps3/current/settings/videooutput.html > > In addition, "hd720p", "hd080i", and "hd1080p" are available in both 50 > > and 60 (actually 59.94) Hz, while "hd1080p" can also use 24 or 25 Hz. > > It looks like nouveau only exposes modes for 480p at 59.94Hz, 576p at > 50Hz, 720p at 60Hz, 1080i at 30Hz. PS3 supports both 50 and 60 Hz (same link above). > > Either you have to add them here (e.g. "hd720p50" and "hd720p60"), or > > handle them through "@<refresh>". The latter would impact "[PATCH v1 > > 09/35] drm/modes: Move named modes parsing to a separate function", as > > currently a named mode and a refresh rate can't be specified both. > > I think the former would make more sense. It simplifies a bit the > parser, and we're going to use a named mode anyway. > > > As "[PATCH v1 34/35] drm/modes: Introduce the tv_mode property as a > > command-line option" uses a separate "tv_mode" option, and not the main > > mode name, I think you want to add them here. > > It's a separate story I think, we could have a named mode hd720p50, > which would be equivalent to 1280x720,tv_mode=hd720p So where's the field rate in "1280x720,tv_mode=hd720p"? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds