Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b62dba55 authored by Dave Airlie's avatar Dave Airlie
Browse files

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
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
	 * 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)
		return ret;

+15 −5
Original line number Diff line number Diff line
@@ -152,7 +152,7 @@ static struct regmap_config meson_regmap_config = {
	.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 meson_drm *priv;
@@ -233,11 +233,13 @@ static int meson_drv_bind(struct device *dev)
	if (ret)
		goto free_drm;

	if (has_components) {
		ret = component_bind_all(drm->dev, drm);
		if (ret) {
			dev_err(drm->dev, "Couldn't bind all components\n");
			goto free_drm;
		}
	}

	ret = meson_plane_create(priv);
	if (ret)
@@ -276,6 +278,11 @@ static int meson_drv_bind(struct device *dev)
	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)
{
	struct drm_device *drm = dev_get_drvdata(dev);
@@ -357,6 +364,9 @@ static int meson_drv_probe(struct platform_device *pdev)
		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 (count) {
		dev_info(&pdev->dev, "Queued %d outputs on vpu\n", count);