[Freedreno] [[RFC]DPU PATCH 1/2] drm/bridge: add support for sn65dsi86 bridge driver

Sean Paul seanpaul at chromium.org
Mon Apr 16 16:55:46 UTC 2018


On Mon, Apr 16, 2018 at 11:32:50AM +0530, spanda at codeaurora.org wrote:
> On 2018-04-14 00:59, Sean Paul wrote:
> > On Fri, Apr 13, 2018 at 10:53:00AM +0530, Sandeep Panda wrote:
> > > Add support for TI's sn65dsi86 dsi2edp bridge chip.
> > > The chip converts DSI transmitted signal to eDP signal,
> > > which is fed to the connected eDP panel.
> > > 
> > > This chip can be controlled via either i2c interface or
> > > dsi interface. Currently in driver all the control registers
> > > are being accessed through i2c interface only.
> > > Also as of now HPD support has not been added to bridge
> > > chip driver.
> > > 
> > > Signed-off-by: Sandeep Panda <spanda at codeaurora.org>

<snip />

> > > +{
> > > +	struct mipi_dsi_host *host;
> > > +	struct mipi_dsi_device *dsi;
> > > +	struct sn65dsi86 *pdata = bridge_to_sn65dsi86(bridge);
> > > +	int ret;
> > > +	const struct mipi_dsi_device_info info = { .type = "sn65dsi86",
> > > +						   .channel = 0,
> > > +						   .node = NULL,
> > > +						 };
> > > +
> > > +	if (!bridge->encoder) {
> > > +		DRM_ERROR("Parent encoder object not found");
> > > +		return -ENODEV;
> > > +	}
> > > +
> > > +	/* HPD not supported */
> > > +	pdata->connector.polled = 0;
> > > +
> > 
> > You'll need to refactor the below to accommodate panels. If you're not
> > planning
> > on supporting hotplug, you should probably remove all of the
> > connector-related
> > stuff from this driver, since you will always be using a panel driver.
> > 
> 
> Thanks for reviewing the patch in detail.
> 
> I have one doubt here. If we remove connector from bridge driver, then how
> will detect()
> and get_modes() called. If you are suggesting to use panel func's detect()
> and get_mode()
> then it might not work, because once upstream DSI driver sees an external
> bridge is connected
> to DSI, then it does not create a connector of it own, it expects the
> external bridge
> to create the connector node. I think here the external bridge has to create
> the connector
> and when detect() and get_modes() call come to external bridge then it
> should query connected
> panel's detect() and get_modes() API.
> 

Right, thanks for setting me straight. You'll need to call the drm_panel_*
helper functions if the panel is present for the connector hooks.

Sean


<snip />

-- 
Sean Paul, Software Engineer, Google / Chromium OS


More information about the Freedreno mailing list