diff options
Diffstat (limited to 'drivers/gpu/drm/vc4/vc4_dsi.c')
| -rw-r--r-- | drivers/gpu/drm/vc4/vc4_dsi.c | 28 | 
1 files changed, 4 insertions, 24 deletions
| diff --git a/drivers/gpu/drm/vc4/vc4_dsi.c b/drivers/gpu/drm/vc4/vc4_dsi.c index a185027911ce..a229da58962a 100644 --- a/drivers/gpu/drm/vc4/vc4_dsi.c +++ b/drivers/gpu/drm/vc4/vc4_dsi.c @@ -1497,7 +1497,6 @@ static int vc4_dsi_bind(struct device *dev, struct device *master, void *data)  	struct drm_device *drm = dev_get_drvdata(master);  	struct vc4_dsi *dsi = dev_get_drvdata(dev);  	struct vc4_dsi_encoder *vc4_dsi_encoder; -	struct drm_panel *panel;  	const struct of_device_id *match;  	dma_cap_mask_t dma_mask;  	int ret; @@ -1609,27 +1608,9 @@ static int vc4_dsi_bind(struct device *dev, struct device *master, void *data)  		return ret;  	} -	ret = drm_of_find_panel_or_bridge(dev->of_node, 0, 0, -					  &panel, &dsi->bridge); -	if (ret) { -		/* If the bridge or panel pointed by dev->of_node is not -		 * enabled, just return 0 here so that we don't prevent the DRM -		 * dev from being registered. Of course that means the DSI -		 * encoder won't be exposed, but that's not a problem since -		 * nothing is connected to it. -		 */ -		if (ret == -ENODEV) -			return 0; - -		return ret; -	} - -	if (panel) { -		dsi->bridge = devm_drm_panel_bridge_add_typed(dev, panel, -							      DRM_MODE_CONNECTOR_DSI); -		if (IS_ERR(dsi->bridge)) -			return PTR_ERR(dsi->bridge); -	} +	dsi->bridge = devm_drm_of_get_bridge(dev, dev->of_node, 0, 0); +	if (IS_ERR(dsi->bridge)) +		return PTR_ERR(dsi->bridge);  	/* The esc clock rate is supposed to always be 100Mhz. */  	ret = clk_set_rate(dsi->escape_clock, 100 * 1000000); @@ -1667,8 +1648,7 @@ static void vc4_dsi_unbind(struct device *dev, struct device *master,  {  	struct vc4_dsi *dsi = dev_get_drvdata(dev); -	if (dsi->bridge) -		pm_runtime_disable(dev); +	pm_runtime_disable(dev);  	/*  	 * Restore the bridge_chain so the bridge detach procedure can happen |