From patchwork Fri Feb 26 12:38:08 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 102666 Delivered-To: patch@linaro.org Received: by 10.112.199.169 with SMTP id jl9csp693611lbc; Fri, 26 Feb 2016 04:42:07 -0800 (PST) X-Received: by 10.66.190.131 with SMTP id gq3mr1738766pac.42.1456490525267; Fri, 26 Feb 2016 04:42:05 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id yk10si2879675pac.24.2016.02.26.04.42.04; Fri, 26 Feb 2016 04:42:05 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753987AbcBZMl6 (ORCPT + 30 others); Fri, 26 Feb 2016 07:41:58 -0500 Received: from mout.kundenserver.de ([212.227.17.10]:53525 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751376AbcBZMlo (ORCPT ); Fri, 26 Feb 2016 07:41:44 -0500 Received: from wuerfel.lan. ([78.42.132.4]) by mrelayeu.kundenserver.de (mreue101) with ESMTPA (Nemesis) id 0MDxdP-1ahrSH3h2l-00HMzm; Fri, 26 Feb 2016 13:38:35 +0100 From: Arnd Bergmann To: Tomi Valkeinen Cc: linux-arm-kernel@lists.infradead.org, Paul Bolle , Arnd Bergmann , Jean-Christophe Plagniol-Villard , Kukjin Kim , Krzysztof Kozlowski , Inki Dae , Donghwa Lee , Kyungmin Park , linux-fbdev@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2] video: exynos: fix modular build Date: Fri, 26 Feb 2016 13:38:08 +0100 Message-Id: <1456490307-823812-1-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 2.7.0 X-Provags-ID: V03:K0:Fv1uddvI5nwmsbSyaZJNqR+VxNv5uqXXWMQhvZKIhvmuPGrbWuJ QtHE/CnpW8pj6NR2SGb3wQFSbvq+1CVJTOiq1YeHJ3P42O887Sl0k65D9GhjrrnIhFsXCpg 3n5bCbq7HWHVp/lpwr1SFoIIFC2xZz6DEwyZgPp8DLbu/FAwfBjzhmaOk7U+oAxXnWTqrr4 Z/ScqlO+2XEg+ha1SXxxQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:XaHpEI/qmEI=:CYVV4YHEWdhVxGkY7VTyew dTzFUfjTt+RuQt397JngeJpJ9xHrgrJ0ctDyI5gN6F3AogrntuAjUeTlMOyOMGPNLq31iEH4E rm27kEmo4E2bVA7Xg3ICZL5qHwcR8GhhkQhoxfalI1EMRNqOyjMWMNE5DoBnXey9/3lACmX7b ZkNdCc6msTrpVz6h5RKcl3yqf20kj92b8oAbKBlSb+TNzdW+YVXKSqWEue3sl12RJ993bVSCS qYDA0j1p8KWcDQ7UncmCBoocX9oVBMuU6Y13lHRua32G+DK3s6nkGMDELM4TTOOPs3aO7QbRX boggmk8P1ABtC9yZHlgvCLxKu/JZ7mrmUXPg8UzrQw+IvgmMcNo/qpfOooIzDkHLjxTwJK8mq GAXl/62B6WA0mgvobvFKx+LFhxXTb2ukfn7PQrfG6WIE3nRERNJHbXk9GnOFHQvKNvD76PBU4 mXNJnOEFPEE+yTBxHW517zMXqCHEDXxEOOjNlihb/5+uhQ5aRFsFtYThv4+KCm2hqEwNS/x4z 5bZDd4H0k/N2Ep98Pen7PuiGKvK7MUFYNdEU1AsjPzv5UPPhyOJUSj15NejkZrmfAV5sA9fHF IvCy85A7KJPa8nqn0Emz9K8SczDV4VcJJrBBB+fOM8PdkPhfJOdrIARVPsqWm7ZTFMfJYkXRo bLkP69kTjhONB/+LJVsSwsLjwzLyxdF+2495qnuirdQ1zJw3m/LfnGA67lp7/ylI0XEc= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The s6e8ax0 driver has a dependency on BACKLIGHT_CLASS_DEVICE, which can be configured as a loadable module, so we have to make the driver a tristate symbol as well, to avoid this error: drivers/built-in.o: In function `s6e8ax0_probe': :(.text+0x23a48): undefined reference to `devm_backlight_device_register' This also means we get another error from a missing export, which this fixes as well: ERROR: "exynos_mipi_dsi_register_lcd_driver" [drivers/video/fbdev/exynos/s6e8ax0.ko] undefined! The drivers are all written to be loadable modules already, except the Kconfig options for that are missing, which makes the patch really easy. Finally, the EXYNOS_VIDEO option is turned into tristate as well for good measure, as all framebuffer drivers should be configurable as modules, though this change is not strictly necessary. Signed-off-by: Arnd Bergmann Reviewed-by: Krzysztof Kozlowski --- drivers/video/fbdev/exynos/Kconfig | 6 +++--- drivers/video/fbdev/exynos/Makefile | 6 ++++-- drivers/video/fbdev/exynos/exynos_mipi_dsi.c | 1 + 3 files changed, 8 insertions(+), 5 deletions(-) v2: improved changelog after feedback from Paul Bolle -- 2.7.0 diff --git a/drivers/video/fbdev/exynos/Kconfig b/drivers/video/fbdev/exynos/Kconfig index 1f16b4678c71..d916bef94f25 100644 --- a/drivers/video/fbdev/exynos/Kconfig +++ b/drivers/video/fbdev/exynos/Kconfig @@ -3,7 +3,7 @@ # menuconfig EXYNOS_VIDEO - bool "Exynos Video driver support" + tristate "Exynos Video driver support" depends on ARCH_S5PV210 || ARCH_EXYNOS help This enables support for EXYNOS Video device. @@ -15,13 +15,13 @@ if EXYNOS_VIDEO # config EXYNOS_MIPI_DSI - bool "EXYNOS MIPI DSI driver support." + tristate "EXYNOS MIPI DSI driver support." select GENERIC_PHY help This enables support for MIPI-DSI device. config EXYNOS_LCD_S6E8AX0 - bool "S6E8AX0 MIPI AMOLED LCD Driver" + tristate "S6E8AX0 MIPI AMOLED LCD Driver" depends on EXYNOS_MIPI_DSI && BACKLIGHT_CLASS_DEVICE depends on (LCD_CLASS_DEVICE = y) default n diff --git a/drivers/video/fbdev/exynos/Makefile b/drivers/video/fbdev/exynos/Makefile index b5b1bd228abb..02d8dc522fea 100644 --- a/drivers/video/fbdev/exynos/Makefile +++ b/drivers/video/fbdev/exynos/Makefile @@ -2,6 +2,8 @@ # Makefile for the exynos video drivers. # -obj-$(CONFIG_EXYNOS_MIPI_DSI) += exynos_mipi_dsi.o exynos_mipi_dsi_common.o \ - exynos_mipi_dsi_lowlevel.o +obj-$(CONFIG_EXYNOS_MIPI_DSI) += exynos-mipi-dsi-mod.o + +exynos-mipi-dsi-mod-objs += exynos_mipi_dsi.o exynos_mipi_dsi_common.o \ + exynos_mipi_dsi_lowlevel.o obj-$(CONFIG_EXYNOS_LCD_S6E8AX0) += s6e8ax0.o diff --git a/drivers/video/fbdev/exynos/exynos_mipi_dsi.c b/drivers/video/fbdev/exynos/exynos_mipi_dsi.c index 951b592794e3..92e4af3caaf8 100644 --- a/drivers/video/fbdev/exynos/exynos_mipi_dsi.c +++ b/drivers/video/fbdev/exynos/exynos_mipi_dsi.c @@ -263,6 +263,7 @@ int exynos_mipi_dsi_register_lcd_driver(struct mipi_dsim_lcd_driver *lcd_drv) return 0; } +EXPORT_SYMBOL_GPL(exynos_mipi_dsi_register_lcd_driver); static struct mipi_dsim_ddi *exynos_mipi_dsi_bind_lcd_ddi( struct mipi_dsim_device *dsim,