Hi, > -----Original Message----- > From: Nikhil Devshatwar <nikhil.nd@xxxxxx> > Sent: Friday, October 16, 2020 4:09 PM > To: dri-devel@xxxxxxxxxxxxxxxxxxxxx; Tomi Valkeinen > <tomi.valkeinen@xxxxxx> > Cc: Sekhar Nori <nsekhar@xxxxxx>; Laurent Pinchart > <laurent.pinchart@xxxxxxxxxxxxxxxx>; Swapnil Kashinath Jakhade > <sjakhade@xxxxxxxxxxx> > Subject: [PATCH 5/5] drm/bridge: mhdp8564: Support format negotiation > s/mhdp8564/mhdp8546 > EXTERNAL MAIL > > > With new connector model, mhdp bridge will not create the connector and > SoC driver will rely on format negotiation to setup the encoder format. > > Support format negotiations hooks in the drm_bridge_funcs. > Support a single format for input. > > Signed-off-by: Nikhil Devshatwar <nikhil.nd@xxxxxx> > --- > .../drm/bridge/cadence/cdns-mhdp8546-core.c | 29 +++++++++++++++++++ > 1 file changed, 29 insertions(+) > > diff --git a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c > b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c > index d0c65610ebb5..230f6e28f82f 100644 > --- a/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c > +++ b/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c > @@ -2078,6 +2078,34 @@ cdns_mhdp_bridge_atomic_reset(struct > drm_bridge *bridge) > return &cdns_mhdp_state->base; > } > > +static u32 *cdns_mhdp_get_input_bus_fmts(struct drm_bridge *bridge, > + struct drm_bridge_state *bridge_state, > + struct drm_crtc_state *crtc_state, > + struct drm_connector_state *conn_state, > + u32 output_fmt, > + unsigned int *num_input_fmts) { > + u32 *input_fmts; > + u32 default_bus_format = MEDIA_BUS_FMT_RGB121212_1X36; > + > + *num_input_fmts = 0; > + > + /* > + * This bridge does not support media_bus_format conversion > + * Propagate only if supported > + */ > + if (output_fmt != default_bus_format && output_fmt != > MEDIA_BUS_FMT_FIXED) > + return NULL; > + > + input_fmts = kzalloc(sizeof(*input_fmts), GFP_KERNEL); > + if (!input_fmts) > + return NULL; > + > + *num_input_fmts = 1; > + input_fmts[0] = default_bus_format; > + return input_fmts; > +} > + > static int cdns_mhdp_atomic_check(struct drm_bridge *bridge, > struct drm_bridge_state *bridge_state, > struct drm_crtc_state *crtc_state, @@ - > 2142,6 +2170,7 @@ static const struct drm_bridge_funcs > cdns_mhdp_bridge_funcs = { > .atomic_duplicate_state = > cdns_mhdp_bridge_atomic_duplicate_state, > .atomic_destroy_state = cdns_mhdp_bridge_atomic_destroy_state, > .atomic_reset = cdns_mhdp_bridge_atomic_reset, > + .atomic_get_input_bus_fmts = cdns_mhdp_get_input_bus_fmts, > .detect = cdns_mhdp_bridge_detect, > .get_edid = cdns_mhdp_bridge_get_edid, > .hpd_enable = cdns_mhdp_bridge_hpd_enable, > -- > 2.17.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel