Message ID | acfa6ef9cb155622dc72d5f7a7dbeae57022bdca.1555591281.git-series.maxime.ripard@bootlin.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/vc4: Allow for more boot-time configuration | expand |
Den 18.04.2019 14.41, skrev Maxime Ripard: > Now that the TV margins are properly parsed and filled into > drm_cmdline_mode, we just need to initialise the first state at reset to > get those values and start using them. > > Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> > --- > drivers/gpu/drm/vc4/vc4_hdmi.c | 16 +++++++++++++++- > 1 file changed, 15 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c > index 99fc8569e0f5..d86f154138f5 100644 > --- a/drivers/gpu/drm/vc4/vc4_hdmi.c > +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c > @@ -255,11 +255,25 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) > return ret; > } > > +static void vc4_hdmi_connector_reset(struct drm_connector *connector) > +{ > + struct drm_cmdline_mode *cmdline = &connector->cmdline_mode; > + struct drm_connector_state *state; > + > + drm_atomic_helper_connector_reset(connector); Initially I wondered why not do this in the helper, but ofc that would apply the values to all the connectors. I know too little about this subject to argue for having it in the helper, and it can be changed later if deemed convinient, so: Acked-by: Noralf Trønnes <noralf@tronnes.org> > + > + state = connector->state; > + state->tv.margins.left = cmdline->tv_margins.left; > + state->tv.margins.right = cmdline->tv_margins.right; > + state->tv.margins.top = cmdline->tv_margins.top; > + state->tv.margins.bottom = cmdline->tv_margins.bottom; > +} > + > static const struct drm_connector_funcs vc4_hdmi_connector_funcs = { > .detect = vc4_hdmi_connector_detect, > .fill_modes = drm_helper_probe_single_connector_modes, > .destroy = vc4_hdmi_connector_destroy, > - .reset = drm_atomic_helper_connector_reset, > + .reset = vc4_hdmi_connector_reset, > .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, > .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, > }; >
Den 18.04.2019 18.59, skrev Noralf Trønnes: > > > Den 18.04.2019 14.41, skrev Maxime Ripard: >> Now that the TV margins are properly parsed and filled into >> drm_cmdline_mode, we just need to initialise the first state at reset to >> get those values and start using them. >> >> Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> >> --- >> drivers/gpu/drm/vc4/vc4_hdmi.c | 16 +++++++++++++++- >> 1 file changed, 15 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c >> index 99fc8569e0f5..d86f154138f5 100644 >> --- a/drivers/gpu/drm/vc4/vc4_hdmi.c >> +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c >> @@ -255,11 +255,25 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) >> return ret; >> } >> >> +static void vc4_hdmi_connector_reset(struct drm_connector *connector) You could turn this function into a helper drm_atomic_helper_connector_tv_reset() or something. >> +{ >> + struct drm_cmdline_mode *cmdline = &connector->cmdline_mode; >> + struct drm_connector_state *state; >> + >> + drm_atomic_helper_connector_reset(connector); > > Initially I wondered why not do this in the helper, but ofc that would > apply the values to all the connectors. I know too little about this > subject to argue for having it in the helper, and it can be changed > later if deemed convinient, so: > > Acked-by: Noralf Trønnes <noralf@tronnes.org> > >> + >> + state = connector->state; >> + state->tv.margins.left = cmdline->tv_margins.left; >> + state->tv.margins.right = cmdline->tv_margins.right; >> + state->tv.margins.top = cmdline->tv_margins.top; >> + state->tv.margins.bottom = cmdline->tv_margins.bottom; >> +} >> + >> static const struct drm_connector_funcs vc4_hdmi_connector_funcs = { >> .detect = vc4_hdmi_connector_detect, >> .fill_modes = drm_helper_probe_single_connector_modes, >> .destroy = vc4_hdmi_connector_destroy, >> - .reset = drm_atomic_helper_connector_reset, >> + .reset = vc4_hdmi_connector_reset, >> .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, >> .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, >> }; >> > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel >
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c index 99fc8569e0f5..d86f154138f5 100644 --- a/drivers/gpu/drm/vc4/vc4_hdmi.c +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -255,11 +255,25 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) return ret; } +static void vc4_hdmi_connector_reset(struct drm_connector *connector) +{ + struct drm_cmdline_mode *cmdline = &connector->cmdline_mode; + struct drm_connector_state *state; + + drm_atomic_helper_connector_reset(connector); + + state = connector->state; + state->tv.margins.left = cmdline->tv_margins.left; + state->tv.margins.right = cmdline->tv_margins.right; + state->tv.margins.top = cmdline->tv_margins.top; + state->tv.margins.bottom = cmdline->tv_margins.bottom; +} + static const struct drm_connector_funcs vc4_hdmi_connector_funcs = { .detect = vc4_hdmi_connector_detect, .fill_modes = drm_helper_probe_single_connector_modes, .destroy = vc4_hdmi_connector_destroy, - .reset = drm_atomic_helper_connector_reset, + .reset = vc4_hdmi_connector_reset, .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, };
Now that the TV margins are properly parsed and filled into drm_cmdline_mode, we just need to initialise the first state at reset to get those values and start using them. Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> --- drivers/gpu/drm/vc4/vc4_hdmi.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-)