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
This commit is contained in:
commit
b62dba5577
|
@ -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 = {
|
||||||
.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,10 +233,12 @@ static int meson_drv_bind(struct device *dev)
|
||||||
if (ret)
|
if (ret)
|
||||||
goto free_drm;
|
goto free_drm;
|
||||||
|
|
||||||
ret = component_bind_all(drm->dev, drm);
|
if (has_components) {
|
||||||
if (ret) {
|
ret = component_bind_all(drm->dev, drm);
|
||||||
dev_err(drm->dev, "Couldn't bind all components\n");
|
if (ret) {
|
||||||
goto free_drm;
|
dev_err(drm->dev, "Couldn't bind all components\n");
|
||||||
|
goto free_drm;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = meson_plane_create(priv);
|
ret = meson_plane_create(priv);
|
||||||
|
@ -276,6 +278,11 @@ free_drm:
|
||||||
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)
|
||||||
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);
|
||||||
|
|
Loading…
Reference in New Issue