From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933932AbbIDVG0 (ORCPT ); Fri, 4 Sep 2015 17:06:26 -0400 Received: from mail-yk0-f177.google.com ([209.85.160.177]:35023 "EHLO mail-yk0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933456AbbIDVGW (ORCPT ); Fri, 4 Sep 2015 17:06:22 -0400 MIME-Version: 1.0 In-Reply-To: <2618155.E00Pak1qvi@phil> References: <1441086371-24838-1-git-send-email-ykk@rock-chips.com> <1441086598-24995-1-git-send-email-ykk@rock-chips.com> <2618155.E00Pak1qvi@phil> From: Rob Herring Date: Fri, 4 Sep 2015 16:06:02 -0500 Message-ID: Subject: Re: [PATCH v4 03/16] drm: bridge: analogix/dp: split exynos dp driver to bridge dir To: Heiko Stuebner Cc: Yakir Yang , Thierry Reding , Jingoo Han , Inki Dae , Joe Perches , Kukjin Kim , Krzysztof Kozlowski , Mark Yao , Russell King , Ajay kumar , Andrzej Hajda , Kyungmin Park , David Airlie , Gustavo Padovan , Andy Yan , Kumar Gala , Ian Campbell , Pawel Moll , Kishon Vijay Abraham I , architt@codeaurora.org, dri-devel , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-samsung-soc@vger.kernel.org" , linux-rockchip@lists.infradead.org, "linux-arm-kernel@lists.infradead.org" , Doug Anderson , Sean Paul , Daniel Kurtz Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Sep 1, 2015 at 3:46 PM, Heiko Stuebner 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 > > [...] > >> 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. Rob