Commit b62dba55 authored by Dave Airlie's avatar Dave Airlie

Merge tag 'drm-misc-fixes-2017-06-07' of git://anongit.freedesktop.org/git/drm-misc into drm-fixes

Driver Changes:
- kirin: Use correct dt port for the bridge (John)
- meson: Fix regression caused by adding HDMI support to allow board
	 configurations without HDMI (Neil)

Cc: John Stultz <john.stultz@linaro.org>
Cc: Neil Armstrong <narmstrong@baylibre.com>

* tag 'drm-misc-fixes-2017-06-07' of git://anongit.freedesktop.org/git/drm-misc:
  drm/meson: Fix driver bind when only CVBS is available
  drm: kirin: Fix drm_of_find_panel_or_bridge conversion
parents 97f607fe 8604889f
...@@ -760,7 +760,7 @@ static int dsi_parse_dt(struct platform_device *pdev, struct dw_dsi *dsi) ...@@ -760,7 +760,7 @@ static int dsi_parse_dt(struct platform_device *pdev, struct dw_dsi *dsi)
* Get the endpoint node. In our case, dsi has one output port1 * Get the endpoint node. In our case, dsi has one output port1
* to which the external HDMI bridge is connected. * to which the external HDMI bridge is connected.
*/ */
ret = drm_of_find_panel_or_bridge(np, 0, 0, NULL, &dsi->bridge); ret = drm_of_find_panel_or_bridge(np, 1, 0, NULL, &dsi->bridge);
if (ret) if (ret)
return ret; return ret;
......
...@@ -152,7 +152,7 @@ static struct regmap_config meson_regmap_config = { ...@@ -152,7 +152,7 @@ static struct regmap_config meson_regmap_config = {
.max_register = 0x1000, .max_register = 0x1000,
}; };
static int meson_drv_bind(struct device *dev) static int meson_drv_bind_master(struct device *dev, bool has_components)
{ {
struct platform_device *pdev = to_platform_device(dev); struct platform_device *pdev = to_platform_device(dev);
struct meson_drm *priv; struct meson_drm *priv;
...@@ -233,11 +233,13 @@ static int meson_drv_bind(struct device *dev) ...@@ -233,11 +233,13 @@ static int meson_drv_bind(struct device *dev)
if (ret) if (ret)
goto free_drm; goto free_drm;
if (has_components) {
ret = component_bind_all(drm->dev, drm); ret = component_bind_all(drm->dev, drm);
if (ret) { if (ret) {
dev_err(drm->dev, "Couldn't bind all components\n"); dev_err(drm->dev, "Couldn't bind all components\n");
goto free_drm; goto free_drm;
} }
}
ret = meson_plane_create(priv); ret = meson_plane_create(priv);
if (ret) if (ret)
...@@ -276,6 +278,11 @@ static int meson_drv_bind(struct device *dev) ...@@ -276,6 +278,11 @@ static int meson_drv_bind(struct device *dev)
return ret; return ret;
} }
static int meson_drv_bind(struct device *dev)
{
return meson_drv_bind_master(dev, true);
}
static void meson_drv_unbind(struct device *dev) static void meson_drv_unbind(struct device *dev)
{ {
struct drm_device *drm = dev_get_drvdata(dev); struct drm_device *drm = dev_get_drvdata(dev);
...@@ -357,6 +364,9 @@ static int meson_drv_probe(struct platform_device *pdev) ...@@ -357,6 +364,9 @@ static int meson_drv_probe(struct platform_device *pdev)
count += meson_probe_remote(pdev, &match, np, remote); count += meson_probe_remote(pdev, &match, np, remote);
} }
if (count && !match)
return meson_drv_bind_master(&pdev->dev, false);
/* If some endpoints were found, initialize the nodes */ /* If some endpoints were found, initialize the nodes */
if (count) { if (count) {
dev_info(&pdev->dev, "Queued %d outputs on vpu\n", count); dev_info(&pdev->dev, "Queued %d outputs on vpu\n", count);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment