On Wed, Jan 17, 2018 at 03:17:55PM +0100, Daniel Vetter wrote: > drm_encoder_slave is the old way to write bridge drivers, for i2c > bridges only. It's deprecated, and definitely should not be used in > new drivers. This has absolutely nothing to do with the new bridge > driver infrastructure implemented by drm_bridge. > > What's even strange is that arcpgu doesn't even use any of this, it > really only wants a plain normal drm_encoder. Nuke all the surplus > real estate. > > v2: Actually git add after compile testing ... > > v3: Clarify commit message and stop including drm_encoder_slave.h. > > Cc: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > Cc: Alexey Brodkin <abrodkin@xxxxxxxxxxxx> > Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx> I assumed this is ok and applied it to drm-misc-next. -Daniel > --- > drivers/gpu/drm/arc/arcpgu_hdmi.c | 3 ++- > drivers/gpu/drm/arc/arcpgu_sim.c | 16 ++++++---------- > 2 files changed, 8 insertions(+), 11 deletions(-) > > diff --git a/drivers/gpu/drm/arc/arcpgu_hdmi.c b/drivers/gpu/drm/arc/arcpgu_hdmi.c > index 0ce7f398bcff..977dfa55162f 100644 > --- a/drivers/gpu/drm/arc/arcpgu_hdmi.c > +++ b/drivers/gpu/drm/arc/arcpgu_hdmi.c > @@ -15,7 +15,8 @@ > */ > > #include <drm/drm_crtc.h> > -#include <drm/drm_encoder_slave.h> > +#include <drm/drm_encoder.h> > +#include <drm/drm_device.h> > > #include "arcpgu.h" > > diff --git a/drivers/gpu/drm/arc/arcpgu_sim.c b/drivers/gpu/drm/arc/arcpgu_sim.c > index bca3a678c955..b8f6f9a5dfbe 100644 > --- a/drivers/gpu/drm/arc/arcpgu_sim.c > +++ b/drivers/gpu/drm/arc/arcpgu_sim.c > @@ -15,7 +15,6 @@ > */ > > #include <drm/drm_crtc_helper.h> > -#include <drm/drm_encoder_slave.h> > #include <drm/drm_atomic_helper.h> > > #include "arcpgu.h" > @@ -29,7 +28,6 @@ > > struct arcpgu_drm_connector { > struct drm_connector connector; > - struct drm_encoder_slave *encoder_slave; > }; > > static int arcpgu_drm_connector_get_modes(struct drm_connector *connector) > @@ -68,7 +66,7 @@ static struct drm_encoder_funcs arcpgu_drm_encoder_funcs = { > int arcpgu_drm_sim_init(struct drm_device *drm, struct device_node *np) > { > struct arcpgu_drm_connector *arcpgu_connector; > - struct drm_encoder_slave *encoder; > + struct drm_encoder *encoder; > struct drm_connector *connector; > int ret; > > @@ -76,10 +74,10 @@ int arcpgu_drm_sim_init(struct drm_device *drm, struct device_node *np) > if (encoder == NULL) > return -ENOMEM; > > - encoder->base.possible_crtcs = 1; > - encoder->base.possible_clones = 0; > + encoder->possible_crtcs = 1; > + encoder->possible_clones = 0; > > - ret = drm_encoder_init(drm, &encoder->base, &arcpgu_drm_encoder_funcs, > + ret = drm_encoder_init(drm, encoder, &arcpgu_drm_encoder_funcs, > DRM_MODE_ENCODER_VIRTUAL, NULL); > if (ret) > return ret; > @@ -101,21 +99,19 @@ int arcpgu_drm_sim_init(struct drm_device *drm, struct device_node *np) > goto error_encoder_cleanup; > } > > - ret = drm_mode_connector_attach_encoder(connector, &encoder->base); > + ret = drm_mode_connector_attach_encoder(connector, encoder); > if (ret < 0) { > dev_err(drm->dev, "could not attach connector to encoder\n"); > drm_connector_unregister(connector); > goto error_connector_cleanup; > } > > - arcpgu_connector->encoder_slave = encoder; > - > return 0; > > error_connector_cleanup: > drm_connector_cleanup(connector); > > error_encoder_cleanup: > - drm_encoder_cleanup(&encoder->base); > + drm_encoder_cleanup(encoder); > return ret; > } > -- > 2.15.1 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel