From patchwork Mon Nov 27 10:48:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841622 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="pI5gFzzc"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylkNk1MMwz9rxl for ; Mon, 27 Nov 2017 22:00:38 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752335AbdK0KtQ (ORCPT ); Mon, 27 Nov 2017 05:49:16 -0500 Received: from mail-wm0-f68.google.com ([74.125.82.68]:33253 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752281AbdK0KtK (ORCPT ); Mon, 27 Nov 2017 05:49:10 -0500 Received: by mail-wm0-f68.google.com with SMTP id g130so27730228wme.0 for ; Mon, 27 Nov 2017 02:49:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=3ja8Nauw/5Qy809DFghOJuWYy567NCFd6hkMuMlqjZ8=; b=pI5gFzzcxLsDh5nBTmOwCz7x6Gz8NoNvqbezwcxuVlGGuOWzvpNzPnJFIq/5LpknQW HePquWhXcEKsPxuWYsTy0S+fb9KNVbwk73Yta+9kM3M1wTNG5T/ZI+nbHVo1/OGHKzc4 fv8TZK3gn7ZVmiNm1wkHeat07S4Cc6cRTi9I/Yzpslg4qHpFXxuEZVYdpARKNrjuYO/K 4zN4GuWZIvYmLmHdU9AWugI1F6qwGQ/zANS1yVM0CWJ0mCmGgrpAMXTuItxCbD/ZhBnU /auGNGPevyyET5ILZ6+wCCZJFLXqV7iOyJa22Kh4pRvUKeqWy3a3swkW3TcLYWANS7nR 56Bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=3ja8Nauw/5Qy809DFghOJuWYy567NCFd6hkMuMlqjZ8=; b=oy1nNUJKcd+OeaL2tu1TcjxbVdJXL5AVu+qHwe/E6PJow/sO9+KcxYptqSXKCcvfMI S1poCAf9v8pns9geeKgzEHDtoeBkMRwA2biGNqbs//F0KTxZ0lurBWYWJWgHjnZwlNSi ipgbBnbRk7+8fHs9KLmY0oPnMiB5ec+RQ93kLIPImqxuMRzpfEiKTZ/MLOGSwSLTbJXD JQk2+OZx4ITNd8nGBgaajd/o9GESxH79fG5FqYkkcMDeBLqGpVKY1fEXNieqKoJZgKuS 6WdkRdjtrnk4X1BtxZmMtcZw9Qt4VpBqy3bQvz5cIT4NIcUrcrAq1rFDROeEDhNqNiqq QSRg== X-Gm-Message-State: AJaThX5aet8ujTOEJlC0CgY2zFnbci8Zlm3YfHJeefFe+mOj/xmWjR7O WcHXO9jzzTK3URfsS3ADMX1J/A== X-Google-Smtp-Source: AGs4zMblXfSazUbktFdU7i69V25D8v08gOWRO96Yv6XPsqI+t6j8Vtsd3x9Bi1aaHZP5ijPzSyBDLg== X-Received: by 10.28.101.11 with SMTP id z11mr14142294wmb.110.1511779749312; Mon, 27 Nov 2017 02:49:09 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:08 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 01/18] gpio: mockup: add missing prefixes Date: Mon, 27 Nov 2017 11:48:37 +0100 Message-Id: <20171127104854.333-2-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Add the gpio_mockup_ prefix to the remaining symbols that still don't have it, so that the entire driver code is consistent. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index 9532d86a82f7..d21c6d651287 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -327,8 +327,9 @@ static struct platform_driver gpio_mockup_driver = { .probe = gpio_mockup_probe, }; -static struct platform_device *pdev; -static int __init mock_device_init(void) +static struct platform_device *gpio_mockup_pdev; + +static int __init gpio_mockup_init(void) { int err; @@ -337,34 +338,34 @@ static int __init mock_device_init(void) pr_err("%s: error creating debugfs directory\n", GPIO_MOCKUP_NAME); - pdev = platform_device_alloc(GPIO_MOCKUP_NAME, -1); - if (!pdev) + gpio_mockup_pdev = platform_device_alloc(GPIO_MOCKUP_NAME, -1); + if (!gpio_mockup_pdev) return -ENOMEM; - err = platform_device_add(pdev); + err = platform_device_add(gpio_mockup_pdev); if (err) { - platform_device_put(pdev); + platform_device_put(gpio_mockup_pdev); return err; } err = platform_driver_register(&gpio_mockup_driver); if (err) { - platform_device_unregister(pdev); + platform_device_unregister(gpio_mockup_pdev); return err; } return 0; } -static void __exit mock_device_exit(void) +static void __exit gpio_mockup_exit(void) { debugfs_remove_recursive(gpio_mockup_dbg_dir); platform_driver_unregister(&gpio_mockup_driver); - platform_device_unregister(pdev); + platform_device_unregister(gpio_mockup_pdev); } -module_init(mock_device_init); -module_exit(mock_device_exit); +module_init(gpio_mockup_init); +module_exit(gpio_mockup_exit); MODULE_AUTHOR("Kamlakant Patel "); MODULE_AUTHOR("Bamvor Jian Zhang "); From patchwork Mon Nov 27 10:48:38 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841620 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="mMr9j4a5"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylkNH6bXpz9sRg for ; Mon, 27 Nov 2017 22:00:15 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751845AbdK0KtR (ORCPT ); Mon, 27 Nov 2017 05:49:17 -0500 Received: from mail-wr0-f196.google.com ([209.85.128.196]:46875 "EHLO mail-wr0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752285AbdK0KtL (ORCPT ); Mon, 27 Nov 2017 05:49:11 -0500 Received: by mail-wr0-f196.google.com with SMTP id r2so19487422wra.13 for ; Mon, 27 Nov 2017 02:49:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=1+VwbM+yiVlFSlcfnB4t1tGC7fe8bpmAEKZP7ThnISI=; b=mMr9j4a5+owRQuxpxjILQBvyhKmBu3SykY+Ju2Ck8M5E4MTF4/GsLwxACr+tccUpEd 5fwNGrKHpmuu9DvniAkECu9X3qJ8+XECvKL7S8eiwN6XJVU1akdTGFrISZZbSToLqTQz D/V2mgyQ4NWuNDnOXISXj6/oitcUDC0F0Cfq5sIabt4/W7OGqBQH5phFGTcY5RudJfO9 yTK4Gngj7iVpxD1jGf8seEuugBnTRTsihXm5W4qEa+EQsy1A8nOOSDNe03bJHhtEgR9G FnXJM9YuXmZriKU2KuZVNy8HGWMBkUpYhoUKonHThlymWss+IV3tUs9r4NdwIv+pbYGh qn1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=1+VwbM+yiVlFSlcfnB4t1tGC7fe8bpmAEKZP7ThnISI=; b=lfmoGHQMUHsI0QqRqSeoDCmpFZsXqHCvEfD2brV1rdyTi5UF2dvQKRe0it3vMUhBu3 O98I3B5SdWim738xj4rSdu7SXpr5Xc03d2fUwgAqyp4R1nuSkofpkkPwLQcZCUUaM/ah PCiCjnDNsTZ8PiW3YWCzNiKgcMo8UsD956jTWMk6NBwgp5RFjb/D40brP4N2+SEtQJMv 068GHcy3zmONfxRE02LWipwgR7q61fXIdbK1ivckQQ3CiUgKiUZA/t8p8ck2oaWI4hVN IjbFGVSepnj7D7WK8wSjV8pwLs6qdpkICzzP5qECZJi8jMSCfTgU+qr64oIv56kphNw4 Z/jA== X-Gm-Message-State: AJaThX5dOEhTSkxRgOmfjETjAzHZGHlGrIEVAhC10tkfKUb6Um0/U5SZ wHiet9x3GoDs0bgWMzUfa/PV7A== X-Google-Smtp-Source: AGs4zMbV5jecAmRY4K45bLtV2FsjsuRVg6wupJybpW1/sGOttPAOmzET7OHedb48/MuaiPxal36o5Q== X-Received: by 10.223.187.3 with SMTP id r3mr30037632wrg.34.1511779750636; Mon, 27 Nov 2017 02:49:10 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:09 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 02/18] gpio: mockup: parse the module params in init, not probe Date: Mon, 27 Nov 2017 11:48:38 +0100 Message-Id: <20171127104854.333-3-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org If the module parameters are invalid, we should bail out from the init function instead of detecting it during the device probe. That way we don't even allow the user to load the module if we don't accept the arguments. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index d21c6d651287..b70f3b0c30b1 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -275,9 +275,6 @@ static int gpio_mockup_probe(struct platform_device *pdev) struct gpio_mockup_chip *chips; char *chip_name; - if (gpio_mockup_params_nr < 2 || (gpio_mockup_params_nr % 2)) - return -EINVAL; - /* Each chip is described by two values. */ num_chips = gpio_mockup_params_nr / 2; @@ -333,6 +330,9 @@ static int __init gpio_mockup_init(void) { int err; + if (gpio_mockup_params_nr < 2 || (gpio_mockup_params_nr % 2)) + return -EINVAL; + gpio_mockup_dbg_dir = debugfs_create_dir("gpio-mockup-event", NULL); if (!gpio_mockup_dbg_dir) pr_err("%s: error creating debugfs directory\n", From patchwork Mon Nov 27 10:48:39 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841623 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="ha7VYKx+"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylkNr33RBz9rxl for ; Mon, 27 Nov 2017 22:00:44 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752374AbdK0LAm (ORCPT ); Mon, 27 Nov 2017 06:00:42 -0500 Received: from mail-wr0-f195.google.com ([209.85.128.195]:46028 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752292AbdK0KtM (ORCPT ); Mon, 27 Nov 2017 05:49:12 -0500 Received: by mail-wr0-f195.google.com with SMTP id a63so25905178wrc.12 for ; Mon, 27 Nov 2017 02:49:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=y1vyqEmyevhQFXaBXGs4ukyCBwCueVdK2XuNnaXymKM=; b=ha7VYKx+TyqOuphATLF8lNDRuMzux3FvYm0U99FqMM3VBgc1GDaQ4ZQjCqtOZdNbSG tiyyjhLcF12ScvrIlMu+YAcHIbtgttI9tKt6drU0K5PqyDwhM+rXcXCNN+LGQxSJAyJ/ Jv56lDUbxOOH+JeSxfGjaShnowEq9K+l12jTFTzSP9t1SPUHd09KCLCTdmToMt+EVBe/ U6yauoKRYOWiXZpBrVAFCGEQ2LocHBfuYQuI5cKXDHbSIu/CDeF2IYOz+igQnophLwkf EinTno9P91k93sHEI+7GLytfN+B2YnhA2JJjTNHCnfDvWBOqByHBkmo+AIaa9uAsg0I5 2rrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=y1vyqEmyevhQFXaBXGs4ukyCBwCueVdK2XuNnaXymKM=; b=t1xSVIeZfKPz79IFRVUYH6s17RVCACOgfTh79Ux0RNGpKedzvXM2rObYTgfCPyvFU0 GrvvBAJfrVCCLrFMnGzEidyGarJszDN6xjhcEAJyPJ9OWF6/dtxWKIYWOixuS++1/ISf 1Hn/EIuOdq8lpsDTBGdHMODU7eIaf1a8l2i3C0sMfqeJEVWtFgozk7sFsjEU1OOz6CdX W46XqubCHQCwQYRQE8HCSiEAKYju0QK+xLi6ocprbDTRnW06ktb2fEOHFs1i4N9RxTo8 5IEpD4ZWElZtHMeHz1zEq6/tmIDM8TWVHvwh55dQTUKVnCorI7oM/99GkLIu0WPEnnTx 7ZZg== X-Gm-Message-State: AJaThX6jW1gWeY9mOqj3+rkwjuqbiKgGZKt91XlHCQJI6rsXRiR76dEM oVoT4SIfVdFARpDn6it980tYvw== X-Google-Smtp-Source: AGs4zMa13bdYwawt+CLj20ei+US9Q6VxrWGf5lFlx2KB/EUGw1OnPNBjt/lLocXO7jcsmxOkt+9nCQ== X-Received: by 10.223.163.11 with SMTP id c11mr25526501wrb.214.1511779751655; Mon, 27 Nov 2017 02:49:11 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:11 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 03/18] gpio: mockup: verify the number of GPIO chips requested Date: Mon, 27 Nov 2017 11:48:39 +0100 Message-Id: <20171127104854.333-4-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org The number of supported mockup chips is limited. Check this limit when parsing the module parameters. Also: make sure that each chip is described with a pair. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index b70f3b0c30b1..0a269cbe197c 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -330,7 +330,9 @@ static int __init gpio_mockup_init(void) { int err; - if (gpio_mockup_params_nr < 2 || (gpio_mockup_params_nr % 2)) + if ((gpio_mockup_params_nr < 2) || + (gpio_mockup_params_nr % 2) || + (gpio_mockup_params_nr > GPIO_MOCKUP_MAX_RANGES)) return -EINVAL; gpio_mockup_dbg_dir = debugfs_create_dir("gpio-mockup-event", NULL); From patchwork Mon Nov 27 10:48:40 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841625 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="Q0YFfFUr"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylkPW2Txxz9rxl for ; Mon, 27 Nov 2017 22:01:19 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752612AbdK0LAl (ORCPT ); Mon, 27 Nov 2017 06:00:41 -0500 Received: from mail-wr0-f194.google.com ([209.85.128.194]:35230 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752301AbdK0KtO (ORCPT ); Mon, 27 Nov 2017 05:49:14 -0500 Received: by mail-wr0-f194.google.com with SMTP id w95so25982438wrc.2 for ; Mon, 27 Nov 2017 02:49:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=8O67hYk1twKmYp2KZHAP3bj5z014X999Kd7KFbgdzNg=; b=Q0YFfFUryLBnho0CcFixqVjY+PBL2PbqRRRq44iO2GtxzpsQSWDzVqA4aYB5dqmBHp goAZublV6wDytTZ4jMHpsrUgexjoLDJJNglB+EriF7Tl78RKXH/LUPbTxFWuZbxXwHFb 5zHVVMNuKxXqOR7CxxifYD5JVTWd3upR8nnRwHKWS/ToBBQ38AufJ67v+iTk4w62RgHx pM1yzrcuWm+FIbMZjXYPa9DArs+t0t3ySu8OzIYIRvU3//f06d8M/dcrnz3LPRc9cDAQ 4mGuFwnqTr5MzzLJ4nozw2+8BhOCmY10Hqe0JExE4XZNi1QyJA9C564be/G8gvSnJrLR Th6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=8O67hYk1twKmYp2KZHAP3bj5z014X999Kd7KFbgdzNg=; b=H2LtZaTCAGxrOmdrTRkhASedsO/zIfuf3Jw9dTiJaT9ZzfT8L8JCEoChrhr20zM5Kf pUx4J/ag96xSoKmnUzUfjU7w8laA/VIwSFwofnhIml79SKYf0guOB/WH6cB8syrmNvAg PdtbOle7veKWLzkKp8GURDNLrjd7X5Gmm8VLQPdQcWuxPlpUPW3b+yvhelbr2qAUAQsZ +77eduMZdrShukWynPWZB6HNh+LhXsHKch81Tp2Pbo0CwQzpfd+0unii5y81Dz6aiodL j9gP58izQaHOEYFSc5blm9KEQuKtElJXQq26HFPATiaeP/6c7PQexpY/e0fgK22hE0yP F2Lg== X-Gm-Message-State: AJaThX5J9b6XyyBoJMOHryOZA0qWgIodVoA2tKQMtmvHRiC4QOrUgViM bnQjsEoH4nI+ZLBS6QL25K4CEw== X-Google-Smtp-Source: AGs4zMY0xFcweiMJI6gMsdRXltalYGwaghkHeOeLNRedT9uUQJIPquN22hvuxXs0pDNmPCXRqPhcwA== X-Received: by 10.223.133.4 with SMTP id 4mr22341589wrh.65.1511779752742; Mon, 27 Nov 2017 02:49:12 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:12 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 04/18] gpio: mockup: rework device probing Date: Mon, 27 Nov 2017 11:48:40 +0100 Message-Id: <20171127104854.333-5-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org We currently create a single platform device in init and then parse the configuration passed to us via module parameters in probe() before creating GPIO chips and registering them with the gpiolib framework. The relation between platform devices and mockup chips should be 1:1. Create a separate platform device for each mockup chip using convenient helpers (platform_device_register_resndata()). Pass a platform data structure to probe() in which the configuration (GPIO base, number of lines, chip index) extracted from the module params is stored. Make probe() create a single mockup chip for every platform device. This approach has several advantages: - we only parse the module parameters in init() and can bail out before attaching any device if the input is invalid (currently we would have to examine kernel logs), - we'll get notified by the device framework about errors in probe() for specific chips, - probe() gets simplified and only does what it's supposed to. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 122 ++++++++++++++++++++++++++------------------- 1 file changed, 71 insertions(+), 51 deletions(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index 0a269cbe197c..5ba8f2089de8 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -62,6 +62,12 @@ struct gpio_mockup_dbgfs_private { int offset; }; +struct gpio_mockup_platform_data { + int base; + int ngpio; + int index; +}; + static int gpio_mockup_ranges[GPIO_MOCKUP_MAX_RANGES]; static int gpio_mockup_params_nr; module_param_array(gpio_mockup_ranges, int, &gpio_mockup_params_nr, 0400); @@ -70,7 +76,6 @@ static bool gpio_mockup_named_lines; module_param_named(gpio_mockup_named_lines, gpio_mockup_named_lines, bool, 0400); -static const char gpio_mockup_name_start = 'A'; static struct dentry *gpio_mockup_dbg_dir; static int gpio_mockup_get(struct gpio_chip *gc, unsigned int offset) @@ -270,48 +275,32 @@ static int gpio_mockup_add(struct device *dev, static int gpio_mockup_probe(struct platform_device *pdev) { - int ret, i, base, ngpio, num_chips; - struct device *dev = &pdev->dev; - struct gpio_mockup_chip *chips; - char *chip_name; + struct gpio_mockup_platform_data *pdata; + struct gpio_mockup_chip *chip; + int rv, base, ngpio; + struct device *dev; + char *name; - /* Each chip is described by two values. */ - num_chips = gpio_mockup_params_nr / 2; + dev = &pdev->dev; + pdata = dev_get_platdata(dev); + base = pdata->base; + ngpio = pdata->ngpio; - chips = devm_kcalloc(dev, num_chips, sizeof(*chips), GFP_KERNEL); - if (!chips) + chip = devm_kzalloc(dev, sizeof(*chip), GFP_KERNEL); + if (!chip) return -ENOMEM; - platform_set_drvdata(pdev, chips); - - for (i = 0; i < num_chips; i++) { - base = gpio_mockup_ranges[i * 2]; - - if (base == -1) - ngpio = gpio_mockup_ranges[i * 2 + 1]; - else - ngpio = gpio_mockup_ranges[i * 2 + 1] - base; - - if (ngpio >= 0) { - chip_name = devm_kasprintf(dev, GFP_KERNEL, - "%s-%c", GPIO_MOCKUP_NAME, - gpio_mockup_name_start + i); - if (!chip_name) - return -ENOMEM; - - ret = gpio_mockup_add(dev, &chips[i], - chip_name, base, ngpio); - } else { - ret = -EINVAL; - } - - if (ret) { - dev_err(dev, - "adding gpiochip failed: %d (base: %d, ngpio: %d)\n", - ret, base, base < 0 ? ngpio : base + ngpio); + name = devm_kasprintf(dev, GFP_KERNEL, "%s-%c", + pdev->name, pdata->index); + if (!name) + return -ENOMEM; - return ret; - } + rv = gpio_mockup_add(dev, chip, name, base, ngpio); + if (rv) { + dev_err(dev, + "adding gpiochip failed (base: %d, ngpio: %d)\n", + base, base < 0 ? ngpio : base + ngpio); + return rv; } return 0; @@ -324,36 +313,67 @@ static struct platform_driver gpio_mockup_driver = { .probe = gpio_mockup_probe, }; -static struct platform_device *gpio_mockup_pdev; +static struct platform_device *gpio_mockup_pdevs[GPIO_MOCKUP_MAX_GC]; + +static void gpio_mockup_unregister_pdevs(void) +{ + struct platform_device *pdev; + int i; + + for (i = 0; i < GPIO_MOCKUP_MAX_GC; i++) { + pdev = gpio_mockup_pdevs[i]; + + if (pdev) + platform_device_unregister(pdev); + } +} static int __init gpio_mockup_init(void) { - int err; + int i, num_chips, err = 0, index = 'A'; + struct gpio_mockup_platform_data pdata; + struct platform_device *pdev; if ((gpio_mockup_params_nr < 2) || (gpio_mockup_params_nr % 2) || (gpio_mockup_params_nr > GPIO_MOCKUP_MAX_RANGES)) return -EINVAL; + /* Each chip is described by two values. */ + num_chips = gpio_mockup_params_nr / 2; + gpio_mockup_dbg_dir = debugfs_create_dir("gpio-mockup-event", NULL); if (!gpio_mockup_dbg_dir) pr_err("%s: error creating debugfs directory\n", GPIO_MOCKUP_NAME); - gpio_mockup_pdev = platform_device_alloc(GPIO_MOCKUP_NAME, -1); - if (!gpio_mockup_pdev) - return -ENOMEM; - - err = platform_device_add(gpio_mockup_pdev); + err = platform_driver_register(&gpio_mockup_driver); if (err) { - platform_device_put(gpio_mockup_pdev); + pr_err("%s: error registering platform driver\n", + GPIO_MOCKUP_NAME); return err; } - err = platform_driver_register(&gpio_mockup_driver); - if (err) { - platform_device_unregister(gpio_mockup_pdev); - return err; + for (i = 0; i < num_chips; i++) { + pdata.index = index++; + pdata.base = gpio_mockup_ranges[i * 2]; + pdata.ngpio = pdata.base < 0 + ? gpio_mockup_ranges[i * 2 + 1] + : gpio_mockup_ranges[i * 2 + 1] - pdata.base; + + pdev = platform_device_register_resndata(NULL, + GPIO_MOCKUP_NAME, + i, NULL, 0, &pdata, + sizeof(pdata)); + if (!pdev) { + pr_err("%s: error registering device", + GPIO_MOCKUP_NAME); + platform_driver_unregister(&gpio_mockup_driver); + gpio_mockup_unregister_pdevs(); + return -ENOMEM; + } + + gpio_mockup_pdevs[i] = pdev; } return 0; @@ -363,7 +383,7 @@ static void __exit gpio_mockup_exit(void) { debugfs_remove_recursive(gpio_mockup_dbg_dir); platform_driver_unregister(&gpio_mockup_driver); - platform_device_unregister(gpio_mockup_pdev); + gpio_mockup_unregister_pdevs(); } module_init(gpio_mockup_init); From patchwork Mon Nov 27 10:48:41 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841626 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="BtxBegYL"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylkPZ5w1Gz9rxl for ; Mon, 27 Nov 2017 22:01:22 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751867AbdK0LAk (ORCPT ); Mon, 27 Nov 2017 06:00:40 -0500 Received: from mail-wm0-f65.google.com ([74.125.82.65]:41107 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752316AbdK0KtP (ORCPT ); Mon, 27 Nov 2017 05:49:15 -0500 Received: by mail-wm0-f65.google.com with SMTP id b189so33107890wmd.0 for ; Mon, 27 Nov 2017 02:49:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=6zJa1gJiorS1ATP2wh2zcI33fU0VuaXr9zzEAFFzDoo=; b=BtxBegYLOxYACIPOTm1QJ+wdYFAWEQmUVLLluoCOSMTQkia3QYeL3eMnqyHgYGwSkP SVx9OGz9rPYYPhb2fUeLxbHEqtevgJzZK2tN/GXnWTECCqJ5/v++1AnovZfSLKB7hDmp rKdWX6eWjyenDPrc44bAWzuVItLe/4Ixzh04OkzZBG7SriSyUEE/57ub0REH3iDkK0ta GHrNQWKufdZ1OMZxV4qwyaUzI/IO2yAULOLHOCoDb1uQa33LCsTDzAgg6IfKzGWF1xLW wSzSoxNjIfyefP9pvw7G+N0DKZiaQksdgpQV3KQGHdYXODY4QdroejASK+Bds3TRSqsD lyjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=6zJa1gJiorS1ATP2wh2zcI33fU0VuaXr9zzEAFFzDoo=; b=Tsju2DjYVQ6wQfuuzZx1wxB8M2nCdcGgKPUSWkH0D82Ix8RspEjgHJ5DRYY1fmJ5b4 uGdzpJbs4HJ49PRzOyoLp9iclMMuv3hpW23kqH2BTRd3OpRrj0gj4Qz9+qI8jd+OOxPk 77n+jFusRTxV8XIQYiS9eKA/wiU5PasSeVR2ya5mf9OoeuZFnvlnDPauYkuwhixHBGrv DF/MTR9Z5LeI+7J1P+/Cw75ePsxaY7aNV0pg0UtMpGCaCfglbFFERiuWgbOAdWG1+wW5 ihLvPXY31KG6lldk259DUOacWAvEpec5m4e+gBU83k/yEtMKVd7dRHmArsN/QADNTEUd 4u9w== X-Gm-Message-State: AJaThX49XktyDrm9guxdjvCb05xLj+qBonOXZUaXk+48VQYQt6zBYMI9 kq8bHKzTF9rTs1tqKYCqGdttzdRzUIU= X-Google-Smtp-Source: AGs4zMarC14e1QI23FZFH5nShzFO2Aw1QKspCP59cUcRfyP0+Ii10kOjd7tLvllbAzsus4ZvCzwUzg== X-Received: by 10.28.220.67 with SMTP id t64mr18081637wmg.150.1511779753757; Mon, 27 Nov 2017 02:49:13 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:13 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 05/18] gpio: mockup: implement gpio_mockup_err() Date: Mon, 27 Nov 2017 11:48:41 +0100 Message-Id: <20171127104854.333-6-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Visually shrink the pr_err() calls by encapsulating adding the module name prefix to the message in a macro. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index 5ba8f2089de8..0aa68242f33b 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -34,6 +34,8 @@ */ #define GPIO_MOCKUP_MAX_RANGES (GPIO_MOCKUP_MAX_GC * 2) +#define gpio_mockup_err(...) pr_err(GPIO_MOCKUP_NAME ": " __VA_ARGS__) + enum { GPIO_MOCKUP_DIR_OUT = 0, GPIO_MOCKUP_DIR_IN = 1, @@ -344,13 +346,11 @@ static int __init gpio_mockup_init(void) gpio_mockup_dbg_dir = debugfs_create_dir("gpio-mockup-event", NULL); if (!gpio_mockup_dbg_dir) - pr_err("%s: error creating debugfs directory\n", - GPIO_MOCKUP_NAME); + gpio_mockup_err("error creating debugfs directory\n"); err = platform_driver_register(&gpio_mockup_driver); if (err) { - pr_err("%s: error registering platform driver\n", - GPIO_MOCKUP_NAME); + gpio_mockup_err("error registering platform driver\n"); return err; } @@ -366,8 +366,7 @@ static int __init gpio_mockup_init(void) i, NULL, 0, &pdata, sizeof(pdata)); if (!pdev) { - pr_err("%s: error registering device", - GPIO_MOCKUP_NAME); + gpio_mockup_err("error registering device"); platform_driver_unregister(&gpio_mockup_driver); gpio_mockup_unregister_pdevs(); return -ENOMEM; From patchwork Mon Nov 27 10:48:42 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841627 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="GHBdfuXB"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylkPr0Stlz9rxl for ; Mon, 27 Nov 2017 22:01:36 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752452AbdK0LAj (ORCPT ); Mon, 27 Nov 2017 06:00:39 -0500 Received: from mail-wr0-f196.google.com ([209.85.128.196]:37355 "EHLO mail-wr0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752327AbdK0KtP (ORCPT ); Mon, 27 Nov 2017 05:49:15 -0500 Received: by mail-wr0-f196.google.com with SMTP id k61so25928062wrc.4 for ; Mon, 27 Nov 2017 02:49:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=FXd+XmtozMxdAad+bJQsPAzJQ8quksdV1pWMqNkbWrk=; b=GHBdfuXBFKC3nmMQdPzz3SykoKKfJDS9srlA1JBmpaIQGXOxzbaWgBHKb+7/gXvk8j bl8wHvI28n31NxyD8FYpQxwfp7sD/z2fKkvknmGmiB8U9AtHKDSY9TtyRJkv279BfxPE lC07IvLmpcC1QvlSMK3cbqEnhgdCCz4tuAAUVaR3b1sxy8x/M8k77p990ofDa/6DTbl7 0AaGHUT4kMIsJQbI9rcIzXhzdMf5Sguzpmj6081j1xg82PBHvWaoWbjC3p+49YyWNN0w nQktwUzQwIKndZVk2jZ+pMpHkJ+gybgyQXlCLxYFd5HcT74cH1VDslTNsT1jaHObHu30 bdxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=FXd+XmtozMxdAad+bJQsPAzJQ8quksdV1pWMqNkbWrk=; b=r8irr9cZ05LGhqK6zUdPA5zpwy+9kkhbfhNlLrzeIFgoyENG0WOEVrk57CHP+x5khd 5jRKZlQhIjZi7hYHnrynEgKGOTrQJXzA5hrLbjWQxhMR604xzy5ZtQNAhXWwa0vDc+sp Eeajt/QoXeQ9473E5pCQjh9xeHT8daFqqkad1eJYE06eASMpvXDdq9hK0O9YZRNn1DYL NWgono2+3OwiR1xnhHJtFFt67WYPvoBBTPqTNaajp+hNYG4FZOE71hWchjM3cp15+sNp 5gpJTZq37WjGvRD4D/ns/8bRieLyY6wQMcgTkWEzMTWyszUOUDFn837fSjCxWDnBScT/ JPqg== X-Gm-Message-State: AJaThX7gzhoCHC0RWs9QwPZI+jSlcbraOH0XCeMQXThW5kn5ZaVCZCxq BcVd/92C8qDN6XtC3nQltPAdwA== X-Google-Smtp-Source: AGs4zMYGZlXA7PmDkVjBXj3tj0X4LBK9uALDFnVe9+GM7MBTcsjPtze2US/a0rg6sNcP8dNEMkWZgQ== X-Received: by 10.223.138.246 with SMTP id z51mr31645970wrz.152.1511779754738; Mon, 27 Nov 2017 02:49:14 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:14 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 06/18] gpio: mockup: remove a stray tab Date: Mon, 27 Nov 2017 11:48:42 +0100 Message-Id: <20171127104854.333-7-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Minor coding style fix. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index 0aa68242f33b..9b2823a33538 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -27,7 +27,7 @@ #include "gpiolib.h" #define GPIO_MOCKUP_NAME "gpio-mockup" -#define GPIO_MOCKUP_MAX_GC 10 +#define GPIO_MOCKUP_MAX_GC 10 /* * We're storing two values per chip: the GPIO base and the number * of GPIO lines. From patchwork Mon Nov 27 10:48:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841621 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="FjoA0gm9"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylkNY49HHz9rxl for ; Mon, 27 Nov 2017 22:00:29 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752406AbdK0LAO (ORCPT ); Mon, 27 Nov 2017 06:00:14 -0500 Received: from mail-wr0-f194.google.com ([209.85.128.194]:42411 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752345AbdK0KtR (ORCPT ); Mon, 27 Nov 2017 05:49:17 -0500 Received: by mail-wr0-f194.google.com with SMTP id o14so25947312wrf.9 for ; Mon, 27 Nov 2017 02:49:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=vI9cZZyIzYMdHZji1h//xFoD6beIj6l1kjWRaHGWq7g=; b=FjoA0gm9dVpNon07NeDHHPt4RFXrHOd0AIQeYWa4RuUDz7NxkaY6EEXAIABbjVVLNC XF2OTTEiGa0h4KJxOgOXkMYNJLIKInF8qsScRajjP3ybrWjpnlFefOwKNsF703OJx8Re mu5u5iGxkqsLow1Q77TyfMwWuVvxGFowBQ+GVheB0TmU/8Iz45e5Dn7YmbzdSRWJdioX XG0eLwWYRPFKle05f/XVeIe7twL1eNbcE9LPqCnrrDMCjlWdfL1kXJws4tfACEF+OL28 pVnAuhjRbSGHyb02mC+IEHv8HGGjim+XE39LzlOKZFoGDfDnDwHm7a4ds/10jBUGsjOC Th2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=vI9cZZyIzYMdHZji1h//xFoD6beIj6l1kjWRaHGWq7g=; b=KI4GJdlO2xwU9tuyJTrmAyGvi7bhrbajyPbFUi1iPhM681UWksM7YR4Hl8ekAVP2Hs p7pEN819qKSXAMjZncM/xUfxYXCtaDN12EVg9fqg3SkiDdcs918q20U133w4gu9qAQ3R gqIbz1nGcw17y7bhGrCF/AbmZzBlUK227S5pVH3qdIFluzI6kGyY/i4mX0GmTWOgjAlq txl5H5Yhhdbid1A1r6X9LTOGwGMnDv3Y31zVKb+QNxMOQ46uM/9c4tPM8/UYsE+K3Lyx KJ71mdztRZaeqjiLeShPei9hL1/z5Y2EWkUwdXBvbRYTSSt4m88Av67rScn2Utu5vUIC eE1g== X-Gm-Message-State: AJaThX7/8hXxG8PdxZlfByDR4PQysMkUuvORCGP7CZlsfZ+HMnwrD2B/ Z2qeH7XX2zOKxfKJFi7raRLKcw== X-Google-Smtp-Source: AGs4zMZziz9mPBIzZND26lyEEeAAmLJVAdKYU9qsqI5io+lBQUC97MU6l663clyu1KY5XS2Td1FdyA== X-Received: by 10.223.132.6 with SMTP id 6mr31545710wrf.93.1511779755797; Mon, 27 Nov 2017 02:49:15 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:15 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 07/18] gpio: mockup: merge gpio_mockup_add() into gpio_mockup_probe() Date: Mon, 27 Nov 2017 11:48:43 +0100 Message-Id: <20171127104854.333-8-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Now that the probe() function only does what is should, there's no need to split the chip adding logic into a separate routine. Merge gpio_mockup_add() into gpio_mockup_probe(). Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 78 ++++++++++++++++++---------------------------- 1 file changed, 31 insertions(+), 47 deletions(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index 9b2823a33538..2dbaeb69d2d2 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -231,13 +231,30 @@ static void gpio_mockup_debugfs_setup(struct device *dev, dev_err(dev, "error creating debugfs directory\n"); } -static int gpio_mockup_add(struct device *dev, - struct gpio_mockup_chip *chip, - const char *name, int base, int ngpio) +static int gpio_mockup_probe(struct platform_device *pdev) { - struct gpio_chip *gc = &chip->gc; - int ret; + struct gpio_mockup_platform_data *pdata; + struct gpio_mockup_chip *chip; + struct gpio_chip *gc; + int rv, base, ngpio; + struct device *dev; + char *name; + + dev = &pdev->dev; + pdata = dev_get_platdata(dev); + base = pdata->base; + ngpio = pdata->ngpio; + + chip = devm_kzalloc(dev, sizeof(*chip), GFP_KERNEL); + if (!chip) + return -ENOMEM; + + name = devm_kasprintf(dev, GFP_KERNEL, "%s-%c", + pdev->name, pdata->index); + if (!name) + return -ENOMEM; + gc = &chip->gc; gc->base = base; gc->ngpio = ngpio; gc->label = name; @@ -256,18 +273,18 @@ static int gpio_mockup_add(struct device *dev, return -ENOMEM; if (gpio_mockup_named_lines) { - ret = gpio_mockup_name_lines(dev, chip); - if (ret) - return ret; + rv = gpio_mockup_name_lines(dev, chip); + if (rv) + return rv; } - ret = devm_irq_sim_init(dev, &chip->irqsim, gc->ngpio); - if (ret) - return ret; + rv = devm_irq_sim_init(dev, &chip->irqsim, gc->ngpio); + if (rv) + return rv; - ret = devm_gpiochip_add_data(dev, &chip->gc, chip); - if (ret) - return ret; + rv = devm_gpiochip_add_data(dev, &chip->gc, chip); + if (rv) + return rv; if (gpio_mockup_dbg_dir) gpio_mockup_debugfs_setup(dev, chip); @@ -275,39 +292,6 @@ static int gpio_mockup_add(struct device *dev, return 0; } -static int gpio_mockup_probe(struct platform_device *pdev) -{ - struct gpio_mockup_platform_data *pdata; - struct gpio_mockup_chip *chip; - int rv, base, ngpio; - struct device *dev; - char *name; - - dev = &pdev->dev; - pdata = dev_get_platdata(dev); - base = pdata->base; - ngpio = pdata->ngpio; - - chip = devm_kzalloc(dev, sizeof(*chip), GFP_KERNEL); - if (!chip) - return -ENOMEM; - - name = devm_kasprintf(dev, GFP_KERNEL, "%s-%c", - pdev->name, pdata->index); - if (!name) - return -ENOMEM; - - rv = gpio_mockup_add(dev, chip, name, base, ngpio); - if (rv) { - dev_err(dev, - "adding gpiochip failed (base: %d, ngpio: %d)\n", - base, base < 0 ? ngpio : base + ngpio); - return rv; - } - - return 0; -} - static struct platform_driver gpio_mockup_driver = { .driver = { .name = GPIO_MOCKUP_NAME, From patchwork Mon Nov 27 10:48:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841619 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="Yb0BDOQ5"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylkNG0gBYz9rxl for ; Mon, 27 Nov 2017 22:00:14 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751908AbdK0LAM (ORCPT ); Mon, 27 Nov 2017 06:00:12 -0500 Received: from mail-wm0-f67.google.com ([74.125.82.67]:42788 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751943AbdK0KtS (ORCPT ); Mon, 27 Nov 2017 05:49:18 -0500 Received: by mail-wm0-f67.google.com with SMTP id 124so16377966wmv.1 for ; Mon, 27 Nov 2017 02:49:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=XEN1NySzQ6oNoa/egQ9JOSgHDKvp6QqGYYjE55ewVXA=; b=Yb0BDOQ5wTgzzXErjCI/kdGm4YSprjxwZSaaduo0BCgGoRRDNbQ5CxlCWWMsJ5v/qV N274TlhVEa1ZAbspU4XAo75iuaaw2agDIPNTomycYuc/lJvQupXQ0uHFsbGUMqY3fzzU hsWL1MlKSt2fOub4/meRoTNmL9XyF1JykXAAwU6wP/Ti20yi/kX93y+yhJSJYL0OXfuj jZOHRyCwjIT+/krQSCHTsM2qGOC1dYJ++fDPzm2BIiBlhxhNAAak7z2cSeMzluFMi4N2 Onp84TStcupzLflrxbYXUvhprsqw3DFp8Acfbm8xx7qD276evuuZvevNC+J4JGoGG3rk M+8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=XEN1NySzQ6oNoa/egQ9JOSgHDKvp6QqGYYjE55ewVXA=; b=FWe5vyYDE559oJiGvQ07a8E7X9sLEC6coklwV4IgnAw5jRrYf6y0X9V+6kX2SLOIeM eu8HXT8axtY3KvJ+OUDeZwy9tWZbJ7F5kqsD50p/bnZY2gPtJRz2J70ff/hoLdW9NfWZ UXoApmuqppnD2PnYHolmuZonlNgmX7kEytJwDnTmfx8W6le78eraY5/TGXyCnjZ2Wbxp uq1gUXuGnFBzFaoJoMurrHiZTzbfZar5aN6rJRm0CT9+iGyjr5f4JuS0uNVIDJoELVwG QyL9/r1LGgXvySRVzp8GhEVvcuMUfbA3Ov5Yf2XdLnxkJFBh3OLNuqMC/Vcu20Lmldgl Vc5A== X-Gm-Message-State: AJaThX6j6AU7kMkMNBlIzY/wgQ5RM+off/72qgjKjiWJw2EDZXxxvpqj lFV5A0IamsYuDVEOMEGFgLPzX61MxwU= X-Google-Smtp-Source: AGs4zMb+4L5HUD0F0EWDjRLLWOrmJrfeHWagxFr9ji4hrV4F79wgOk5etl1a/l2t5AaiQ7QWALPr2w== X-Received: by 10.28.54.3 with SMTP id d3mr16902560wma.79.1511779756837; Mon, 27 Nov 2017 02:49:16 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:16 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 08/18] gpio: mockup: pass the named_lines parameter over platform_data Date: Mon, 27 Nov 2017 11:48:44 +0100 Message-Id: <20171127104854.333-9-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Move the last bits of code dealing with module parameters to the init function. Add a new variable to platform data, which indicates to the probe function if it should name the GPIO lines. If we ever want to make the line naming more fine-grained (e.g. per chip switch) it will be easier this way. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index 2dbaeb69d2d2..9da90ad87030 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -68,6 +68,7 @@ struct gpio_mockup_platform_data { int base; int ngpio; int index; + bool named_lines; }; static int gpio_mockup_ranges[GPIO_MOCKUP_MAX_RANGES]; @@ -272,7 +273,7 @@ static int gpio_mockup_probe(struct platform_device *pdev) if (!chip->lines) return -ENOMEM; - if (gpio_mockup_named_lines) { + if (pdata->named_lines) { rv = gpio_mockup_name_lines(dev, chip); if (rv) return rv; @@ -344,6 +345,7 @@ static int __init gpio_mockup_init(void) pdata.ngpio = pdata.base < 0 ? gpio_mockup_ranges[i * 2 + 1] : gpio_mockup_ranges[i * 2 + 1] - pdata.base; + pdata.named_lines = gpio_mockup_named_lines; pdev = platform_device_register_resndata(NULL, GPIO_MOCKUP_NAME, From patchwork Mon Nov 27 10:48:45 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841618 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="fROUbr9U"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylkMp20nwz9rxl for ; Mon, 27 Nov 2017 21:59:50 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752150AbdK0K7S (ORCPT ); Mon, 27 Nov 2017 05:59:18 -0500 Received: from mail-wr0-f196.google.com ([209.85.128.196]:41014 "EHLO mail-wr0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752421AbdK0KtT (ORCPT ); Mon, 27 Nov 2017 05:49:19 -0500 Received: by mail-wr0-f196.google.com with SMTP id z14so25896268wrb.8 for ; Mon, 27 Nov 2017 02:49:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=IhteOXFdiKYREGTTGd6ASVDWJEcyI5TaEHEo3MqpaWs=; b=fROUbr9UgizByeOxK7mueg84XzNL7yWv4GbqHD17bNwbL73lbKstC6InOX2yPNxRi2 FXcFf8f8zWi51tm0apv9PWcdORvU5XViqcsd6eTv3+pyrcYpcb7gN+ADaEGP6B+T3b6V g4Fd65GPmNEySK9B3xsSkHcZsT+42w4hXyn63C1Vy0Ohi46Qrrl/sjuBQrNjum9MFGCz cLdr8F5hJ6Gh9zU5ixgVdV7Jkqu4V41N6DWjFG7imuHAUJ5OHmQtE013g0Wjcje7KvfV KKb3D+7tXCteOPSCjaiMZmRvgoTuLUOBWQB6GDRgBYe6oMyo1Rut7gkyRRl6JujUZT7i d/0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=IhteOXFdiKYREGTTGd6ASVDWJEcyI5TaEHEo3MqpaWs=; b=ADkcGTCXV1aOFK/cFRDi3ic1aIhcIhPeztSOS+sIXQJsac1uPVjdIvRQpYYNZyO3yS POvQ+IW1F3Wi+rA4c237C7EtK04XNr6ZRF2SeYOMtvfBdM3p5TZIGca6vAt1Z1DEoyEi 6gk0yi37/iZB2304d1Ey3GPRtsEm6xHyyzLgf6VYcrmYzzvzLzUbtmWJni7Jk2wSpCvx GclmTdufYQ/Atv2KTZPkrKe1HwuioUFt3Qt0QUwkxtu3eyiFWYIMoxgn0FQiYkN1kG+o rmQKDwtMq543ze60249D5NNIqbWVvF7dji4we+Q/k5OspxNheErJ6iiiieEnvvc9pXiY LCrg== X-Gm-Message-State: AJaThX4BndX4js7+8MC+wbjuQ0qlw0qeugf5VvqO7/K1rxq//0rlQuBw NO03Otz395WnlbvpJMiducLZAA== X-Google-Smtp-Source: AGs4zMYdrLNgn5KK1ne0cL/DYJT0V9YUAQ7g1EeMBDAUqhAd846PATR2uhuAbHpl2x2aOFG8Btdzng== X-Received: by 10.223.135.121 with SMTP id 54mr31463305wrz.160.1511779757956; Mon, 27 Nov 2017 02:49:17 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:17 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 09/18] gpio: mockup: extend the debugfs layout Date: Mon, 27 Nov 2017 11:48:45 +0100 Message-Id: <20171127104854.333-10-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Currently each chip has a dedicated directory in debugfs for event triggers. We use the chip's label for the directory name, but the user can't really associate these directories with chip names without parsing the relevant sysfs entries. Use chip names for directory names. For backward compatibility: create links pointing to the actual directories named using the chip labels. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index 9da90ad87030..9a880e15ea0b 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -196,17 +196,23 @@ static void gpio_mockup_debugfs_setup(struct device *dev, struct gpio_mockup_chip *chip) { struct gpio_mockup_dbgfs_private *priv; - struct dentry *evfile; + struct dentry *evfile, *link; struct gpio_chip *gc; + const char *devname; char *name; int i; gc = &chip->gc; + devname = dev_name(&gc->gpiodev->dev); - chip->dbg_dir = debugfs_create_dir(gc->label, gpio_mockup_dbg_dir); + chip->dbg_dir = debugfs_create_dir(devname, gpio_mockup_dbg_dir); if (!chip->dbg_dir) goto err; + link = debugfs_create_symlink(gc->label, gpio_mockup_dbg_dir, devname); + if (!link) + goto err; + for (i = 0; i < gc->ngpio; i++) { name = devm_kasprintf(dev, GFP_KERNEL, "%d", i); if (!name) From patchwork Mon Nov 27 10:48:46 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841617 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="0dvkx0MB"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylkLl5kW3z9rxl for ; Mon, 27 Nov 2017 21:58:55 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752477AbdK0K6y (ORCPT ); Mon, 27 Nov 2017 05:58:54 -0500 Received: from mail-wr0-f195.google.com ([209.85.128.195]:38525 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752234AbdK0KtU (ORCPT ); Mon, 27 Nov 2017 05:49:20 -0500 Received: by mail-wr0-f195.google.com with SMTP id z75so24573613wrc.5 for ; Mon, 27 Nov 2017 02:49:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=44OnAYv0eNHjUf8hUMY2rt/s9qfky5j3y3jLEZ641DA=; b=0dvkx0MBCrmtsz2f/CQ5LRLGhICI6CeCOHI/AY/7OXXN57yVpHF/RXyQzq9kMR7v0I sF9KpUb8Aw2TUbGfJdI14OE96nZRurFDXy+JILqRdb0wOr9gFfnppNn26HDUesmI7FsH qAiuA63boVXgl/01JxSnAMqmXFXpNBN7fh3HYQ41dTZn0GlZkn8Jdo9hqg04ffh1zLwc PoJrUKa/qW+nMfrGiZwGdSrljubWG5AlMQy5ZcQ+/eCO9cCstCyLs2QrjNtZ5hPUT37z j4ZsN6QKbDvPJKuhn3DJvEo507d5pL0ghanuckaEKouOVvQ+fH+3/ZljXdqptMbcDKRZ iCmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=44OnAYv0eNHjUf8hUMY2rt/s9qfky5j3y3jLEZ641DA=; b=f7uLRSMa7RUI20mUL2aMO9AfpLdY/0X1aAHHgGZhntnRBmxPbqXjhgG5SdX1qTh5YT D1QUpLZ1AjfTJXqypttlf4LyXZDMEI/TUvUGAKWMj/eu1P/aDfVfcVYdvGz0sc4//JmW Ph1WXNXVeklr7Fb7GoqbynM0vdCa+PYeNiHI5L6sq00NnuWupOMxmadSnclO+ZfmlW7J 0gr4LgqXU71k3Ytad9Ez/qp4sUcGipE5w3nnwSjdPDjZ8lEn2RRMptVT7DEmhs9Yr9uY SaaUnVtlBj78SPEk5ilBNdEzPJhmNyM7XQZRpmArZrTQQr1w/qWsgRZiVvUp/BgsrXng 5V9w== X-Gm-Message-State: AJaThX41rklCKtX5cCU8qnP/1Fr8EYWIxX5p6zWfN3rgNzJtFTVFtODn ZjFl4vf9uTGcFg1NU4uY/FQpEwPSz5U= X-Google-Smtp-Source: AGs4zMZ9fO0QUR75P+1KXm/w+bHL8qVbpcARfv7tgb74U53VumARmopQhQvwzUzvSzzkTDG8KihOTQ== X-Received: by 10.223.138.246 with SMTP id z51mr31646166wrz.152.1511779759117; Mon, 27 Nov 2017 02:49:19 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:18 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 10/18] gpio: mockup: change the type of value field in line state struct Date: Mon, 27 Nov 2017 11:48:46 +0100 Message-Id: <20171127104854.333-11-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org GPIO values are universally represented as integers. Change the type of the variable storing the current line value to int for consistency. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index 9a880e15ea0b..8a61328a255d 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -48,7 +48,7 @@ enum { */ struct gpio_mockup_line_status { int dir; - bool value; + int value; }; struct gpio_mockup_chip { From patchwork Mon Nov 27 10:48:47 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841610 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="dsmsGeRD"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylkBF6mjrz9sPk for ; Mon, 27 Nov 2017 21:51:33 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752466AbdK0KtX (ORCPT ); Mon, 27 Nov 2017 05:49:23 -0500 Received: from mail-wr0-f194.google.com ([209.85.128.194]:35245 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752456AbdK0KtV (ORCPT ); Mon, 27 Nov 2017 05:49:21 -0500 Received: by mail-wr0-f194.google.com with SMTP id w95so25982774wrc.2 for ; Mon, 27 Nov 2017 02:49:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=/rbCECR1O42wwGtQNOz+dik2pJ6J8VBl44TClG3OCB0=; b=dsmsGeRDGg6eE/Oo6uLkdGJxjoYHHkdWRmidJdeJ5r78CzxjQc6R7aS2A/E7BIHooV dvlBqGdX7loBf4+RI3rXLgtkpQie554N3XxsG21Eek0LD2z2eSHxj7JiVABqChQV5adf cphbnbYOz72DmvShyNiX/HxARdpH2RegeNFSWiNIJkyX/rtNXw9gLPfpbk80P2ewBE2H kAM4CuIPOqpM6ZdsQDGKEOh/oc44odIXEOVCLQ+u3Mm9G8k44mdfMvSfiMhMNXUEX6Ia xp1Hjh9WYLRbjkOGhqhKB5n8Xof7EsMphg/7rJoI4zeiUveyv4xyyc5gjSbTcd9bru/K Gj/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=/rbCECR1O42wwGtQNOz+dik2pJ6J8VBl44TClG3OCB0=; b=tsK/KdlF7Ak6hIAzrANHiXKSiDGSxfyy6JRzfrHwUsIbZ/pdqFqVMB5Frlj/ShXsCA FiWzeqpo3rGm46Wj7TJAfiObzUdUa6iyk7M5Jc0xC6d8SjTQZHseIm4oTvOwW4xU2Ig5 xaQVEa7mNu7L0sDqEMgzHfhtMxOFgweuMHYr4ltQb7m6Hm9lPYbMinNyu3RC49fls91+ D0FjhGIPwH2WqFkOv2OAVU7i9tkZwvU/SNdN6/5UUOIzDwIdmv7q9JrWUi+QR5Pem3g4 TeYIpuQXjSg9VrdWiKbDZmT8A6ZGvxrZUUUZEWNh7kV51appeMRqB4URjigXPTbHgo9/ VzWw== X-Gm-Message-State: AJaThX6cKFgQupa/7WAuiwwT9Se9VS2MxXu0o5fdDa9XvILhl0NnDEXY tlbEtUpCj9QVuSu8XCj2B7QvZQ== X-Google-Smtp-Source: AGs4zMYb5bJ9eJDkPZixmfrw9EaTFrY+8a3qfPKBdsbzIKW6+lCzzzNXbs6nFPEF5Q8IiVfItrzCYQ== X-Received: by 10.223.163.11 with SMTP id c11mr25526924wrb.214.1511779760140; Mon, 27 Nov 2017 02:49:20 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:19 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 11/18] gpio: mockup: group code by logic Date: Mon, 27 Nov 2017 11:48:47 +0100 Message-Id: <20171127104854.333-12-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Keep GPIO chip callbacks, event trigger callbacks and mockup chip setup code visibly separated. We're mostly good - just need to move the line naming routine below. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index 8a61328a255d..dba5e79e3278 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -123,29 +123,6 @@ static int gpio_mockup_get_direction(struct gpio_chip *gc, unsigned int offset) return chip->lines[offset].dir; } -static int gpio_mockup_name_lines(struct device *dev, - struct gpio_mockup_chip *chip) -{ - struct gpio_chip *gc = &chip->gc; - char **names; - int i; - - names = devm_kcalloc(dev, gc->ngpio, sizeof(char *), GFP_KERNEL); - if (!names) - return -ENOMEM; - - for (i = 0; i < gc->ngpio; i++) { - names[i] = devm_kasprintf(dev, GFP_KERNEL, - "%s-%d", gc->label, i); - if (!names[i]) - return -ENOMEM; - } - - gc->names = (const char *const *)names; - - return 0; -} - static int gpio_mockup_to_irq(struct gpio_chip *gc, unsigned int offset) { struct gpio_mockup_chip *chip = gpiochip_get_data(gc); @@ -238,6 +215,29 @@ static void gpio_mockup_debugfs_setup(struct device *dev, dev_err(dev, "error creating debugfs directory\n"); } +static int gpio_mockup_name_lines(struct device *dev, + struct gpio_mockup_chip *chip) +{ + struct gpio_chip *gc = &chip->gc; + char **names; + int i; + + names = devm_kcalloc(dev, gc->ngpio, sizeof(char *), GFP_KERNEL); + if (!names) + return -ENOMEM; + + for (i = 0; i < gc->ngpio; i++) { + names[i] = devm_kasprintf(dev, GFP_KERNEL, + "%s-%d", gc->label, i); + if (!names[i]) + return -ENOMEM; + } + + gc->names = (const char *const *)names; + + return 0; +} + static int gpio_mockup_probe(struct platform_device *pdev) { struct gpio_mockup_platform_data *pdata; From patchwork Mon Nov 27 10:48:48 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841616 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="G5rUPB4x"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylkLk3MPJz9rxl for ; Mon, 27 Nov 2017 21:58:54 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752146AbdK0K6i (ORCPT ); Mon, 27 Nov 2017 05:58:38 -0500 Received: from mail-wr0-f196.google.com ([209.85.128.196]:39753 "EHLO mail-wr0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752312AbdK0KtW (ORCPT ); Mon, 27 Nov 2017 05:49:22 -0500 Received: by mail-wr0-f196.google.com with SMTP id 11so22580986wrb.6 for ; Mon, 27 Nov 2017 02:49:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=BmUvuMJ3MDJhsDBtMeVzNZUsdvELiRBnriMzBIGtlew=; b=G5rUPB4xVL804BxVvrnSnYjX3aYE8rmvLox3FGaxkhKdJxXBIzY6QZsB5A+2H6fdtm yCGc9TJXsV9tUiSw7Dzydi4hbU5vep5N2nvpUpYCpGJ0B6sWUbgWhtgABXw+7Eb9FuAP vo3EOxyCR711e/T+i8kP4ej8CNf7Y3MVN592ntgSP/JcBdeDauV2JzuluI+K41SseUMi NPawuFxcjEncGftGgOlbDbfvlwf6uvHVw28ucNfuI0O3RTXV36lw7V+37qP0gwleU+HU dbZ7o8Et3/ljLcuz3FRl5tQKsMvEd7R0SEMZ3Ufuwwz9I/X0XZrXmHw8CR4QVLAMP/KK PZbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=BmUvuMJ3MDJhsDBtMeVzNZUsdvELiRBnriMzBIGtlew=; b=QZPrLYW23FEEIuob0/ePbqPe0mWxgne5jWdw1pTkClpyJ4NeySgFfuryJ1iL6TufWj EVza2M0vjOJb9OLDO/wtFzznPx3gzhvkepvNcIqiSHyLVHAz9AMFtT+p00lcpOXtP9LL 6DrDd6LEZOufPQ4+g9R62/Qknb0HPZWMgXXj/xx8CCu1/aUd9cT8hDThH76mGSBYcMWJ QHX5fRFJ+Sm4WxSkmrGnBZXcVrWQagzHpbmeeXXJaoZv6JgK7m4wzQlZReZVZc2SvGLd BrIZNfI4FWYY9ZoVqxTyJEvLRDW6Ua3noTXS1vsYvMEWu8MgELU9X0MwxEvXWT19gYyb RlBA== X-Gm-Message-State: AJaThX76YBUdm868R6wh6GlRGvGkv8/9EZClw9K95lUvsGorLvZ4/9eC zuP6GW/LK+3TKmMMqd7oCZ0jtw== X-Google-Smtp-Source: AGs4zMYoL7AdfhQDvNyzKPSHwcxQYP9ciyL9pm7htiALXeS/+7hZvDZS0n/Nidb5AAogwg79B0v8Ww== X-Received: by 10.223.151.136 with SMTP id s8mr27923427wrb.94.1511779761213; Mon, 27 Nov 2017 02:49:21 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:20 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 12/18] gpio: mockup: fix debugfs handling Date: Mon, 27 Nov 2017 11:48:48 +0100 Message-Id: <20171127104854.333-13-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org The debugfs routines returning pointers can return NULL or error codes embedded with ERR_PTR(). Check the return values with IS_ERR_OR_NULL(). While we're at it: make the error message more specific so it's not confused with the one emitted when the top-level gpio-mockup debugfs directory creation fails. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index dba5e79e3278..68a0c1e06a16 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -183,11 +183,11 @@ static void gpio_mockup_debugfs_setup(struct device *dev, devname = dev_name(&gc->gpiodev->dev); chip->dbg_dir = debugfs_create_dir(devname, gpio_mockup_dbg_dir); - if (!chip->dbg_dir) + if (IS_ERR_OR_NULL(chip->dbg_dir)) goto err; link = debugfs_create_symlink(gc->label, gpio_mockup_dbg_dir, devname); - if (!link) + if (IS_ERR_OR_NULL(link)) goto err; for (i = 0; i < gc->ngpio; i++) { @@ -205,14 +205,14 @@ static void gpio_mockup_debugfs_setup(struct device *dev, evfile = debugfs_create_file(name, 0200, chip->dbg_dir, priv, &gpio_mockup_event_ops); - if (!evfile) + if (IS_ERR_OR_NULL(evfile)) goto err; } return; err: - dev_err(dev, "error creating debugfs directory\n"); + dev_err(dev, "error creating debugfs event files\n"); } static int gpio_mockup_name_lines(struct device *dev, @@ -336,7 +336,7 @@ static int __init gpio_mockup_init(void) num_chips = gpio_mockup_params_nr / 2; gpio_mockup_dbg_dir = debugfs_create_dir("gpio-mockup-event", NULL); - if (!gpio_mockup_dbg_dir) + if (IS_ERR_OR_NULL(gpio_mockup_dbg_dir)) gpio_mockup_err("error creating debugfs directory\n"); err = platform_driver_register(&gpio_mockup_driver); From patchwork Mon Nov 27 10:48:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841611 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="KO0dukAv"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylkBG4Yzmz9sRg for ; Mon, 27 Nov 2017 21:51:34 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752209AbdK0Kvd (ORCPT ); Mon, 27 Nov 2017 05:51:33 -0500 Received: from mail-wr0-f195.google.com ([209.85.128.195]:46050 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752463AbdK0KtX (ORCPT ); Mon, 27 Nov 2017 05:49:23 -0500 Received: by mail-wr0-f195.google.com with SMTP id a63so25905675wrc.12 for ; Mon, 27 Nov 2017 02:49:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Gzrotbpgp5HiK0d8pFr9oeZvjCNQLT4BXBS+2Ivx89k=; b=KO0dukAvZtcAvsrTEkhSiBHXCMEjHcxLLR8zKrk8mQHkLpuaftD6HamZuHu2uU4qkL V+7HPP9ut3BlTb1nuYSbtOuF0/bLtw8ERgm5mcwSPqpAfsDOmNa0Ssmn2TZ51ZICV5k0 zjPdR/fhoOh7ut7F0jxuCK+avHoFOLlCmhyCy8DO3I98AGk3xSucoH01+jw00e4kDMl6 t9Z8v4XsYH8qXeJ7kWQX6f3t/+8N9vpc9B9VpF/MD8LgyBvN+Fn01ApoTgxOY8+rLGsN XEAMg7StkEkJDvKZ6BsXR07yCkNMmrkGS0SFjISxo2N9J9/wysDbfFASWKGMH2MM3VMj mjFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Gzrotbpgp5HiK0d8pFr9oeZvjCNQLT4BXBS+2Ivx89k=; b=OPs1s4ztH8gQsmJgH+nbH0Z6QJjnxCyciN9rY5O/y94OZKA6t4pbdkQUMKZepwXZVg X2EpLutJi108ccqWBdNKg2v2Fvlkkc2p9FHzGGGAfIqnAz4W6qIfD+ihRJpzzSO76akc isUD6nTCPfoPdQji4nqIz4V2VKtxSPaod2yY/kIa1Wo8OqoY6NowN7QAvx8FJgdn8b/u HaAMm4avpf7fFt2uliu1EkciutHSND/qJPtORmgE1JyNijuuztZRJGcVHuMgm0bKMc/N sfpJqhs1YO7ybU3iaao4L1SymqR/4WcaS6pbLR786YAeO8I/yUnlAcgvn/a2ruhHcPka YBHw== X-Gm-Message-State: AJaThX6Z3rzRRxbLyvv2zwwYa0w50Kav2cYpFHHLKlreEwSXjqE94sBy 7EoBtXGGXMUU3cnK64dBbEpsLw== X-Google-Smtp-Source: AGs4zMYDIE3C3bGFVixywdlQ0dC9Wu/rWoMnZsjWSyoiEZM94D4Luw0ZrRa1lavMrl6Km3kitTsXVw== X-Received: by 10.223.136.38 with SMTP id d35mr30735317wrd.36.1511779762356; Mon, 27 Nov 2017 02:49:22 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:21 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 13/18] gpio: mockup: verify that ngpio > 0 Date: Mon, 27 Nov 2017 11:48:49 +0100 Message-Id: <20171127104854.333-14-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Improve the module params sanitization: bail out from init if the user tries to pass a non-positive number of GPIO lines for any mockup chip. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index 68a0c1e06a16..532f5807390b 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -335,6 +335,15 @@ static int __init gpio_mockup_init(void) /* Each chip is described by two values. */ num_chips = gpio_mockup_params_nr / 2; + /* + * The second value in the pair must + * always be greater than 0. + */ + for (i = 0; i < num_chips; i++) { + if (gpio_mockup_ranges[i * 2 + 1] < 0) + return -EINVAL; + } + gpio_mockup_dbg_dir = debugfs_create_dir("gpio-mockup-event", NULL); if (IS_ERR_OR_NULL(gpio_mockup_dbg_dir)) gpio_mockup_err("error creating debugfs directory\n"); From patchwork Mon Nov 27 10:48:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841609 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="k+gW7235"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylkB92QKLz9sPk for ; Mon, 27 Nov 2017 21:51:29 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751937AbdK0KvJ (ORCPT ); Mon, 27 Nov 2017 05:51:09 -0500 Received: from mail-wm0-f67.google.com ([74.125.82.67]:40896 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752469AbdK0KtY (ORCPT ); Mon, 27 Nov 2017 05:49:24 -0500 Received: by mail-wm0-f67.google.com with SMTP id b189so33765889wmd.5 for ; Mon, 27 Nov 2017 02:49:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=dvfEfuhyQ1VcejmAa9GWcDGLD2Yt+WaKbH2LMiRFxpA=; b=k+gW7235JjY6jnrfCURtiRdsTRaYQVSZZTmNI7ZHR6bywTp5BGWQOu0sdRjebSPa0i RcDQirAxCq+Xuhf3O30TSFc9dIge4/Z4HEYSxTM14F9qfYMSAGRIysxrbE/zk/fhN4H7 cTXVm2QYFfZ+7An7j3Ts5di596TwhIUvZ5ck+ggfsiyRMFV2O7aQDhNzwupIrIoC2IaV NruCSGzFsVV5FDxk+ZcybrupXa4a1hOgY/+DyIdST8c0SN69ynVOsnYd1nG1xFyPQrVk xqHyPTyRoukOBuPqHecjmSMNe8lymS1YKd63Q97GcOLIakzPaXbOYsSrNPmALtmcx/Iy ut4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=dvfEfuhyQ1VcejmAa9GWcDGLD2Yt+WaKbH2LMiRFxpA=; b=m8unPGZ4Gi7sjWQ5pvmzqrj6sL8oxFCT4tJZERyl720IyMSBkw6v9WcmkI0ZDycXgN R06yUNfQBW8NX2+knqKJKKI1BRIHpG195gQUI70EI6WjqzWzJsGyGO4K6TdeQuW7TIit GTwQXKUarbsBLbw1cltpgiLTWl71lj+LXKHZDaxUVE410h+DC9yGK0Y4EUTv3YVyGvRW u0FZ9g07nFhnHQNj+U6wjOR5paRjvsDuY7kfRrrL3lL3sjPFVv3r9B4huTTaY/8LJTtj 66unCVSkJWhQVJFVPkCutLsZ2h9Et1lVq/jVVDO71zbfe5YD4aSINr9X1HBlHQCP0vOi Qa9g== X-Gm-Message-State: AJaThX6k1j918pwMyvIgghDFz1l5medgKQu6YlnrreyzkWjksZJz7jNk N9gRYXczL0bfblzJNRZvLl8Wkg== X-Google-Smtp-Source: AGs4zMbCZT+iIvuga3Kru95rEpHhOaq7QrGuor/MrAng52e8QTx9YYeJKzEbKmWvdkNvaYYKSxyfpA== X-Received: by 10.28.169.194 with SMTP id s185mr17363692wme.119.1511779763359; Mon, 27 Nov 2017 02:49:23 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:22 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 14/18] gpio: mockup: tweak line breaks Date: Mon, 27 Nov 2017 11:48:50 +0100 Message-Id: <20171127104854.333-15-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Minor readability tweak: prefer breaking the lines in a way where the second part is longer than the first. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index 532f5807390b..dfb9ee03a2f0 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -88,16 +88,16 @@ static int gpio_mockup_get(struct gpio_chip *gc, unsigned int offset) return chip->lines[offset].value; } -static void gpio_mockup_set(struct gpio_chip *gc, unsigned int offset, - int value) +static void gpio_mockup_set(struct gpio_chip *gc, + unsigned int offset, int value) { struct gpio_mockup_chip *chip = gpiochip_get_data(gc); chip->lines[offset].value = !!value; } -static int gpio_mockup_dirout(struct gpio_chip *gc, unsigned int offset, - int value) +static int gpio_mockup_dirout(struct gpio_chip *gc, + unsigned int offset, int value) { struct gpio_mockup_chip *chip = gpiochip_get_data(gc); From patchwork Mon Nov 27 10:48:51 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841607 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="Wm2oM5YJ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylk9Y1pK8z9sRg for ; Mon, 27 Nov 2017 21:50:57 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752178AbdK0Ku0 (ORCPT ); Mon, 27 Nov 2017 05:50:26 -0500 Received: from mail-wm0-f67.google.com ([74.125.82.67]:44159 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752484AbdK0KtZ (ORCPT ); Mon, 27 Nov 2017 05:49:25 -0500 Received: by mail-wm0-f67.google.com with SMTP id r68so33324377wmr.3 for ; Mon, 27 Nov 2017 02:49:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=4Yh73Gsb/yizOdnWNav9eS7DY2WpyRwgxnrMEeocIDk=; b=Wm2oM5YJUP9OR/nxfjuko64dF/HSv6CfLixx1qNeQibsA2wniY8cF75mWFHsQY5WhY eWBk34KIeTdpRud6DUfUefyeQbhESKYyhiqlYs2MIavohYP0Smq+d1ypCN/EgPWpeEX7 eb3PGEZsCo84SiJlUihqqn56+9F7egXe7OXkNgUbxq8u/LdHQUo2IbsSzKEhntlu0xLa e/TMfqnHuYWaZykwgcA9G2SFFza8ECSiLBAS/vS7D4pSC433+dhKKVkHjTytCxaT6A6D 1xK5/op4x74Pqm84qJSiTYrL2QoaTzqLNVeGaFrUYrPuy7360zbmmsKNeYATOPsP11WZ mDcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=4Yh73Gsb/yizOdnWNav9eS7DY2WpyRwgxnrMEeocIDk=; b=bMjzcDWH057rV6uGRJqw0dGSDFJy/TFkjMiiVZ6hsOdwxmfBkgaq8TkYYGi1b00x3z utE/W20Qpvrl3ossNfBcFkDYk0OU4WSDFH29lhbm3mN7BYjIGQDvy2FTrCs7K8iPWZHn XNRHiQSawX3nZXaxplGmY8ljdDGGPFqsuIDJSYzZXBunFegzDJucDfp0BBy93vz+8jGf np6XDmI5+Xy/p8uymOkiJZX44i83O4Iu1SxNazhrJRYiTUIvJaX5wriSOi4PF4t/+UUL gkIQF74bghzYX0bWr/ZOa4KC21m7d5xNRdVNDkwVT8gmmELkmx/PPCTDhYTkbIhT3CBv Bncw== X-Gm-Message-State: AJaThX7CmHbMnHXa1ZF+VsQWFgkaupIhImXdegmptOrHKau9Gp0RIGSC U9pNkqJbpZc9L8QZcaK47mv80w== X-Google-Smtp-Source: AGs4zMZo2AvqOOfD+WXWhQRj0HppIESKq9bLtwGLIJIE8oaeh9qzW4K3F+g4RxZB/6mP47XCd2Kt/A== X-Received: by 10.28.18.1 with SMTP id 1mr18876095wms.88.1511779764388; Mon, 27 Nov 2017 02:49:24 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:23 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 15/18] gpio: mockup: implement gpio_mockup_set_multiple() Date: Mon, 27 Nov 2017 11:48:51 +0100 Message-Id: <20171127104854.333-16-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Implement the set_multiple() callback and register it with the gpiolib framework. This is only meant to also test the internal kernel API. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index dfb9ee03a2f0..cbc823e43151 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -96,6 +96,16 @@ static void gpio_mockup_set(struct gpio_chip *gc, chip->lines[offset].value = !!value; } +static void gpio_mockup_set_multiple(struct gpio_chip *gc, + unsigned long *mask, unsigned long *bits) +{ + unsigned int bit; + + for_each_set_bit(bit, mask, gc->ngpio) + gpio_mockup_set(gc, bit, test_bit(bit, bits)); + +} + static int gpio_mockup_dirout(struct gpio_chip *gc, unsigned int offset, int value) { @@ -269,6 +279,7 @@ static int gpio_mockup_probe(struct platform_device *pdev) gc->parent = dev; gc->get = gpio_mockup_get; gc->set = gpio_mockup_set; + gc->set_multiple = gpio_mockup_set_multiple; gc->direction_output = gpio_mockup_dirout; gc->direction_input = gpio_mockup_dirin; gc->get_direction = gpio_mockup_get_direction; From patchwork Mon Nov 27 10:48:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841606 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="FUGXnWWD"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylk8y5jqwz9sPk for ; Mon, 27 Nov 2017 21:50:26 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752137AbdK0KuY (ORCPT ); Mon, 27 Nov 2017 05:50:24 -0500 Received: from mail-wm0-f66.google.com ([74.125.82.66]:45151 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752205AbdK0Kt0 (ORCPT ); Mon, 27 Nov 2017 05:49:26 -0500 Received: by mail-wm0-f66.google.com with SMTP id 9so33105597wme.4 for ; Mon, 27 Nov 2017 02:49:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=fqu7Jn7BvMH6F6u+Y4tnRR+gejphBPLrCFTgKE9zqaw=; b=FUGXnWWDOtVc5g+KXam8peib8Z6OZQuxNATfO5ZQPE4egOit8lx/nZM5j75qPxja7Y 40YsE+Z5jzMM5dGTmySwqmQOua0SYP4Xa/ARq4jkXrV5NUdYIjZtUNXEj0wNRz6mtGeo Ed+B2TUkYAIa9EBvJ9cDF2K8eOSr9CSwIRNBthy0aqN4qy8zWCbdzULmr/Uq7PX7kXdS MAf4Wz+PNTKi3Zcu5J7FEZ6uLtCpm64voMEeWEaURuSDh9wAxN/o7cDLo2GQKN42sh+r +igBlPB3gKl3wXQsh4dwFdBF1ocBXEfyRitfSu7+hCjhvzJEjMzPMLeAJTjMqtd8JRIa KziQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=fqu7Jn7BvMH6F6u+Y4tnRR+gejphBPLrCFTgKE9zqaw=; b=S/elaVqsB+AMiybuJs0AlyMq0qPCbcPHDwu3Vta+IJgDKU+0M0gtB9uZll+hqA4pA8 JDo9k+MdoFyb0Kw3I173flZxRseGBO+w/3B23x5lH0HrOpBO6Bzs1K3jUfaq4BjQgnof drYLDhbkPj26yROuN8lusQT8rSPTf2mt+UK6VVTpSjoHrinlxiy0TYWSA7pna59ngWZK fXVGln8xyGRzOq8iEDBldCwihMLi7eN8NWz852bJDuMibUP6P3OPsD/MtT35jHDwk8DW aafCFjtKVzxNsm3kNb2FT0verQPW6S8xHPTPEMorYl69edGi02EhlepVkbVACYHnPFvA RCMg== X-Gm-Message-State: AJaThX5sKU3ek2u6WLTY6adUeJs1ubFXgKRIryOcEQ38PJJUtgCGbKbd pQ93bKVuIenTbTm0snKwTry5Sw== X-Google-Smtp-Source: AGs4zMaojQnnH06NtsC40tMRzq6VbLFJkMTgt76+I5RNmAVNbCObvTrhmG4oph9C8UAvZl6lEV1XGQ== X-Received: by 10.28.101.11 with SMTP id z11mr14142966wmb.110.1511779765481; Mon, 27 Nov 2017 02:49:25 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:25 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 16/18] gpio: mockup: modify the return value check for devm_irq_sim_init() Date: Mon, 27 Nov 2017 11:48:52 +0100 Message-Id: <20171127104854.333-17-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org As discussed with Marc Zyngier: irq_sim_init() and its devres variant should return the base of the allocated interrupt range on success rather than 0. This will be modified later - first, change the way users handle the return value of these routines. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index cbc823e43151..0abb53038ba8 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -297,7 +297,7 @@ static int gpio_mockup_probe(struct platform_device *pdev) } rv = devm_irq_sim_init(dev, &chip->irqsim, gc->ngpio); - if (rv) + if (rv < 0) return rv; rv = devm_gpiochip_add_data(dev, &chip->gc, chip); From patchwork Mon Nov 27 10:48:53 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841605 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="FtcR2H/Q"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylk8X2Y7Yz9sPk for ; Mon, 27 Nov 2017 21:50:04 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751732AbdK0Ktu (ORCPT ); Mon, 27 Nov 2017 05:49:50 -0500 Received: from mail-wr0-f194.google.com ([209.85.128.194]:40512 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752485AbdK0Kt1 (ORCPT ); Mon, 27 Nov 2017 05:49:27 -0500 Received: by mail-wr0-f194.google.com with SMTP id s41so20503211wrc.7 for ; Mon, 27 Nov 2017 02:49:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=xqr/yH02mllooNrkhmq82UEbl03UoW/p9CUT4i3eI1s=; b=FtcR2H/QVGqrOKWykIpqxT/NtpsJiPMYIJKV44LSA4+GXC8Homyinvd0MWxCrIhzvR hwigVMCsEem8bhAeONXc9ghjDz5e4xqCfrW7yqGAU2XoEp+bGBJyVDhLGBKSi4TGyEer dqtCd2QmHpxPdUtw1yv5DsvaeTHC7hQHbTmkLxLTfzeDAqFOb+0TXiOMesUDPaXBXEcf GvTsb8uD5HBO2a6wLLuxIXzW8Jm6h8uAOYbxNyvA0UYmxJWWNsQpXcjp1rfCKBW1c0Uy bLTgCRU78LWVv7387S90PZ4pRRNRsm7xXfj0MXc1BPtsCBxuayelrVZbyA1GYxVfCgYI JkDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=xqr/yH02mllooNrkhmq82UEbl03UoW/p9CUT4i3eI1s=; b=T5b6pxFWZ+PNh+T4qjTDFXULumh0xrKkQFdzrr5xFRYovese0HWV00tuGLrVVqPBOR lC3XTmLq06w1i0b76gafLV5PhBrVhQmi3CxdQBmRR6fYag/3D5KCkbsaviRZKB/2Q2Lx IusY4lIcOiQI38hY8nGsbBYKhgRJyvna0vFczPNUFDZhIIsL4MmAT9/X47RfS7w/9SJc bpqkZ8ZbxoyKZE/wU5lKPB/EccZAmoCfzSg8HVWz003jYwgGI9x2yIg5BW3jRQ+GS1cV IFEhSkwDBFDdtpcIEYXqrhU6pXLuOL3Wrvhpjr/3jzTu+OR5oiLMvETAXXcblnmztQG+ upwg== X-Gm-Message-State: AJaThX5m1mOgaTKKRdjVuJqhh3WB5pNJql4bacUb8ABsF6qh2EuZiTMH 2HLzZ9SPHNZBj1CXR5sxZdmZ9Q== X-Google-Smtp-Source: AGs4zMbTAywWifBrzm/lp19Y4AwL1p4BilQCRbAkVSnarCAy1autYne9GFtOOtOJ8yPDGFVqle1/wg== X-Received: by 10.223.176.121 with SMTP id g54mr31315202wra.165.1511779766603; Mon, 27 Nov 2017 02:49:26 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:26 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 17/18] gpio: mockup: rename gpio_mockup_params_nr to gpio_mockup_num_ranges Date: Mon, 27 Nov 2017 11:48:53 +0100 Message-Id: <20171127104854.333-18-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org This variable holds the number of mockup GPIO ranges so rename it accordingly. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index 0abb53038ba8..a6bfbe58bc63 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -72,8 +72,8 @@ struct gpio_mockup_platform_data { }; static int gpio_mockup_ranges[GPIO_MOCKUP_MAX_RANGES]; -static int gpio_mockup_params_nr; -module_param_array(gpio_mockup_ranges, int, &gpio_mockup_params_nr, 0400); +static int gpio_mockup_num_ranges; +module_param_array(gpio_mockup_ranges, int, &gpio_mockup_num_ranges, 0400); static bool gpio_mockup_named_lines; module_param_named(gpio_mockup_named_lines, @@ -338,13 +338,13 @@ static int __init gpio_mockup_init(void) struct gpio_mockup_platform_data pdata; struct platform_device *pdev; - if ((gpio_mockup_params_nr < 2) || - (gpio_mockup_params_nr % 2) || - (gpio_mockup_params_nr > GPIO_MOCKUP_MAX_RANGES)) + if ((gpio_mockup_num_ranges < 2) || + (gpio_mockup_num_ranges % 2) || + (gpio_mockup_num_ranges > GPIO_MOCKUP_MAX_RANGES)) return -EINVAL; /* Each chip is described by two values. */ - num_chips = gpio_mockup_params_nr / 2; + num_chips = gpio_mockup_num_ranges / 2; /* * The second value in the pair must From patchwork Mon Nov 27 10:48:54 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 841604 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-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="Ax21EVY6"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ylk8C0DDcz9sRg for ; Mon, 27 Nov 2017 21:49:47 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752200AbdK0Kta (ORCPT ); Mon, 27 Nov 2017 05:49:30 -0500 Received: from mail-wr0-f194.google.com ([209.85.128.194]:34659 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752507AbdK0Kt2 (ORCPT ); Mon, 27 Nov 2017 05:49:28 -0500 Received: by mail-wr0-f194.google.com with SMTP id k18so20976279wre.1 for ; Mon, 27 Nov 2017 02:49:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=1vuhQbdTAZyt22vHYkI9k40P2FJuusmcuQ++liRT9uI=; b=Ax21EVY6I8fG99p8TucVNBSBy/KVTQ14WFA+P/ancpZIyHXMftV0m9hjF2CxupB+eV t1Vgd50/72WhY4E+A1vSZ0PzxNouaZbcaXLc9phOvflJQxePKUsmWBdeSrPWTB3NobFk W2sVxhEKHpKRAOFjjZ5EXBR7BM+xkvovtFCpPXwJKIWwA9VOw8N1KCoFlTOFCD9s0HR4 s/8PbWZfVqCzhcfL1ANKnoDlodEmHjon+OrraVQY3rniZL+ff+9punJz/FEhrF/dIADb sBilJuVgahhB5S3ULo4M93JT07opf2DPqRPsz58i3bAimOUNdPAmG0+3MXwrpK6RLYsY IYuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=1vuhQbdTAZyt22vHYkI9k40P2FJuusmcuQ++liRT9uI=; b=Q8/f2C2Qbzm7ykVBT5AL6ULe/N5Vd+rEefQhCS9YBmsQvgxQNIlrEEePBR3aYCj5+z 74r2GF0E43+5uwe2NiOLXTSfW5ikQ3XnozoLhP6lvLqTJ7AmlV33OTFDRpwkmSr8bLvm 7qrZgQzEifW4oN1hu+G2p5lvedk0ux/x07Kgi83znCxHAW2XLAhwczqplHh/2l5NHGLx QxW75afcZhTmXS7LrO5ZHOY9nYA22A6jmtKFhFnVIZ9kH765mg+aNk5KXB/9AGLzfnkv 4sX8luljQ9CRtUJgRhOZnYbBNc6d69vV/4AfBEy0BuK1o/2Q0aYMs4jYQwuCto6vLGkJ fKqw== X-Gm-Message-State: AJaThX4ozxQdgfiCG+QAjcWTOkZO00LMfkFgnzYdvyZy5aFJ6avbRUsw ioiHXXyDZdSQaDjcLQbiGlJGbw== X-Google-Smtp-Source: AGs4zMZUlNq4hKp1HMvImNEQ0/52KyTNjq9HTz9qDRguxu6finiNuqtVkS4i299sZ9kDzoakL498cw== X-Received: by 10.223.134.216 with SMTP id 24mr34037685wry.156.1511779767704; Mon, 27 Nov 2017 02:49:27 -0800 (PST) Received: from bgdev-debian.local ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id 68sm21071741wmh.2.2017.11.27.02.49.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 27 Nov 2017 02:49:27 -0800 (PST) From: Bartosz Golaszewski To: Linus Walleij , Bamvor Jian Zhang Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 18/18] gpio: mockup: add helpers for accessing the gpio ranges Date: Mon, 27 Nov 2017 11:48:54 +0100 Message-Id: <20171127104854.333-19-brgl@bgdev.pl> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171127104854.333-1-brgl@bgdev.pl> References: <20171127104854.333-1-brgl@bgdev.pl> Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org In order to avoid repeating the calculations on every access - add helpers for gpio base and ngpio components of the ranges array. Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpio-mockup.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index a6bfbe58bc63..ea8c730d8af1 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -81,6 +81,16 @@ module_param_named(gpio_mockup_named_lines, static struct dentry *gpio_mockup_dbg_dir; +static int gpio_mockup_range_base(unsigned int index) +{ + return gpio_mockup_ranges[index * 2]; +} + +static int gpio_mockup_range_ngpio(unsigned int index) +{ + return gpio_mockup_ranges[index * 2 + 1]; +} + static int gpio_mockup_get(struct gpio_chip *gc, unsigned int offset) { struct gpio_mockup_chip *chip = gpiochip_get_data(gc); @@ -351,7 +361,7 @@ static int __init gpio_mockup_init(void) * always be greater than 0. */ for (i = 0; i < num_chips; i++) { - if (gpio_mockup_ranges[i * 2 + 1] < 0) + if (gpio_mockup_range_ngpio(i) < 0) return -EINVAL; } @@ -367,10 +377,10 @@ static int __init gpio_mockup_init(void) for (i = 0; i < num_chips; i++) { pdata.index = index++; - pdata.base = gpio_mockup_ranges[i * 2]; + pdata.base = gpio_mockup_range_base(i); pdata.ngpio = pdata.base < 0 - ? gpio_mockup_ranges[i * 2 + 1] - : gpio_mockup_ranges[i * 2 + 1] - pdata.base; + ? gpio_mockup_range_ngpio(i) + : gpio_mockup_range_ngpio(i) - pdata.base; pdata.named_lines = gpio_mockup_named_lines; pdev = platform_device_register_resndata(NULL,