Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp4461496imm; Mon, 20 Aug 2018 16:44:15 -0700 (PDT) X-Google-Smtp-Source: AA+uWPwZoVfXJ9FQqDRwBSWK8WdZF144fHQEGVxKmLvpRicVPDPRfIa1JVB0IG4255EVRfwaBWWk X-Received: by 2002:a17:902:6946:: with SMTP id k6-v6mr47803572plt.268.1534808655507; Mon, 20 Aug 2018 16:44:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534808655; cv=none; d=google.com; s=arc-20160816; b=Ydudcs+SnXoCep0TgWaezfsXqoZXOWZbpw4El3H6TDPVnScUOTuLRz4zI3D8jHycYH 12l+q/1Mt1r7kxkSULgrR7J7XZjz4PrPXLKXV1rnmybd8h97uvm2HdnFTW65BTAj0fUs ziFkUdEfrnwt/GjxUGT0KvQpn72UPm3I3KfG1hZOCMYvB3SbXUXmwzVkY+7wPcoWlDw4 cqQ9Jba9+U5HqfkTeGoOX8qT6E2oTY0aF6K/Y5vMwL9EofJ02E0N18q3ZKFdsR2CAj8n GeQhi6dn/cL9tkt+fsduaqYE3WoM9+7JeJ7LYAV+7pt8l7j4kruoIiZJJU0oYI5gFyNl hTMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=z232VfbLRmE5HjKCQ97d98g/77/batkRj+02M7hpQb0=; b=VJSWGi4oJbuorNWx1pbfXB1z891sf9c7aRI6FCHiyWW6ivtpqKS6eCT66OsVaIaMGe 9xMsGFcQVaLvqEDPAFnowoi8uHXOMOdEhffQltfHRHzgTtItqLBJchroRlKYmx1Xxw9O tOaEPtyHihpXeCBGJ8c80ZBXe+oBcrB3n+1geha29jEqDIhORMEkby2dEhn3v11Q+vu5 tlNQgIiWKHH6pdZxXOT7bYxuGzeHlArTJQuIamW43xNDKtzDrdezjZ7ZNgmdOa9sMN27 W/feMmmmOdyxirvLSe4WwY+KyXabUVZjgS4pYT+yq2D5K2AvVJu5aX0ElMfvlH2P7EPD 37Zw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=fOEkX2IN; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d127-v6si11624840pfa.189.2018.08.20.16.43.59; Mon, 20 Aug 2018 16:44:15 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=fOEkX2IN; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726828AbeHUDAe (ORCPT + 99 others); Mon, 20 Aug 2018 23:00:34 -0400 Received: from mail-wr1-f66.google.com ([209.85.221.66]:37453 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726585AbeHUDAd (ORCPT ); Mon, 20 Aug 2018 23:00:33 -0400 Received: by mail-wr1-f66.google.com with SMTP id u12-v6so14315029wrr.4; Mon, 20 Aug 2018 16:42:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=z232VfbLRmE5HjKCQ97d98g/77/batkRj+02M7hpQb0=; b=fOEkX2INJujA2IlBUu5MZTEZffmi7d6K1Yxwwp51JpLZah9ms7OYKk0ABRsYUFJwx6 h0kX+58UwQC96+1ZjTi0/oEfOzLPYMisdD9XgIR0w27tUuMRlOcIDnYIjk+lGtah+c3Q LItffFPbembUcrAc6BjJclPiLSl1sTbWV4872gHif4UtBC3TkY8Y2aZyRsl4zT0QNyxV 4SEk0d/w1tHx/JxU9O/P0EJI8LqkIQwCaf9dV7CgHK05trMlCZMBAc7kE/guJ7vkeqgL ZhYXz7+XMmPvj1nig4BhcmPkK+pD910r478C9bjawhSFMhtN1pw+pasa7d/OlS3/zB2/ Xh8A== 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=z232VfbLRmE5HjKCQ97d98g/77/batkRj+02M7hpQb0=; b=RQhtku1Vfp4Z70P5G8p4UYIMnI5SwSx+nN0LAI26Dq+2DLegjPxP6xJGWlicGdtq7N oPhjqb9wjRl+XX+FG6+Z/i5V9xF+VJ9i2Q3PvuM1b3xlRLmI/DaXGe6++F94GdicWJSX RGKKUlUGd8O2tvvvo5VSFvr1MC3I7JLEIuEnP0hymiEeElwRUrDWF14kpZvcibalS9sQ KCE1jZaoVcXgaL7R7ZicUg5UT+eropGB4ggbpGWUw4n1QOr0h6zjwXvcuZD72a8d9uJ8 JYRPXaxPf2VgnlqEf3TuQBSA2s6vBeEBcuGPgQM3YsSv6jzcJI3ePHVle/sqLLon8WgZ BYaQ== X-Gm-Message-State: APzg51Bgi5mPP0xpzbXmZgnbNwdqDkBEk0Y0qFz4heSomAd0lQnpKsPE ApX1ipNhKFo3xqNvrjMG484= X-Received: by 2002:a5d:4fc3:: with SMTP id h3-v6mr1471369wrw.261.1534808570275; Mon, 20 Aug 2018 16:42:50 -0700 (PDT) Received: from z50.lan (93-181-165-181.internetia.net.pl. [93.181.165.181]) by smtp.gmail.com with ESMTPSA id y206-v6sm1197634wmg.45.2018.08.20.16.42.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 Aug 2018 16:42:49 -0700 (PDT) From: Janusz Krzysztofik To: Linus Walleij Cc: Jonathan Corbet , Miguel Ojeda Sandonis , Peter Korsgaard , Peter Rosin , Ulf Hansson , Andrew Lunn , Florian Fainelli , "David S. Miller" , Dominik Brodowski , Kishon Vijay Abraham I , Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Hartmut Knaack , Peter Meerwald-Stadler , Greg Kroah-Hartman , Jiri Slaby , linux-gpio@vger.kernel.org, linux-doc@vger.kernel.org, linux-i2c@vger.kernel.org, linux-mmc@vger.kernel.org, netdev@vger.kernel.org, linux-iio@vger.kernel.org, devel@driverdev.osuosl.org, linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, Janusz Krzysztofik Subject: [RFC RFT PATCH 0/4] gpiolib: speed up GPIO array processing Date: Tue, 21 Aug 2018 01:43:37 +0200 Message-Id: <20180820234341.5271-1-jmkrzyszt@gmail.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20180813223448.21316-1-jmkrzyszt@gmail.com> References: <20180813223448.21316-1-jmkrzyszt@gmail.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This series is a follow up of the former "mtd: rawnand: ams-delta: Use gpio-omap accessors for data I/O" which already contained some changes to gpiolib. Those previous attempts were commented by Borris Brezillon who suggested using GPIO API modified to accept bitmaps, and by Linus Walleij who suggested still more great ideas for further immprovement of the proposed API changes - thanks! The goal is to boost performans of get/set array functions while processing GPIO arrays which represent pins of a signle chip in hardware order. If resulting performance is close to PIO, GPIO API can be used for data I/O without much loss of speed. Created and tested on a low end Amstrad Delta board with NAND driver updated to use GPIO API for data I/O. Performance degrade compared to PIO is much better than before the optimization but still not quite satisfactory. Janusz Krzysztofik (4): gpiolib: Pass bitmaps, not integer arrays, to get/set array gpiolib: Identify arrays matching GPIO hardware gpiolib: Pass array info to get/set array functions gpiolib: Implement fast processing path in get/set array Documentation/driver-api/gpio/board.rst | 15 + Documentation/driver-api/gpio/consumer.rst | 48 +++- drivers/auxdisplay/hd44780.c | 64 +++--- drivers/bus/ts-nbus.c | 25 -- drivers/gpio/gpio-max3191x.c | 23 +- drivers/gpio/gpiolib.c | 279 ++++++++++++++++++++++------ drivers/gpio/gpiolib.h | 15 + drivers/i2c/muxes/i2c-mux-gpio.c | 5 drivers/mmc/core/pwrseq_simple.c | 15 - drivers/mux/gpio.c | 7 drivers/net/phy/mdio-mux-gpio.c | 5 drivers/pcmcia/soc_common.c | 14 - drivers/phy/motorola/phy-mapphone-mdm6600.c | 21 +- drivers/staging/iio/adc/ad7606.c | 12 - drivers/tty/serial/serial_mctrl_gpio.c | 9 include/linux/gpio/consumer.h | 35 ++- 16 files changed, 410 insertions(+), 182 deletions(-)