Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752079AbcCVTmh (ORCPT ); Tue, 22 Mar 2016 15:42:37 -0400 Received: from metis.ext.4.pengutronix.de ([92.198.50.35]:52269 "EHLO metis.ext.4.pengutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751352AbcCVTmf (ORCPT ); Tue, 22 Mar 2016 15:42:35 -0400 Date: Tue, 22 Mar 2016 20:42:24 +0100 From: Uwe =?iso-8859-1?Q?Kleine-K=F6nig?= To: Sebastian Frias Cc: Daniel Mack , "David S. Miller" , netdev@vger.kernel.org, lkml , mason , Florian Fainelli , Mans Rullgard , Fabio Estevam , Martin Blumenstingl , Linus Walleij Subject: Re: [PATCH] net: phy: at803x: don't depend on GPIOLIB Message-ID: <20160322194224.GF6191@pengutronix.de> References: <56E99727.9040702@laposte.net> <20160318125455.GN4292@pengutronix.de> <56EC2525.8000706@laposte.net> <20160318191242.GQ4292@pengutronix.de> <56EFEDAD.9030903@laposte.net> <20160321135457.GX4292@pengutronix.de> <56F0150F.8080804@laposte.net> <20160321201229.GA6191@pengutronix.de> <56F157EF.5080307@laposte.net> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <56F157EF.5080307@laposte.net> User-Agent: Mutt/1.5.23 (2014-03-12) X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::c0 X-SA-Exim-Mail-From: ukl@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1476 Lines: 46 Hello Sebastian, On Tue, Mar 22, 2016 at 03:34:23PM +0100, Sebastian Frias wrote: > I think we are in a deadlock :-) > I'm going to reply inline below, but I will also send a different email > to Daniel with a small recap. > I think he should share the intent of the "reset" mechanism he > introduced, in particular if it is mandatory. The things I said in my mail are valid in general, not only for the at803x phy. Let me repeat them once more: Preconditions: - Some of the devices a given driver handles have a reset line and others don't. - A non-empty subset (maybe all) of the devices that have a reset line require that this reset line is used. Then the way to handle this in the driver should be done as follows: unless reset_handling_not_necessary(): gpio = gpiod_get_optional("reset") if IS_ERR(gpio): return PTR_ERR(gpio) Checking for -ENOSYS or GPIOLIB=n is not allowed because the device you're currently handling might need the GPIO, so you must not continue without the ability to control the line. So the options you have (as you have a phy that doesn't need the reset handling): - enable GPIOLIB (either in your .config or introduce a Kconfig dependency) - improve reset_handling_not_necessary() to return true for your case There is nothing else. Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ |