From patchwork Thu Mar 16 15:18:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Linus Walleij X-Patchwork-Id: 739880 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3vkXDy2dbwz9rxm for ; Fri, 17 Mar 2017 02:18:58 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="SzQawyjt"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752066AbdCPPS5 (ORCPT ); Thu, 16 Mar 2017 11:18:57 -0400 Received: from mail-it0-f42.google.com ([209.85.214.42]:36895 "EHLO mail-it0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753728AbdCPPSz (ORCPT ); Thu, 16 Mar 2017 11:18:55 -0400 Received: by mail-it0-f42.google.com with SMTP id g138so47460768itb.0 for ; Thu, 16 Mar 2017 08:18:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=3XZlYvXhiT7/9f4+8Egn8X+AYEqo+bar4i6N9SDRG/Q=; b=SzQawyjt/hCg7vxJXNzeeXshqRO4NmuAEP7yOfIF0e+E0tfktHIcMto3n3Xr70tyTr k/NTA+Hvgu966D1p8TKUFcASxUwyY76/bqQ0+6NndkGV9uDnFmrBFHTx0P30AiaGkvxF +K5ECrAGJ/dvE8sHYaTuROs4IHuBPO5R9xnBk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=3XZlYvXhiT7/9f4+8Egn8X+AYEqo+bar4i6N9SDRG/Q=; b=cZihntl1OD5IHUtR1TCx1qDaTMGGsCKLr6LnrEyG86DLkpb+0mGV+uvLWDM6nPna1B F+rOXW6dLlAx16NAGH1wZWW1V14LF3HyRfwBIpSRzpZGQnJl5Vmd3tizBX9aM4Pr/w15 H/nwRclrqPwLipihXUReaIrv+bu8HIirrjwwGkBZuBqvmurERxjbKEA0wF5aFreAcSwu y5ZIr/n2QULo2CBsxpbs0PQx9C4vVFZ0Gqoa2xJXbSxEGAL5gJ70s6NzRO+g06l5sgzf nQhzyiYjCs+sMkMlxtZrS3qUpwKy1e9RCPCZl3pmGJKyGtqgUZ7JvjyJlSD72rdAEgRE A2iA== X-Gm-Message-State: AFeK/H2Q+9eadiuZbytl37QIJs9Z5S4t+utqINyONN6dcIYasHbIvPgBolrc/8l474jGQa9V98HLe6T7AevaHT2H X-Received: by 10.107.146.198 with SMTP id u189mr11410790iod.173.1489677533903; Thu, 16 Mar 2017 08:18:53 -0700 (PDT) MIME-Version: 1.0 Received: by 10.79.134.193 with HTTP; Thu, 16 Mar 2017 08:18:52 -0700 (PDT) In-Reply-To: <20170306100220.droey65uq2ew3mzu@pengutronix.de> References: <20170303191248.wlwjri55ip2x5pgg@pengutronix.de> <20170303194414.n76tr3oa2mlrzjre@pengutronix.de> <20170304174819.esxhwwbsxzuq3vyc@pengutronix.de> <20170306085842.yijkfpqi3adcedmm@pengutronix.de> <20170306093043.ay4dz3ehp3aakwxh@pengutronix.de> <20170306100220.droey65uq2ew3mzu@pengutronix.de> From: Linus Walleij Date: Thu, 16 Mar 2017 16:18:52 +0100 Message-ID: Subject: Re: [PATCH 4/4] tty/serial: sh-sci: remove uneeded IS_ERR_OR_NULL calls To: =?UTF-8?Q?Uwe_Kleine=2DK=C3=B6nig?= Cc: Geert Uytterhoeven , Richard Genoud , Greg Kroah-Hartman , Geert Uytterhoeven , Nicolas Ferre , Boris Brezillon , "linux-arm-kernel@lists.infradead.org" , "linux-serial@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Janusz Uzycki , "linux-gpio@vger.kernel.org" Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org On Mon, Mar 6, 2017 at 11:02 AM, Uwe Kleine-König wrote: > On Mon, Mar 06, 2017 at 10:53:27AM +0100, Geert Uytterhoeven wrote: >> On Mon, Mar 6, 2017 at 10:30 AM, Uwe Kleine-König >> > I wouldn't want to code this in each driver (something like: >> > >> > if (IS_ENABLED(GPIOLIB) || device_is_instantiated_by_dt(dev) || device_is_instantiated_by_acpi(dev)) >> > gpios = mctrl_gpio_init(...); >> > else >> > gpios = NULL; >> > >> > ). Putting this into GPIOLIB is the right approach, and so this is >> > another argument for HALFGPIOLIB. This would fix mctrl_gpio_init en >> > passant. >> >> Do we have platforms where DT=y || ACPI=y, but GPIOLIB=n? >> Ah, x86 ;-) > > Yeah, and I think rm -r arch/x86 won't be acceptable :-) I assume you > can also configure some arm or powerpc systems without GPIOLIB. > >> Anyway, for sh-sci.c, platforms either have DT and GPIOLIB, or they do not >> need mctrl-gpio. > > So we're in agreement now that HALFGPIOLIB is the way to go? > Linus, what do you think? OK modem lines over GPIO. So the problem is that GPIOLIB is needed (obviously) for mctrl_gpio_init() to work properly, and then there are some stubs in drivers/tty/serial/serial_mctrl_gpio.h for !GPIOLIB. And this whole discussion is all about that !GPIOLIB case really, whether DT, ACPI, SFI or board files machine data is used doesn't really matter. We're talking about: > git grep mctrl_gpio_init drivers/tty/serial/atmel_serial.c: atmel_port->gpios = mctrl_gpio_init(&atmel_port->uart, 0); drivers/tty/serial/clps711x.c: s->gpios = mctrl_gpio_init_noauto(&pdev->dev, 0); drivers/tty/serial/etraxfs-uart.c: up->gpios = mctrl_gpio_init_noauto(&pdev->dev, 0); drivers/tty/serial/imx.c: sport->gpios = mctrl_gpio_init(&sport->port, 0); drivers/tty/serial/mxs-auart.c: s->gpios = mctrl_gpio_init_noauto(dev, 0); drivers/tty/serial/sh-sci.c: sciport->gpios = mctrl_gpio_init(&sciport->port, 0); Atmel, ARM, ETRAX, ARM, ARM, Super-H, all have GPIOLIB. Right now no x86, correct? They actually all even do things like this in Kconfig: config SERIAL_ATMEL (...) select SERIAL_MCTRL_GPIO if GPIOLIB What stops us from removing all the stubs in drivers/tty/serial/serial_mctrl_gpio.h and just make SERIAL_MCTRL_GPIO depends on GPIOLIB? From 2ecc70acc510784d953add707f2a5acfebe484c2 Mon Sep 17 00:00:00 2001 From: Linus Walleij Date: Thu, 16 Mar 2017 16:18:21 +0100 Subject: [PATCH] stab at mctrl Signed-off-by: Linus Walleij --- drivers/tty/serial/Kconfig | 1 + drivers/tty/serial/serial_mctrl_gpio.h | 55 ---------------------------------- 2 files changed, 1 insertion(+), 55 deletions(-) #endif diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig index 6117ac8da48f..39833d009c18 100644 --- a/drivers/tty/serial/Kconfig +++ b/drivers/tty/serial/Kconfig @@ -1681,5 +1681,6 @@ endmenu config SERIAL_MCTRL_GPIO tristate + depends on GPIOLIB endif # TTY diff --git a/drivers/tty/serial/serial_mctrl_gpio.h b/drivers/tty/serial/serial_mctrl_gpio.h index fa000bcff217..ba8f8e531d56 100644 --- a/drivers/tty/serial/serial_mctrl_gpio.h +++ b/drivers/tty/serial/serial_mctrl_gpio.h @@ -40,8 +40,6 @@ enum mctrl_gpio_idx { */ struct mctrl_gpios; -#ifdef CONFIG_GPIOLIB - /* * Set state of the modem control output lines via GPIOs. */ @@ -101,57 +99,4 @@ void mctrl_gpio_enable_ms(struct mctrl_gpios *gpios); */ void mctrl_gpio_disable_ms(struct mctrl_gpios *gpios); -#else /* GPIOLIB */ - -static inline -void mctrl_gpio_set(struct mctrl_gpios *gpios, unsigned int mctrl) -{ -} - -static inline -unsigned int mctrl_gpio_get(struct mctrl_gpios *gpios, unsigned int *mctrl) -{ - return *mctrl; -} - -static inline unsigned int -mctrl_gpio_get_outputs(struct mctrl_gpios *gpios, unsigned int *mctrl) -{ - return *mctrl; -} - -static inline -struct gpio_desc *mctrl_gpio_to_gpiod(struct mctrl_gpios *gpios, - enum mctrl_gpio_idx gidx) -{ - return ERR_PTR(-ENOSYS); -} - -static inline -struct mctrl_gpios *mctrl_gpio_init(struct uart_port *port, unsigned int idx) -{ - return ERR_PTR(-ENOSYS); -} - -static inline -struct mctrl_gpios *mctrl_gpio_init_noauto(struct device *dev, unsigned int idx) -{ - return ERR_PTR(-ENOSYS); -} - -static inline -void mctrl_gpio_free(struct device *dev, struct mctrl_gpios *gpios) -{ -} - -static inline void mctrl_gpio_enable_ms(struct mctrl_gpios *gpios) -{ -} - -static inline void mctrl_gpio_disable_ms(struct mctrl_gpios *gpios) -{ -} - -#endif /* GPIOLIB */ -