From patchwork Thu Feb 11 15:41:32 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 102804 Delivered-To: patch@linaro.org Received: by 10.112.43.199 with SMTP id y7csp278166lbl; Thu, 11 Feb 2016 07:45:46 -0800 (PST) X-Received: by 10.66.156.195 with SMTP id wg3mr66825542pab.54.1455205540750; Thu, 11 Feb 2016 07:45:40 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id vv1si13297332pab.34.2016.02.11.07.45.40; Thu, 11 Feb 2016 07:45:40 -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 S1752059AbcBKPpi (ORCPT + 30 others); Thu, 11 Feb 2016 10:45:38 -0500 Received: from mout.kundenserver.de ([212.227.17.10]:65450 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751675AbcBKPpg (ORCPT ); Thu, 11 Feb 2016 10:45:36 -0500 Received: from wuerfel.lan. ([78.42.132.4]) by mrelayeu.kundenserver.de (mreue102) with ESMTPA (Nemesis) id 0MTgjg-1acj650Ffs-00QW9i; Thu, 11 Feb 2016 16:45:01 +0100 From: Arnd Bergmann To: Greg Kroah-Hartman Cc: linux-arm-kernel@lists.infradead.org, Arnd Bergmann , Paul Gortmaker , linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, Jiri Slaby Subject: [PATCH v2 6/6] serial: 8250/ingenic: fix building with SERIAL_8250=m Date: Thu, 11 Feb 2016 16:41:32 +0100 Message-Id: <1455205297-1021302-7-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1455205297-1021302-1-git-send-email-arnd@arndb.de> References: <1455205297-1021302-1-git-send-email-arnd@arndb.de> X-Provags-ID: V03:K0:awOrsn3M8flIxUiVQEyWeB9inGrjxJq48+R6QCjZsuEt7Q8zwx8 YvqJhw5ZZiy1F4xAcBG6icbZidZbfGRyZ9ABCzXe75n2HgL3YMVW94neWDTg50bQiE1IQer SAfNSYMBdcCKosv3jh039AK0zJE60fehtTbnHo/dZlyAqBxUZ9pFaVopCztEcWEiup0dPUk qc10/AZp5uxOPBXLF9VNw== X-UI-Out-Filterresults: notjunk:1; V01:K0:WVbzRex2cKk=:Sc0iNtDzZ/tgblcSUc+xD9 4ke07wJiIIQqtbPwCRS0jIMBMXa12srUhXC1+AH21tBMLMfgpfjWYmF/JYos7kM+hMB8NTRjv sQsSZwncQ1eOtNyhm+/nH2etWzRy163GHiCDKPNkZXGPW3dgpwxULIPRzB/xeh0gIE6xWYgd3 36O2WPVR0mQ6DtK+ENQtDG9HawapZMK07Nr3VOoLfdqEd8sToXq8piJAZqpwdxEvd7Vs0j5+E oXbuVL99tpfe8q6gqOh/V6Fca4NSp+3ku/tMwf6KzxNCSrmNGgx+UTGdWNQMnTEf2JhsCaa1M nHre7EMUcATgwmcNVRdPxdj1Eb8BYxjewXhFARHrlkDk07yLJAQ9hFqjFSP+HvZCFy28v3jr2 WSwhQulbMyB3gXPeg/bFnmC2Q+urHwipAO8t+wasnGnxKfrIOD2DJOzddSb5mDrM4I6TGBhBU A9mRrxz+wyh+BeajdZQCYFA05E1HX45BGJZqpyno84i0ovkkJgdw7NQUPrTYGOkJwT2JVD8DT ycdUmoMILR2UdZp3w15z8BbYN2/Du3OZqX1wQJCkoMYrf3hOU26VukUU0NMMZ476C/aLPZe13 d5yMTsugv1SX6htfVgwIlzhj4JDtDLlihx/zMmELk/7jIwgo2cXRK0Ip/3PNkSYMGeu+KfgJB DH+pzYAubm7nkmQ2bPw+8fceg9oQ0NJCkQzMam1fwp0FF3Sxa67GUSUYRqNuFC27tZ4E= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The Ingenic 8250 driver has a 'bool' Kconfig symbol, but that breaks when SERIAL_8250 is a loadable module: drivers/tty/built-in.o: In function `ingenic_uart_probe': 8250_ingenic.c:(.text+0x1c1a0): undefined reference to `serial8250_register_8250_port' This changes the symbol to a 'tristate', plus a dependency on SERIAL_8250, which makes it work again. Unlike the other soc-specific backends, this one has no dependency on an architecture or a platform. I'm adding a dependency on MIPS || COMPILE_TEST as well here, to avoid showing the driver on architectures that are not interested in it. Signed-off-by: Arnd Bergmann --- drivers/tty/serial/8250/8250_ingenic.c | 2 +- drivers/tty/serial/8250/Kconfig | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) -- 2.7.0 diff --git a/drivers/tty/serial/8250/8250_ingenic.c b/drivers/tty/serial/8250/8250_ingenic.c index 97b78558caed..b0677f610863 100644 --- a/drivers/tty/serial/8250/8250_ingenic.c +++ b/drivers/tty/serial/8250/8250_ingenic.c @@ -48,7 +48,7 @@ static const struct of_device_id of_match[]; #define UART_MCR_MDCE BIT(7) #define UART_MCR_FCM BIT(6) -#ifdef CONFIG_SERIAL_EARLYCON +#if defined(CONFIG_SERIAL_EARLYCON) && !defined(MODULE) static struct earlycon_device *early_device; static uint8_t __init early_in(struct uart_port *port, int offset) diff --git a/drivers/tty/serial/8250/Kconfig b/drivers/tty/serial/8250/Kconfig index 6ae0fae4f796..32df7d5a1733 100644 --- a/drivers/tty/serial/8250/Kconfig +++ b/drivers/tty/serial/8250/Kconfig @@ -384,9 +384,10 @@ config SERIAL_8250_UNIPHIER serial ports, say Y to this option. If unsure, say N. config SERIAL_8250_INGENIC - bool "Support for Ingenic SoC serial ports" - depends on OF_FLATTREE - select LIBFDT + tristate "Support for Ingenic SoC serial ports" + depends on SERIAL_8250 + depends on (OF_FLATTREE && SERIAL_8250_CONSOLE) || !SERIAL_8250_CONSOLE + depends on MIPS || COMPILE_TEST help If you have a system using an Ingenic SoC and wish to make use of its UARTs, say Y to this option. If unsure, say N.