From patchwork Fri Jul 6 12:45:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 10511611 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 466E960325 for ; Fri, 6 Jul 2018 12:46:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D5AD622ADC for ; Fri, 6 Jul 2018 12:46:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C6D4C25E97; Fri, 6 Jul 2018 12:46:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00, MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 671F422ADC for ; Fri, 6 Jul 2018 12:46:51 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 49CD26F015; Fri, 6 Jul 2018 12:46:49 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.130]) by gabe.freedesktop.org (Postfix) with ESMTPS id 256366F015 for ; Fri, 6 Jul 2018 12:46:46 +0000 (UTC) Received: from wuerfel.lan ([46.223.138.35]) by mrelayeu.kundenserver.de (mreue001 [212.227.15.129]) with ESMTPA (Nemesis) id 0Mfe8p-1flYUl0Fjv-00P5iG; Fri, 06 Jul 2018 14:46:32 +0200 From: Arnd Bergmann To: Maxime Ripard , David Airlie , Chen-Yu Tsai Subject: [PATCH] drm/sun4i: fix build failure with CONFIG_DRM_SUN8I_MIXER=m Date: Fri, 6 Jul 2018 14:45:53 +0200 Message-Id: <20180706124628.3192421-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K1:c54e9PiOk7Wlim/U846paOiqpg2DfHAPPDpdahMj9m9tN5aT4YK cu+p95lUhbuyjabduuZnYLevHn2qMjpsdeuzJ/W2NubsHOeITcwSYid3kayZ7QHtZix7kHq 4wRB4hdDkk1v+JsOJLVgoe4UiGx+Lws/Z4AFxOkham2vwGr5GrBUHzmOAIT/rpYaPYCs9S/ Pi7dae3LLPwVx1nKHrR+g== X-UI-Out-Filterresults: notjunk:1; V01:K0:p4Z/arbfPhE=:VBLSnoU0vpNyqmFlElX5Cn CcJGaXtutVRnMDBW0qOzZ+pNRWW5qLR5/ZJ82iFzm8K2rqz8iwaKbYly8PWzxsQOpdqCibC7w VtKV7IKdWc4PhAWY7hk3gxxax7CO7UihJaMXh+l7Kfa+8h1GrT9aeFYXQmmVVmq8QcZjUsKU1 OQ4ou/sVBbTcgnvAlpnueRMyRIaPDNp5B0q8aVbjpFga3e0nzEx8BsUyZt24P4x9BY3SWPb8G Rcwe9W6Ct3wjPXcbmm2B1BEmzI3ENVSoZ4VdHNl8VdAtQVvPe/aRZqmfIp6ChQjX9wICtdXLx T9Et8JjZ4iInNm/4HGUJ+xVvhU+MDXJzxWBBIt8qRoVEM/WTTdtwum34tIompFDQDcfS8RfFA AJv2yLGQmLn8TwqDJVoIaCTG5rfRs7a1Ftrp6WLyesUjYBIWhhS/p25sSvaEKMFbrtxSRHN06 8WkVRXcukeIO8RRnIXMTiDnNKlpJ+VIhI21yLbjmXIwTxFsqAJ7WWYgwxGbhpWTd7C0EVUnJf 1XwklMYEt59mQvsGEoMmXMv9C2aMcPS++Rf79McWJsV4+xE4c6BdD/NKGVt7yzDnSnxtr8l/V IJN9Yg928Qb9MbiaV9qcSIpfRS8VzJ+dEhsoU/Y4YmAeLynnLQcd2ePe1SPrIU6jChaCpT3MY Fyk9a+4cRPTMpz0FqvXx1Is9Is/6/ti5EEW1wo5COqedOV5s2HTjriYbry8y+RuOgTKM= X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jernej Skrabec , Arnd Bergmann , Jonathan Liu , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Hans Verkuil , linux-arm-kernel@lists.infradead.org MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP Having DRM_SUN4I built-in but DRM_SUN8I_MIXER as a loadable module results in a link error, as we try to access a symbol from the sun8i_tcon_top.ko module: ERROR: "sun8i_tcon_top_of_table" [drivers/gpu/drm/sun4i/sun8i-drm-hdmi.ko] undefined! ERROR: "sun8i_tcon_top_of_table" [drivers/gpu/drm/sun4i/sun4i-drm.ko] undefined! This solves the problem by making DRM_SUN8I_MIXER a 'bool' symbol, building the sun8i_tcon_top module the same way as the core sun4i-drm module whenever DRM_SUN8I_MIXER is enabled, or not building it at all otherwise. Alternatively, we could always build sun8i_tcon_top.ko along with sun4-drm.ko and detach it from the mixer module, I could not tell which way is more appropriate here. Fixes: 57e23de02f48 ("drm/sun4i: DW HDMI: Expand algorithm for possible crtcs") Fixes: ef0cf6441fbb ("drm/sun4i: Add support for traversing graph with TCON TOP") Signed-off-by: Arnd Bergmann --- drivers/gpu/drm/sun4i/Kconfig | 2 +- drivers/gpu/drm/sun4i/Makefile | 4 +++- drivers/gpu/drm/sun4i/sun4i_drv.c | 3 ++- drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/sun4i/Kconfig b/drivers/gpu/drm/sun4i/Kconfig index 156a865c3e6d..709461deb1c0 100644 --- a/drivers/gpu/drm/sun4i/Kconfig +++ b/drivers/gpu/drm/sun4i/Kconfig @@ -60,7 +60,7 @@ config DRM_SUN8I_DW_HDMI selected the module will be called sun8i_dw_hdmi. config DRM_SUN8I_MIXER - tristate "Support for Allwinner Display Engine 2.0 Mixer" + bool "Support for Allwinner Display Engine 2.0 Mixer" default MACH_SUN8I help Choose this option if you have an Allwinner SoC with the diff --git a/drivers/gpu/drm/sun4i/Makefile b/drivers/gpu/drm/sun4i/Makefile index cd27d02c94e2..11de3cd52dae 100644 --- a/drivers/gpu/drm/sun4i/Makefile +++ b/drivers/gpu/drm/sun4i/Makefile @@ -39,4 +39,6 @@ endif obj-$(CONFIG_DRM_SUN4I_HDMI) += sun4i-drm-hdmi.o obj-$(CONFIG_DRM_SUN6I_DSI) += sun6i-dsi.o obj-$(CONFIG_DRM_SUN8I_DW_HDMI) += sun8i-drm-hdmi.o -obj-$(CONFIG_DRM_SUN8I_MIXER) += sun8i-mixer.o sun8i_tcon_top.o +ifdef CONFIG_DRM_SUN8I_MIXER +obj-$(CONFIG_DRM_SUN4I) += sun8i-mixer.o sun8i_tcon_top.o +endif diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c index 6ddf4eaccb40..7551dcb34c71 100644 --- a/drivers/gpu/drm/sun4i/sun4i_drv.c +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c @@ -216,7 +216,8 @@ static bool sun4i_drv_node_is_tcon_with_ch0(struct device_node *node) static bool sun4i_drv_node_is_tcon_top(struct device_node *node) { - return !!of_match_node(sun8i_tcon_top_of_table, node); + return IS_ENABLED(CONFIG_DRM_SUN8I_MIXER) && + !!of_match_node(sun8i_tcon_top_of_table, node); } static int compare_of(struct device *dev, void *data) diff --git a/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c b/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c index 3459b9ec56c9..b18c8f175dba 100644 --- a/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c +++ b/drivers/gpu/drm/sun4i/sun8i_dw_hdmi.c @@ -44,7 +44,8 @@ sun8i_dw_hdmi_mode_valid(struct drm_connector *connector, static bool sun8i_dw_hdmi_node_is_tcon_top(struct device_node *node) { - return !!of_match_node(sun8i_tcon_top_of_table, node); + return IS_ENABLED(CONFIG_DRM_SUN8I_MIXER) && + !!of_match_node(sun8i_tcon_top_of_table, node); } static u32 sun8i_dw_hdmi_find_possible_crtcs(struct drm_device *drm,