Message ID | 1472115874-6219-2-git-send-email-andrea.merello@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 08/25/2016 02:34 PM, Andrea Merello wrote: > drm_simple_display_pipe_init() pretends to attach a connector > to the display pipe. > > In case a drm bridge has to be used, then it's the bridge that > takes care of connectors. > > This patch makes the connector parameter optional for > drm_simple_display_pipe_init(), so that a drm bridge could > handle connector by itself later. > Pushed to drm-misc. Thanks, Archit > Signed-off-by: Andrea Merello <andrea.merello@gmail.com> > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > Cc: David Airlie <airlied@linux.ie> > Cc: Noralf Trønnes <noralf@tronnes.org> > Cc: Daniel Vetter <daniel@ffwll.ch> > --- > drivers/gpu/drm/drm_simple_kms_helper.c | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/drm_simple_kms_helper.c b/drivers/gpu/drm/drm_simple_kms_helper.c > index 4476310..3301e4a 100644 > --- a/drivers/gpu/drm/drm_simple_kms_helper.c > +++ b/drivers/gpu/drm/drm_simple_kms_helper.c > @@ -146,10 +146,15 @@ static const struct drm_plane_funcs drm_simple_kms_plane_funcs = { > * @funcs: callbacks for the display pipe (optional) > * @formats: array of supported formats (DRM_FORMAT\_\*) > * @format_count: number of elements in @formats > - * @connector: connector to attach and register > + * @connector: connector to attach and register (optional) > * > * Sets up a display pipeline which consist of a really simple > - * plane-crtc-encoder pipe coupled with the provided connector. > + * plane-crtc-encoder pipe. > + * > + * If a connector is supplied, the pipe will be coupled with the provided > + * connector. You may supply a NULL connector when using drm bridges, that > + * handle connectors themselves (see drm_simple_display_pipe_attach_bridge()). > + * > * Teardown of a simple display pipe is all handled automatically by the drm > * core through calling drm_mode_config_cleanup(). Drivers afterwards need to > * release the memory for the structure themselves. > @@ -188,7 +193,7 @@ int drm_simple_display_pipe_init(struct drm_device *dev, > encoder->possible_crtcs = 1 << drm_crtc_index(crtc); > ret = drm_encoder_init(dev, encoder, &drm_simple_kms_encoder_funcs, > DRM_MODE_ENCODER_NONE, NULL); > - if (ret) > + if (ret || !connector) > return ret; > > return drm_mode_connector_attach_encoder(connector, encoder); >
diff --git a/drivers/gpu/drm/drm_simple_kms_helper.c b/drivers/gpu/drm/drm_simple_kms_helper.c index 4476310..3301e4a 100644 --- a/drivers/gpu/drm/drm_simple_kms_helper.c +++ b/drivers/gpu/drm/drm_simple_kms_helper.c @@ -146,10 +146,15 @@ static const struct drm_plane_funcs drm_simple_kms_plane_funcs = { * @funcs: callbacks for the display pipe (optional) * @formats: array of supported formats (DRM_FORMAT\_\*) * @format_count: number of elements in @formats - * @connector: connector to attach and register + * @connector: connector to attach and register (optional) * * Sets up a display pipeline which consist of a really simple - * plane-crtc-encoder pipe coupled with the provided connector. + * plane-crtc-encoder pipe. + * + * If a connector is supplied, the pipe will be coupled with the provided + * connector. You may supply a NULL connector when using drm bridges, that + * handle connectors themselves (see drm_simple_display_pipe_attach_bridge()). + * * Teardown of a simple display pipe is all handled automatically by the drm * core through calling drm_mode_config_cleanup(). Drivers afterwards need to * release the memory for the structure themselves. @@ -188,7 +193,7 @@ int drm_simple_display_pipe_init(struct drm_device *dev, encoder->possible_crtcs = 1 << drm_crtc_index(crtc); ret = drm_encoder_init(dev, encoder, &drm_simple_kms_encoder_funcs, DRM_MODE_ENCODER_NONE, NULL); - if (ret) + if (ret || !connector) return ret; return drm_mode_connector_attach_encoder(connector, encoder);