Den 15.06.2019 17.40, skrev Noralf Trønnes: > > > Den 14.06.2019 14.13, skrev Maxime Ripard: >> Properly configuring the overscan properties might be needed for the >> initial setup of the framebuffer for display that still have overscan. >> Let's allow for more properties on the kernel command line to setup each >> margin. > > This also needs to be documented in Documentation/fb/modedb.txt > >> >> Reviewed-by: Noralf Trønnes <noralf@xxxxxxxxxxx> >> Signed-off-by: Maxime Ripard <maxime.ripard@xxxxxxxxxxx> >> --- >> drivers/gpu/drm/drm_modes.c | 44 ++++++++++++++++++++++++++++++++++++++- >> include/drm/drm_connector.h | 12 +++++----- >> 2 files changed, 50 insertions(+), 6 deletions(-) >> >> diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c >> index b92b7df6784a..25d2ba595750 100644 >> --- a/drivers/gpu/drm/drm_modes.c >> +++ b/drivers/gpu/drm/drm_modes.c >> @@ -1609,6 +1609,50 @@ static int drm_mode_parse_cmdline_options(char *str, size_t len, >> } else if (!strncmp(option, "reflect_y", delim - option)) { >> rotation |= DRM_MODE_REFLECT_Y; >> sep = delim; >> + } else if (!strncmp(option, "margin_right", delim - option)) { > > I wonder if this should be called tv_margin_right to distinguish it from > 'm' (the mode specifier) which also is a margin? Or can these margins be > reused on other display types later on? A little stupid to have both > 'tv_margin_right' and 'margin_right'. And after a nights sleep I think 'margin_right' is just fine as long as it's documented in modedb.txt as TV margins. So with an modedb.txt entry and the struct change moved to patch 8: Reviewed-by: Noralf Trønnes <noralf@xxxxxxxxxxx> > >> + const char *value = delim + 1; >> + unsigned int margin; >> + >> + margin = simple_strtol(value, &sep, 10); >> + >> + /* Make sure we have parsed something */ >> + if (sep == value) >> + return -EINVAL; >> + >> + mode->tv_margins.right = margin; >> + } else if (!strncmp(option, "margin_left", delim - option)) { >> + const char *value = delim + 1; >> + unsigned int margin; >> + >> + margin = simple_strtol(value, &sep, 10); >> + >> + /* Make sure we have parsed something */ >> + if (sep == value) >> + return -EINVAL; >> + >> + mode->tv_margins.left = margin; >> + } else if (!strncmp(option, "margin_top", delim - option)) { >> + const char *value = delim + 1; >> + unsigned int margin; >> + >> + margin = simple_strtol(value, &sep, 10); >> + >> + /* Make sure we have parsed something */ >> + if (sep == value) >> + return -EINVAL; >> + >> + mode->tv_margins.top = margin; >> + } else if (!strncmp(option, "margin_bottom", delim - option)) { >> + const char *value = delim + 1; >> + unsigned int margin; >> + >> + margin = simple_strtol(value, &sep, 10); >> + >> + /* Make sure we have parsed something */ >> + if (sep == value) >> + return -EINVAL; >> + >> + mode->tv_margins.bottom = margin; >> } else { >> return -EINVAL; >> } >> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h >> index c58a35b34c1a..6841c46e6781 100644 >> --- a/include/drm/drm_connector.h >> +++ b/include/drm/drm_connector.h >> @@ -505,12 +505,7 @@ struct drm_connector_tv_margins { >> */ >> struct drm_tv_connector_state { >> enum drm_mode_subconnector subconnector; >> - struct { >> - unsigned int left; >> - unsigned int right; >> - unsigned int top; >> - unsigned int bottom; >> - } margins; >> + struct drm_connector_tv_margins margins; >> unsigned int mode; >> unsigned int brightness; >> unsigned int contrast; > > As mentioned this needs moving to patch 8. > > Noralf. > >> @@ -1039,6 +1034,11 @@ struct drm_cmdline_mode { >> * DRM_MODE_ROTATE_180 are supported at the moment. >> */ >> unsigned int rotation; >> + >> + /** >> + * @tv_margins: TV margins to apply to the mode. >> + */ >> + struct drm_connector_tv_margins tv_margins; >> }; >> >> /** >> > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel