Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756168AbcKVQWO (ORCPT ); Tue, 22 Nov 2016 11:22:14 -0500 Received: from mail-db5eur01on0097.outbound.protection.outlook.com ([104.47.2.97]:55264 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1756109AbcKVQWK (ORCPT ); Tue, 22 Nov 2016 11:22:10 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peda@axentia.se; From: Peter Rosin To: CC: Peter Rosin , Linus Walleij , Andrey Smirnov , Neil Armstrong , Subject: [PATCH 0/2] pinctrl: sx150x: set multiple pins at once Date: Tue, 22 Nov 2016 17:06:00 +0100 Message-ID: <1479830762-1839-1-git-send-email-peda@axentia.se> X-Mailer: git-send-email 2.1.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [217.210.101.82] X-ClientProxiedBy: HE1PR0402CA0024.eurprd04.prod.outlook.com (10.175.27.34) To AM5PR0201MB2308.eurprd02.prod.outlook.com (10.169.243.7) X-Microsoft-Exchange-Diagnostics: 1;AM5PR0201MB2308;2:j22c6ptQ38y5Nh6Um6Eo+Y4aSQAlI9XzlejTExSzKTKmEK7cP5xQNPRvfEEX2l3TMm1vzsE5dT0rwLTECWIikBOYZvSs9IEueG3g2iK9DvIV15qvLZIIy8YjdhVyWXp2JJEYUnl7f1CIfz07lvOCBCzclmEqk7gwlsorVg9Y148=;3:AkfXX1TyVS5eoTpQe6ZtCU9+KZLpmjdE7kcf/qe8mT2zAHZxKQHNJ+Z2yyb7F/bkR50G/UUadEH0SiID0XHdrIyZ1weJuAVr6J5UWbimdlTGf7lUHowofwF9KbDKK9pU0DUFMVuJrWjqOTUO55wWHDarcFmQQppae1ijVMtxspQ= X-MS-Office365-Filtering-Correlation-Id: 4fd8ea82-b2c6-41db-e545-08d412f17d1e X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:AM5PR0201MB2308; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0201MB2308;25:olMdYJwSz38CMsP13Y0QN1Yvek902nzSmRx7bWEdwK9xBtKnQObRPxT9l2iOiyQnW4Qhgi72mALeCfQRrs1iuz0+6UxvXT6qGRHMvfjzhs1wXp0oGGA5Bx0v2EfcouB9ooWZ0baSsiegqe2XEKvQP7wd6K1kPDdHA4/x2u7iPdIKsAYXONIFCIGlXnH5LA63E3eo8SMU+GYxm7dKV/otpi3onkaAOihqLy5OyGS8ACE56IaD15Fzl9vxrjnVc/bZ2RD3u+Mz/dlEh0ij5vF2R/sUK1sVSn0L4Mq1rA4rhG+XGZU7FxIaKK4H/MeokhmB+/jfwe7KoKWSKeq6mBfcYkvM4U5GgTZghJdZVgLH82fijoVrjH2C191vX08fghSNm+X4jjvS51ZZ7qgl6CMYsVpqPOjrg7TT+lFNVjaFzxCmcFniwZPXTmMyiB5t1y/FkpjzHdXQwF0dIcnH0ExR6FPFjABEqgFCusfz5h+dMN2oCjfynTlTYKI30sfByUSSG5/ocQ7/GihPdoNKQgtwYl9Q00OLo5HJ9D/4rBmzgOgaWEax+fEzsj99G84sBa0zZMZRoR6HwDrtCsPA6ryaDQUcSmT0ZV8hHCacMjMNeOBgXtOUxtuBItIJSp+lRdU2wTlBpEqW9Y932YZpbrlnM69VNaEBVh0vpSU/Ao83nFhD07TCyK2RRy/GUbYlTdAuPe5rqMeB+GsqhgvIlwePl+J/GI3E/z8Q+AcqzayRGNhjy9lhvieUdw/2rtHU93nBDmjBzxwbIBVR+9QFaiH2aLIfxZR+Vpbs5V4pNRm4SkY= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0201MB2308;31:LM5nu3nNp+k6BBr1IDeHKk1QEm0h05tRZyulxN8hN3dsNWWDmUyz/nU1OANOPBK859p1mbCe3xkPRV5k6JZOCweCSUz1WbiMaiP0x19LtbGym0+JqdPtfmsHKjz3yjaEonzmNWaXl7Q6hYFEYZIktQjyzZ4hi09+yExGhI3VUDrH7bTJ7xufpQQer6G59Awjdga6Zats3+3cbc9LVriXtCfE7DkRJBVuNZF8LxLLjDcTtPk/TgcDD7NobEjNA17fdC9Mg0JhL6vZCf122SG8/Q==;4:W35izcpgkYut1MA6Wr5fexgohqDrKnvG5qQHzEMm/XKa0nQ4pLQgyyDaMaTx9KCDEkyMpfSz6bNja7/qcN5X1n1CR9VuEQoJb9eW6uf3wUBOWBKhHYcTS/qTU5TfgmKoU/LdLzTEyE9DVdug/RzVK3xfmUWdELLSr183h3o/usVIojxt1egfw9V9wvkp01K7ofslPL7yheEjejsi/iQomjeH1PvPYaf93N6+holDszAExJh/baTewhYLjoldbZz1YuhUdqp8u54xy/oKUat1uKF+E5dQDHB09PAFZRdeJcZX/0s7zafR+O9hoQiN2aXDYEnrg9QPlEFb7A2FepR0HekUj7lgSWqtXSFFgnQFt7+e1nNLSGb0NrSUTm/Dz/r+MwcaLt5ss3I8oYbjfrb8699bu/zB+gD3pLyadveQLrgw5dsdRtnayI0tjooC2TZ8AJ90XT4xJsalKk/KkdpLM+j+EJLvhBzaVHBP500U8rR/tSdehAEPfet4TE1HWv5D6iKF4kGIVpfh5rgLWtvTmQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040307)(6060326)(6045199)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041248)(6061324)(2016111802025)(6043046);SRVR:AM5PR0201MB2308;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0201MB2308; X-Forefront-PRVS: 0134AD334F X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6069001)(7916002)(199003)(189002)(92566002)(3846002)(50226002)(68736007)(50466002)(189998001)(6116002)(2906002)(81166006)(97736004)(5660300001)(77096005)(8676002)(4326007)(81156014)(33646002)(6916009)(36756003)(5003940100001)(6666003)(86362001)(74482002)(101416001)(42186005)(47776003)(66066001)(38730400001)(7846002)(106356001)(50986999)(110136003)(2351001)(305945005)(7736002)(105586002)(48376002)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:AM5PR0201MB2308;H:localhost.localdomain;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM5PR0201MB2308;23:g7sIb4ka1o4y228VfCei/GIYdpHbZteb6CQXhgj?= =?us-ascii?Q?XgL0lKo4PomG92fIxSlwemFbnVGHAWBPDnbtyEbw+2sUu/Vw6xQBdenocRgf?= =?us-ascii?Q?ZFSPkeXuThYPobpO7x8AaNUkQh+FD7vHAa56KQZjSj5puOgwYiqN9ExBS/w9?= =?us-ascii?Q?aRAdZ1tbIoidQtNiewKtnv1KZPz5SjjkSABYuBYQwm2pxtD5NhVsJ9cdhFTP?= =?us-ascii?Q?mBEw7FdcfK+VlkFmhIqyyZJ/Rg5sPynZH+zSVKaRA5h02/j5CPxR9n/BaiCQ?= =?us-ascii?Q?M8UqvY7twX4Ucx/M858v2mN5U8XmyZ427LFj1hrWl7fswojakdMeUR2X8V3C?= =?us-ascii?Q?Kbl5DcCdhT8kaCI0AyXZyjBHA1CVLs2BZQSaUXrbRATQcpbHUKLCK8MUWIvO?= =?us-ascii?Q?ovSphMq9xVwq4f04IR8z3pxoZia55JFnGvLvTwokfrAhQkUSWqNxBq+dVx7Y?= =?us-ascii?Q?nlUTn7gRPNcX3P+jjXJE+/VBZa21l6BaMfZMaaOWS16OjG3ntjGt1lWZT7/3?= =?us-ascii?Q?gN0lSpKdY0+7E7qV7G8ZoQYH1fW8A8lwT4JUn2nqwLeLNa1loWyfG74EEz9d?= =?us-ascii?Q?XSXMIHuwVuF6dxdJt7O2oapjS1IC3F953x+wyUqQy7Yedz3WtN1yi+BsNuS0?= =?us-ascii?Q?1M32yMaM2VSEcEj/ONhF7ge5vKHW8MKWMDwkryNItHoVa8vGkwRW6v71ycqq?= =?us-ascii?Q?mIeDSDLTsTFWLYCuv/gKr8rE1XjYJXAWvfD52jfhFduTtqGM7g9ElpvBKjLQ?= =?us-ascii?Q?/L7NNIc/BSXrhD0xUiGITHA+i6yoL1VCKcAdNqMqR1bVv8v5/+SifRhIxZQu?= =?us-ascii?Q?2fJZCTI17wVKCJrr1K9fKbGkt9doMiOto1ZyohoimYY6YE319B1nWzoqut3b?= =?us-ascii?Q?NqLYyInXXMtU+6Ys4+HA6JdyrRBpSvYNX3FcFz8htUc/APj5G2ZzWB5SfE6K?= =?us-ascii?Q?RcmcW1BHoEZ6Lri6jUXAmKPzHdhc0s0wVAnhVLGANo+NT7vKupqvwlY40bzW?= =?us-ascii?Q?0G/H2gIWk2mPXG6GlhJvikRXJgSAwDJ2JmjBM72j4J80zmspVc67FHoE5Qyf?= =?us-ascii?Q?8GOZxMFI=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0201MB2308;6:kvSPG8kAAbeAlRTr3uzWDZu9Y58FCdTl/0aeCRBdXmTSPbgOWW9S7CmGRDkwhYN59/Kjhi1PaUkatLyBq5F3qPKSIvycOaIpjQ0miGMvzd2ZbF+djx9J0q3f5zqkrGXLR1OoEH1P3/h0WGv01+dF4PzvUA2RqTAMK10cNUjM0APJu6OCWprIxLT+gyoIDwbngA85+On9zYu3Rf4wMWyat7Ogx4HpRQedWNMOErYbk1j7qZQNg7Z4BCAcmXvMc/SuraTvXJ0/JoO71jAN83s7n3BGwvxND9NbEjpyOdX5bdAy9mgVy3SyqtEr39qIksIR/fH7uZ+SS7xLRBCm8jZ+wyybUpegGViwWN+s9IwVWa0HHKsJEYJqXeNWMrLl2o1/;5:0L80qA2pfkZNs98YrW7PLtbue07ZzmlMHw6W9XQwQxTNh/F8FbZwdHdfFfeJdvCVI6cNmBiRTovy9bxP1b0eM76CDCXp/b2zfm/vZOSvIECfA10PPg8nj+EgJk+DYpRqoYGT4H0pUWLEf2OFsrP5HA==;24:5EtGXfAkmTcsEaan7mrnx/fnd3QSPW1NHTOeLqk4U68QxKODhQqGsRCFiGSTfeg9Q2i7LqJLh3FSkWYraTcVWVu5J+MzNMkn5cyMT5aN58A= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM5PR0201MB2308;7:Ih1oPTdV/J+jKQbtNU0JnxyLFavA5fGR1YMo1y2Ac0wE7QomvsNiBPy4habIa0fVd24QGxP2WR++A8fPrmZ5nFMaRYkOydRdBogz9PCjtafImrLm56/5gwSyy3ZFIXUlB5fa7sNNtKyVwHKkugfSUUDmTC9g7xnTZgX3QPUa5cgkHes+d659tn6mWB6440KJF1S+7Nywonl1nB2uw3ZR8phQ2G7rM5moeWrIILvUPD57HmFylxL3iPabubyRmQUjMwj6339BW+vTa4FTsJreAzE1G20k52+WsYKPLeqcdlrxsaLJjym5t3alB1nevURfeuiiNR6ETLKXb/LUtVI+dDcQ4hJQW0Xxz0GoUYRZJ1U= X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2016 16:06:15.3200 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0201MB2308 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1203 Lines: 34 Hi! I have only tested this on an 8-bit sx1502, so I'm uncertain if the there needs to be locking for this to work as intended for the bigger chips with an oscio pin? Probably. So, I didn't add (or rather, removed) these lines at the end of sx150x_gpio_set_multiple() and made the op optional instead. if (*mask & pctl->oscio_mask) sx150x_gpio_oscio_set(pctl, *bits & pctl->oscio_mask); I mean, what happens if there are two users writing multiple pins where one of the pins is the oscio pin, and this happens concurrently? I get the feeling that there is nothing stopping interleaving in that case, and you could end up with the desired values from user 1 for the normal pins, and the desired value for the oscio pin from user 2. But for the easy case (no oscio) where the existing regmap locking holds, this is a nice speedup and desired behaviour without a lot of individual pin changes. Cheers, Peter Peter Rosin (2): pinctrl: sx150x: various spelling fixes and some white-space cleanup pinctrl: sx150x: support setting multiple pins at once drivers/pinctrl/pinctrl-sx150x.c | 50 ++++++++++++++++++++++++++++------------ 1 file changed, 35 insertions(+), 15 deletions(-) -- 2.1.4