Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp4817585ybi; Tue, 28 May 2019 03:03:41 -0700 (PDT) X-Google-Smtp-Source: APXvYqxqjjPPDHXmfLJVrpaR5phRFNFhFuDau+C93LebxbTpeXGacoQky2aLI2u7xZS6eTqW8iuz X-Received: by 2002:aa7:864e:: with SMTP id a14mr27331664pfo.132.1559037821339; Tue, 28 May 2019 03:03:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559037821; cv=none; d=google.com; s=arc-20160816; b=jTsvDvF86WxVB2/9/DIU2N6S9qikkVtTKZFWiFTpIAr0EMKnSZxEWkji05IN8+2qmq J660BWse/lm+gq9pGXd7C16ZIEFYlHr1eoIAYjM0O79YEwkwvYmi3jm2yi86gRUitU35 FgDPcw5Nc+2qudKb5SoqUGuKSoJKg1Muo9+wqfHkWy+ybz3nj8VNrNNhox4QjSNmFZoA bXRk4w1S9gDDjm/Rcb/zRN28gWH3S0tujZSei5RKzJf/Tqh6g6+HXGpoc4ANp9Ve4KdE geoGvbwvuxpojUfaFt7Xd2IiAoah6Ke6hbl+sEqtKTV1frYcySeYuzO7ShE5KKJXOAGZ HtMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:organization:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=le2AjBqKjTN9hObrWjNN+OAHnesRqYsg4HRIivSiT0s=; b=dBXFUFVhy5lzvApleRRxilUXiSi7X0inFjZeesxh+bmbrYslC0Hv76satbyGsrZ3oa r22ytVVBhff1QUL7uPZ2dNOSoEN4JKImTyNqWUOvJ50DXAF5YJhOsH0cHhoazU5NiXYF XEQbucEg0WzNN4hwEA6owKctww6+1daHdu1yQF9EPLc6HGnRrXr+RfzMvLJYDHAj74SP NmPM96DFS9+NCyKhVCP4OrdPefjuk+xiv3CbVWhUAKkrUbvadlXf1GT9O5ymWDULi9jL OIyoDs72LnSZWp4joD1y/oXvTSJnbzKFbnkE1qZiGSOswKdeHQh+aPYVNdLCnsDI546r mJSw== ARC-Authentication-Results: i=1; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z12si20178530pgl.467.2019.05.28.03.03.23; Tue, 28 May 2019 03:03:41 -0700 (PDT) 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726574AbfE1KAq (ORCPT + 99 others); Tue, 28 May 2019 06:00:46 -0400 Received: from mga03.intel.com ([134.134.136.65]:9963 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726282AbfE1KAq (ORCPT ); Tue, 28 May 2019 06:00:46 -0400 X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 May 2019 03:00:45 -0700 X-ExtLoop1: 1 Received: from lahna.fi.intel.com (HELO lahna) ([10.237.72.157]) by fmsmga001.fm.intel.com with SMTP; 28 May 2019 03:00:42 -0700 Received: by lahna (sSMTP sendmail emulation); Tue, 28 May 2019 13:00:42 +0300 Date: Tue, 28 May 2019 13:00:42 +0300 From: Mika Westerberg To: Stefan Roese Cc: linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Shevchenko , Yegor Yefremov , Greg Kroah-Hartman , Giulio Benetti Subject: Re: [PATCH 1/2 v3] serial: mctrl_gpio: Check if GPIO property exisits before requesting it Message-ID: <20190528100042.GT2781@lahna.fi.intel.com> References: <20190527111805.876-1-sr@denx.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190527111805.876-1-sr@denx.de> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo User-Agent: Mutt/1.11.4 (2019-03-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, May 27, 2019 at 01:18:04PM +0200, Stefan Roese wrote: > This patch adds a check for the GPIOs property existence, before the > GPIO is requested. This fixes an issue seen when the 8250 mctrl_gpio > support is added (2nd patch in this patch series) on x86 platforms using > ACPI. > > Here Mika's comments from 2016-08-09: > > " > I noticed that with v4.8-rc1 serial console of some of our Broxton > systems does not work properly anymore. I'm able to see output but input > does not work. > > I bisected it down to commit 4ef03d328769eddbfeca1f1c958fdb181a69c341 > ("tty/serial/8250: use mctrl_gpio helpers"). > > The reason why it fails is that in ACPI we do not have names for GPIOs > (except when _DSD is used) so we use the "idx" to index into _CRS GPIO > resources. Now mctrl_gpio_init_noauto() goes through a list of GPIOs > calling devm_gpiod_get_index_optional() passing "idx" of 0 for each. The > UART device in Broxton has following (simplified) ACPI description: > > Device (URT4) > { > ... > Name (_CRS, ResourceTemplate () { > GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, > "\\_SB.GPO0", 0x00, ResourceConsumer) > { > 0x003A > } > GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly, > "\\_SB.GPO0", 0x00, ResourceConsumer) > { > 0x003D > } > }) > > In this case it finds the first GPIO (0x003A which happens to be RX pin > for that UART), turns it into GPIO which then breaks input for the UART > device. This also breaks systems with bluetooth connected to UART (those > typically have some GPIOs in their _CRS). > > Any ideas how to fix this? > > We cannot just drop the _CRS index lookup fallback because that would > break many existing machines out there so maybe we can limit this to > only DT enabled machines. Or alternatively probe if the property first > exists before trying to acquire the GPIOs (using > device_property_present()). > " > > This patch implements the fix suggested by Mika in his statement above. > > Signed-off-by: Stefan Roese > Cc: Mika Westerberg Reviewed-by: Mika Westerberg