Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp254753ybi; Fri, 24 May 2019 03:23:00 -0700 (PDT) X-Google-Smtp-Source: APXvYqzxys1sl+x2y6GCXfN6qN7yrDpPF4/Stg0ar1i9/YgB2T9lpPyPtAvAlttFV1ABj+b5oNiQ X-Received: by 2002:a17:902:9348:: with SMTP id g8mr62274609plp.174.1558693380282; Fri, 24 May 2019 03:23:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558693380; cv=none; d=google.com; s=arc-20160816; b=xfXAeJTpUxtl2yNgi0Osnt229fufvAXOv1FViBT4eJmzgAX1pM5C1TuJIXW1cAgZNs 2/MN2Vpyjdm/6S31yEos5iFC/k8usWscmzMwrYH8wU+lJa1WKrUXPQiHCxegdut+OcXK 6ljVi16LjqtLgp+eHlR6UnOTFvaLzUXeWx+OPw4fXyroF68hfViV+VEH2rX7QT9bU7wO cnCK2g/xQh9VD6jMsEVBkYgIQ4VogLt0OhXfU0jpQZ4X6FyF3lIreGxfwqLM2HnYlAvt N/JpflnJ7/BeMeThIY+wM4JnNqMb1yLIPcj4Yc5dVcr8BH/fqM2GEe56ouAR7+AUrpvN 8d4g== 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=jOdYhITJMGMq+jtQGDoklWCqu0QXpBjENUuiKagaPBE=; b=kHgbAHQr+29i2X5+yTXKquMSGtdbjYdBSKQtn4/gadG6sot5d/9k4wEqbGqmQUCK3y WdDUHGCh7snqgR/gJguKJZZwM2wBXF/BN3EVi0WIVoT/Q0tFTNH2a5mA95ht5j4hS2/d TAY5/mTYS8Tg7+biyAd/JJJL+q0WbKmcYNAk/bg26tSiH6O7udivofHVO7unNlE1IxXH kWbSBDv++PqQblb76VGwstPx1SWlNhw3VqQgYlYBn9WclJE1xbp5vTRVNaIT71m2FSIP IC9b5fk58mz0DNMo2lEPqm1TfiqrExeYn/tJmi10bwmsdklU15REmW8dEMi7c5KUEo8s 7Iuw== 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 k22si3302291pls.290.2019.05.24.03.22.45; Fri, 24 May 2019 03:23:00 -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 S2390377AbfEXKUG (ORCPT + 99 others); Fri, 24 May 2019 06:20:06 -0400 Received: from mga18.intel.com ([134.134.136.126]:27154 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389448AbfEXKUG (ORCPT ); Fri, 24 May 2019 06:20:06 -0400 X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 May 2019 03:20:05 -0700 X-ExtLoop1: 1 Received: from lahna.fi.intel.com (HELO lahna) ([10.237.72.157]) by fmsmga001.fm.intel.com with SMTP; 24 May 2019 03:20:02 -0700 Received: by lahna (sSMTP sendmail emulation); Fri, 24 May 2019 13:20:02 +0300 Date: Fri, 24 May 2019 13:20:02 +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 v2] serial: mctrl_gpio: Check if GPIO property exisits before requesting it Message-ID: <20190524102002.GT2781@lahna.fi.intel.com> References: <20190524094825.16151-1-sr@denx.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190524094825.16151-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 Fri, May 24, 2019 at 11:48:24AM +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