Hi Vinay.
If Laurent or others identify further things to improve we can take it in-tree.
Just one thing, please see below.
d2l_write(tc->i2c, VTIM1, vtime1);
d2l_write(tc->i2c, HTIM2, htime2);
d2l_write(tc->i2c, VTIM2, vtime2);
d2l_write(tc->i2c, VFUEN, VFUEN_EN);
d2l_write(tc->i2c, SYSRST, SYS_RST_LCD);
d2l_write(tc->i2c, LVPHY0, LV_PHY0_PRBS_ON(4) | LV_PHY0_ND(6));
dev_dbg(tc->dev, "bus_formats %04x bpc %d\n",
connector->display_info.bus_formats[0],
tc->bpc);
/*
* Default hardware register settings of tc358775 configured
* with MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA jeida-24 format
*/
if (connector->display_info.bus_formats[0] ==
MEDIA_BUS_FMT_RGB888_1X7X4_SPWG) {
This shouldn't come from the connector, but from the drm_bridge_state.output_bus_cfg.format. The drm_bridge_funcs .atomic_get_input_bus_fmts() operation likely needs to be implemented.
I trust you will look into this and submit a patch on top of drm-misc-next. Please add a proper "Fixes:" tag identifying the commit that introduced this bug - in this case the commit introducing the driver.
Do not hesitate to reply to all if you have any questions. We will help you if we can.
Sam