From patchwork Wed Dec 13 14:47:48 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hao Zhang X-Patchwork-Id: 847997 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-pwm-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="fV68nN9L"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yxfgy6KZGz9sPm for ; Thu, 14 Dec 2017 01:48:14 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753256AbdLMOsB (ORCPT ); Wed, 13 Dec 2017 09:48:01 -0500 Received: from mail-wm0-f68.google.com ([74.125.82.68]:46326 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753144AbdLMOr7 (ORCPT ); Wed, 13 Dec 2017 09:47:59 -0500 Received: by mail-wm0-f68.google.com with SMTP id r78so5526209wme.5; Wed, 13 Dec 2017 06:47:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:mime-version:content-disposition :user-agent; bh=HRAIdik8VUlJFLYUPG5xTYHND4f2ND0ZFkJZFWbYJ5A=; b=fV68nN9LxR9xfPS27DF3sPUgXVWQG6T6uktlNeTzq8XCcX113TOfZcnk+1mG30HZKE +J5TeSbCv/Kz1d+nP90bnb60YSVl8DzN8zi9HPLQ4CN+73JuUcZSlUGJLiclJLasFSTy lXjeX7LB2lhWSpENQN8slFriFauxDlZramn7RT/ulGqMfD4nLJfjkrZaDL6LiPl+aGzA RfvROYvTGy20A8Gy8XjmHGQpKArXP/0C73Q+x10Si5ykIhqEB59ng7tcq55w3aamwdxV Xi99eonSceRH+okLt7alG2ubPvssk3VV6NFQEyznmFfkEae9JLyj8dRmuCghYQSPkr51 /bIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-disposition:user-agent; bh=HRAIdik8VUlJFLYUPG5xTYHND4f2ND0ZFkJZFWbYJ5A=; b=Wd3LrZ4rgokRTs8zeQFXZa8hIpLKKSuo7B/gmUVF1Ngpl6yjjz0k8tHO6ep+OEw35d JDsXBikA6wqOCJ0ybanPgUdCxFfCSFbczUX7kG0HN3+8fg5AcnFVZIT5SMsNPqN8TaU1 8X5AfdxBKipp3/rxwbqLYKzG3PqLyYF830upWI9siItzH06LUJoKc30Wj/bNbv2VbALW LricZ1NQ2ykZWJRHbwQgzhAVsuxRFtUyte3MpyIXAtceFZeY3VVmhpV1ma/X3yRbcFA4 hPajM2FTN/JVGdkyxRGq4ZCvZmr5fwWs1+iADITa3vYKL3uipQGoPi8028kl1/h0XSDY vgEA== X-Gm-Message-State: AKGB3mJmOZI1JXW29xUnhxUpKD9TnJujXD+4l1+zoSavdfHIOJr4aXpC 75XYHuCnQC7b3sr/fosPK4A= X-Google-Smtp-Source: ACJfBotqKdAgpKsp+IYjiqZzcs93L2QtGWssICuGZp/Jg2DRMGzfU2lY0iDGuJ3N8ufjo+Su/kWczw== X-Received: by 10.80.170.24 with SMTP id o24mr8327354edc.40.1513176478171; Wed, 13 Dec 2017 06:47:58 -0800 (PST) Received: from arx-s1 ([79.124.8.2]) by smtp.gmail.com with ESMTPSA id v15sm1493895edb.41.2017.12.13.06.47.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Dec 2017 06:47:57 -0800 (PST) Date: Wed, 13 Dec 2017 22:47:48 +0800 From: hao_zhang To: thierry.reding@gmail.com, robh+dt@kernel.org, mark.rutland@arm.com, linux@armlinux.org.uk, wens@csie.org, linus.walleij@linaro.org, maxime.ripard@free-electrons.com Cc: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pwm@vger.kernel.org, linux-amlogic@lists.infradead.org, hao5781286@gmail.com Subject: [PATCH v4 4/4] ARM: pinctrl: sunxi-pinctrl: fix pin funtion can not be match correctly. Message-ID: <20171213144748.GA18267@arx-s1> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-pwm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pwm@vger.kernel.org Pin function can not be match correctly when SUNXI_PIN describe with mutiple variant and same function. such as: on pinctrl-sun4i-a10.c SUNXI_PIN(SUNXI_PINCTRL_PIN(B, 2), SUNXI_FUNCTION(0x0, "gpio_in"), SUNXI_FUNCTION(0x1, "gpio_out"), SUNXI_FUNCTION_VARIANT(0x2, "pwm", /* PWM0 */ PINCTRL_SUN4I_A10 | PINCTRL_SUN7I_A20), SUNXI_FUNCTION_VARIANT(0x3, "pwm", /* PWM0 */ PINCTRL_SUN8I_R40)), it would always match to the first variant function (PINCTRL_SUN4I_A10, PINCTRL_SUN7I_A20) so we should add variant compare on it. Signed-off-by: hao_zhang Acked-by: Maxime Ripard --- drivers/pinctrl/sunxi/pinctrl-sunxi.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c index 4b6cb25..f23e74e 100644 --- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c +++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c @@ -83,9 +83,11 @@ sunxi_pinctrl_desc_find_function_by_name(struct sunxi_pinctrl *pctl, struct sunxi_desc_function *func = pin->functions; while (func->name) { - if (!strcmp(func->name, func_name)) + if (!strcmp(func->name, func_name)) { + if (!(func->variant) || + (func->variant & pctl->variant)) return func; - + } func++; } }