[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3704589.SqgGPobGdG@phil>
Date: Fri, 04 Sep 2015 23:29:30 +0200
From: Heiko Stuebner <heiko@...ech.de>
To: Rob Herring <robherring2@...il.com>
Cc: Yakir Yang <ykk@...k-chips.com>,
Thierry Reding <treding@...dia.com>,
Jingoo Han <jingoohan1@...il.com>,
Inki Dae <inki.dae@...sung.com>, Joe Perches <joe@...ches.com>,
Kukjin Kim <kgene@...nel.org>,
Krzysztof Kozlowski <k.kozlowski@...sung.com>,
Mark Yao <mark.yao@...k-chips.com>,
Russell King <rmk+kernel@....linux.org.uk>,
Ajay kumar <ajaynumb@...il.com>,
Andrzej Hajda <a.hajda@...sung.com>,
Kyungmin Park <kyungmin.park@...sung.com>,
David Airlie <airlied@...ux.ie>,
Gustavo Padovan <gustavo.padovan@...labora.co.uk>,
Andy Yan <andy.yan@...k-chips.com>,
Kumar Gala <galak@...eaurora.org>,
Ian Campbell <ijc+devicetree@...lion.org.uk>,
Pawel Moll <pawel.moll@....com>,
Kishon Vijay Abraham I <kishon@...com>,
architt@...eaurora.org,
dri-devel <dri-devel@...ts.freedesktop.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-samsung-soc@...r.kernel.org"
<linux-samsung-soc@...r.kernel.org>,
linux-rockchip@...ts.infradead.org,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
Doug Anderson <dianders@...omium.org>,
Sean Paul <seanpaul@...omium.org>,
Daniel Kurtz <djkurtz@...omium.org>
Subject: Re: [PATCH v4 03/16] drm: bridge: analogix/dp: split exynos dp driver to bridge dir
Am Freitag, 4. September 2015, 16:06:02 schrieb Rob Herring:
> On Tue, Sep 1, 2015 at 3:46 PM, Heiko Stuebner <heiko@...ech.de> wrote:
> > Am Dienstag, 1. September 2015, 13:49:58 schrieb Yakir Yang:
> >> Split the dp core driver from exynos directory to bridge
> >> directory, and rename the core driver to analogix_dp_*,
> >> leave the platform code to analogix_dp-exynos.
> >>
> >> Signed-off-by: Yakir Yang <ykk@...k-chips.com>
> >
> > [...]
> >
> >> diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.c
> >> b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c similarity index 50%
> >> rename from drivers/gpu/drm/exynos/exynos_dp_core.c
> >> rename to drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> >> index bed0252..7d62f22 100644
> >> --- a/drivers/gpu/drm/exynos/exynos_dp_core.c
> >> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> >
> > [...]
> >
> >> connector->polled = DRM_CONNECTOR_POLL_HPD;
> >>
> >> ret = drm_connector_init(dp->drm_dev, connector,
> >>
> >> - &exynos_dp_connector_funcs,
> >> + &analogix_dp_connector_funcs,
> >>
> >> DRM_MODE_CONNECTOR_eDP);
> >>
> >> if (ret) {
> >>
> >> DRM_ERROR("Failed to initialize connector with drm\n");
> >> return ret;
> >>
> >> }
> >>
> >> - drm_connector_helper_add(connector,
> >> &exynos_dp_connector_helper_funcs); +
> >> drm_connector_helper_add(connector,
> >> + &analogix_dp_connector_helper_funcs);
> >>
> >> drm_connector_register(connector);
> >
> > this should only run on exynos, as we're doing all our connector
> > registration in the core driver after all components are bound, so I
> > guess something like>
> > the following is needed:
> > if (dp->plat_data && dp->plat_data->dev_type == EXYNOS_DP)
> >
> > drm_connector_register(connector);
>
> Yuck!
>
> Surely there is a better way. From what I've seen of DRM, I have no
> doubt this is needed, but really a better solution is needed. Surely
> there can be a more generic way for the driver to determine if it
> should handle the connector or not. This seems like a common problem
> including one I have seen. What I'm working on has onchip DSI encoder
> -> ADV7533 -> HDMI. The DSI encoder can also have a direct attached
> panel. So I have to check for a bridge in the encoder driver and only
> register the connector for the panel if a bridge is not attached.
I'm also only a part-time drm meddler, so things may be inaccurate.
This conditional is not meant to prevent the registration of the dp connector,
only delay it for non-exynos drms. The connector registration does publish it
to userspace, so like i.MX we're doing that for all connectors at the same
time after all components are bound - to also make x11 happy. Exynos on the
other hand seems to register its connectors individually and I'm not sure if
they would be willing to change that.
see d3007dabeff4 ("drm/rockchip: register all connectors after bind") or
simply rockchip_drm_drv.c line 178.
and e355e7dd607b ("imx-drm: delay publishing sysfs connector entries")
Heiko
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists