From nobody Mon Apr 27 06:25:31 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8A5FDC433EF for ; Thu, 16 Jun 2022 07:35:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1359496AbiFPHfA (ORCPT ); Thu, 16 Jun 2022 03:35:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54184 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1359503AbiFPHex (ORCPT ); Thu, 16 Jun 2022 03:34:53 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 38D5FDF3B for ; Thu, 16 Jun 2022 00:34:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1655364890; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=92fbAsWhdXO9hCI4vEDW2G0z+l/JIsnCOl1NXT2FpFA=; b=Df0r+4gd+zmm5WzbEatxAW1MzUB/rqhsHShdVwZRLnSV3dmovK9ziHmpIbr8m4/4ca7XfB PgumM6RVR7pRrFV633W3ywOhHhgkHJcWSkwHhIHZ/5W61sRCBPU9Z33ut/3DGg83cc19/k 68RFSJj/qz4AieoIiKxp690tdGaqls8= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-235-kgbKPTYtMzqASQGXqdHEHQ-1; Thu, 16 Jun 2022 03:34:48 -0400 X-MC-Unique: kgbKPTYtMzqASQGXqdHEHQ-1 Received: by mail-wm1-f69.google.com with SMTP id k5-20020a05600c0b4500b003941ca130f9so288769wmr.0 for ; Thu, 16 Jun 2022 00:34:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=92fbAsWhdXO9hCI4vEDW2G0z+l/JIsnCOl1NXT2FpFA=; b=yE3muP1LhxYC9OaMtCYVAwIQSf8UqsjXwwd4T9W3KIVXsqsQocrZWqzWQD34QCx2i7 Wd+2ng7joXK9K7ww4RiJp/s55aPTWz7+WB+AEUniMbsESczsYoO2CsW0b6cQyV1rVOW2 0GRamrgve6U+p/H5+39PqVkT1rtKNZFW74El4XIvp5RyrxkKMVyDAicD8UBEcmlarX6y HKOYpEn988V8K4g5JTiQFxcQXd/RHnPn9CoD3imNOt71n+gQeDA9Hp2aEtYJ/YFb8RcA 0f2kA8+90UgAYsMnKorAZxMHZ7gBTYWHmrwjlvzQIrcoiYbP8CytHAxsxAvoZVACTlac ZqJQ== X-Gm-Message-State: AOAM530YPjBVbQ1kpc3fIfDregiEHvHW9amtmRL9UABXL9ZkkYPoeCkC LGU7FMPzGRbDSVaBA9jjOOb9V6QTUuE+ulQPOCUN2ZLOeAxv33D/BZ5dTqMz/SQWy7z+KhHP0on NdC2lPghgUg+TH5seX1NdtsiYMV3bJfkHG0lBr8ZspeXZsXu4NppVeRLgcenlGhyXSLdHB2i4la 4= X-Received: by 2002:a05:600c:1da4:b0:39c:8ca8:5f1d with SMTP id p36-20020a05600c1da400b0039c8ca85f1dmr13926631wms.138.1655364887130; Thu, 16 Jun 2022 00:34:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxU3BGb02V/p5mAZ8mmpP1LYb/P00pxF9PtUD9HSDTKZLqsK6WDZf0USwcp4fqb6zkmyQdftg== X-Received: by 2002:a05:600c:1da4:b0:39c:8ca8:5f1d with SMTP id p36-20020a05600c1da400b0039c8ca85f1dmr13926604wms.138.1655364886837; Thu, 16 Jun 2022 00:34:46 -0700 (PDT) Received: from minerva.home (205.pool92-176-231.dynamic.orange.es. [92.176.231.205]) by smtp.gmail.com with ESMTPSA id e4-20020a5d5004000000b0020fdc90aeabsm1020123wrt.82.2022.06.16.00.34.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jun 2022 00:34:46 -0700 (PDT) From: Javier Martinez Canillas To: linux-kernel@vger.kernel.org Cc: Marek Vasut , Javier Martinez Canillas , Greg Kroah-Hartman , Mark Brown , "Rafael J. Wysocki" Subject: [PATCH 1/3] regmap: Re-introduce bulk read support check in regmap_bulk_read() Date: Thu, 16 Jun 2022 09:34:33 +0200 Message-Id: <20220616073435.1988219-2-javierm@redhat.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220616073435.1988219-1-javierm@redhat.com> References: <20220616073435.1988219-1-javierm@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Support for drivers to define bulk read/write callbacks in regmap_config was introduced by the commit d77e74561368 ("regmap: Add bulk read/write callbacks into regmap_config"), but this commit wrongly dropped a check in regmap_bulk_read() to determine whether bulk reads can be done or not. Before that commit, it was checked if map->bus was set. Now has to check if a map->read callback has been set. Fixes: d77e74561368 ("regmap: Add bulk read/write callbacks into regmap_con= fig") Signed-off-by: Javier Martinez Canillas Reviewed-by: Marek Vasut --- drivers/base/regmap/regmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index 2221d9863831..e5bb70374ffc 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c @@ -3017,7 +3017,7 @@ int regmap_bulk_read(struct regmap *map, unsigned int= reg, void *val, if (val_count =3D=3D 0) return -EINVAL; =20 - if (map->format.parse_inplace && (vol || map->cache_type =3D=3D REGCACHE_= NONE)) { + if (map->read && map->format.parse_inplace && (vol || map->cache_type =3D= =3D REGCACHE_NONE)) { ret =3D regmap_raw_read(map, reg, val, val_bytes * val_count); if (ret !=3D 0) return ret; --=20 2.36.1 From nobody Mon Apr 27 06:25:31 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 547B8C43334 for ; Thu, 16 Jun 2022 07:35:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1359532AbiFPHfE (ORCPT ); Thu, 16 Jun 2022 03:35:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54194 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1359508AbiFPHex (ORCPT ); Thu, 16 Jun 2022 03:34:53 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id E9421E0AF for ; Thu, 16 Jun 2022 00:34:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1655364891; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Er7l8z53PbdFOnW6kEGMkIm/CzA/yPUfe0hwW1p2q3c=; b=LQQwijHchRC+rOV/N5HXYxewU8XZmKsyyK1z+i3dpz+xrb3ucK2pWTANT14BPzPWtRpDU9 6Shw6pJKeNSMVZrRr4ak7IZ/Bsz9ahBbyHCSLwC+Hb6uwOShqLKpykM22SSfl3QMzhjABv UgotErVp0SUCPBCL1cS74UXkM3nkE90= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-294-9VNiRsB0Pa-2rYJoaOwutA-1; Thu, 16 Jun 2022 03:34:50 -0400 X-MC-Unique: 9VNiRsB0Pa-2rYJoaOwutA-1 Received: by mail-wm1-f71.google.com with SMTP id o2-20020a05600c510200b0039747b0216fso742079wms.0 for ; Thu, 16 Jun 2022 00:34:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Er7l8z53PbdFOnW6kEGMkIm/CzA/yPUfe0hwW1p2q3c=; b=hdy//WTsG70/lBVBnCRPfMWIJEOWEuhsxSolfWxt6+6xOM/xWdd9FJPyEh17cx7xbD fGymwLXm+1N4tvM6HlP9U7euMGD2lip1QeGydOpmwImTmwptrbXGy1EnRfaJTv2Rwtb3 T+kG2iSdmoYFipjb2x6QlgPe25Z6jIYJKiZb65TZWJHXp/famicxDVH0zG+BsbAua7it yYei/KlbSDRh4GbWkX8MFHD/HNxzMQVcDr+GY/k+f87PTNH/Ywks6N4yAhm9g6W0GWzT Wvgpjf7i1MsgrZrP3GS8n3yyNLpU+nZKs/mfC/MBNFSwAzsiLkhN9F+tlemiGLve3M2n OEJQ== X-Gm-Message-State: AOAM533WYR7wKb6X2auEILNETcJF6/HjVvaSynPaxzr9N5kkbxKl7X1M B3I8z9hHwzLEZHzTR1LVbvq6Q02qRwMehhbvIsXY3pywY/gh71P30JAOQZahYgWWHGfrqZEPc9o MsLfRkc1PDG9Za5b9R+AHShVmV2Lr5g0TxwrQsYwv1sqXIIJnkxSlampwBfWfXDurhQZXTcvUmN 8= X-Received: by 2002:a05:600c:3b88:b0:39c:55b2:3d1 with SMTP id n8-20020a05600c3b8800b0039c55b203d1mr14415209wms.64.1655364888450; Thu, 16 Jun 2022 00:34:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxm/IZLlmQO5oDr4w/vGETAhtH9ZjNftsPO8fl+y/Dr4yCmvICItVVSoQBPx4+3ST8BJAJHWg== X-Received: by 2002:a05:600c:3b88:b0:39c:55b2:3d1 with SMTP id n8-20020a05600c3b8800b0039c55b203d1mr14415184wms.64.1655364888155; Thu, 16 Jun 2022 00:34:48 -0700 (PDT) Received: from minerva.home (205.pool92-176-231.dynamic.orange.es. [92.176.231.205]) by smtp.gmail.com with ESMTPSA id e4-20020a5d5004000000b0020fdc90aeabsm1020123wrt.82.2022.06.16.00.34.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jun 2022 00:34:47 -0700 (PDT) From: Javier Martinez Canillas To: linux-kernel@vger.kernel.org Cc: Marek Vasut , Javier Martinez Canillas , Greg Kroah-Hartman , Mark Brown , "Rafael J. Wysocki" Subject: [PATCH 2/3] regmap: Make regmap_noinc_read() return -ENOTSUPP if map->read isn't set Date: Thu, 16 Jun 2022 09:34:34 +0200 Message-Id: <20220616073435.1988219-3-javierm@redhat.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220616073435.1988219-1-javierm@redhat.com> References: <20220616073435.1988219-1-javierm@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Before adding support to define bulk read/write callbacks in regmap_config by the commit d77e74561368 ("regmap: Add bulk read/write callbacks into regmap_config"), the regmap_noinc_read() function returned an errno early a map->bus->read callback wasn't set. But that commit dropped the check and now a call to _regmap_raw_read() is attempted even when bulk read operations are not supported. That function checks for map->read anyways but there's no point to continue if the read can't succeed. Also is a fragile assumption to make so is better to make it fail earlier. Fixes: d77e74561368 ("regmap: Add bulk read/write callbacks into regmap_con= fig") Signed-off-by: Javier Martinez Canillas Reviewed-by: Marek Vasut --- drivers/base/regmap/regmap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index e5bb70374ffc..f37f80a52115 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c @@ -2904,6 +2904,9 @@ int regmap_noinc_read(struct regmap *map, unsigned in= t reg, size_t read_len; int ret; =20 + if (!map->read) + return -ENOTSUPP; + if (val_len % map->format.val_bytes) return -EINVAL; if (!IS_ALIGNED(reg, map->reg_stride)) --=20 2.36.1 From nobody Mon Apr 27 06:25:31 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CF603CCA47A for ; Thu, 16 Jun 2022 07:35:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1359525AbiFPHfG (ORCPT ); Thu, 16 Jun 2022 03:35:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54554 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1359518AbiFPHfD (ORCPT ); Thu, 16 Jun 2022 03:35:03 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 70D402DEA for ; Thu, 16 Jun 2022 00:35:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1655364900; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kH2mMYjAnxjjN4IG5IjgXPzjzT8Xkuw9HJZPSbPbxmo=; b=DLpdB9JZ5ztnNB9UywWl1I9cM0yWzDFb9LO2M7AOzpjm3OBbSGakmB/B8ojGksI2BHuhC0 klg1se29ULLpZrxpyolHqSGjHZv4oTK/d//LrM7OaWGfjspvIISshUOnwWPvHtJ0PKvmTp yS4YAYhfgWWyCuGVSao11ky+ipZKYFo= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-377-aytaNk5VONy-XlwLrsCjog-1; Thu, 16 Jun 2022 03:34:51 -0400 X-MC-Unique: aytaNk5VONy-XlwLrsCjog-1 Received: by mail-wm1-f72.google.com with SMTP id o2-20020a05600c510200b0039747b0216fso742103wms.0 for ; Thu, 16 Jun 2022 00:34:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kH2mMYjAnxjjN4IG5IjgXPzjzT8Xkuw9HJZPSbPbxmo=; b=yRQxMJI5lhnx1vLtXuIBSGjSnwhqfa++0BQxkHRKFwIx64WvDMpG1CB+oJjaS0FhiM 0pTVJOuZVLZbVKQg50Br0/8d5aMFxNwDzUJo9lh/GMIWyp6zF1kv8uXV+JG7K891h69o mNUvdYuU0TQQS4OiON4s2JnDPO2ey7v7dQm/7ULRI+9sg5THVhNuXPnJ0vO0YUiBsyJq EUtt+i3gpcupTZezoD+/OYB9IAekwL1qgNdKNNcF88u6ffaUf/mRgnAluGhpXGWVHOVX 3HjojL2kmdfu5AvjyojoP4ciFMX+WfpmmZrOry9RRWpVEixeX+SGLDm/LqkCFSGfLfIc vhgg== X-Gm-Message-State: AJIora8Vq1X4rMFg2Z/PdRokc5KJhY43R4ZuTxSkGAPcyO8IukiRrG82 OhOWH66WCmp0pZsSbKiLZjvvmNXbmW3cJ38en86WVR+h23oh/P+VOnMEvDKuwQQZopNuETgQpUd wcPnEjiFg4jtjKnSZPsmrbRs6aNo4FWnLyCL+ZUi4z5HRfx2Z9gcy71RjEr9KNsOXEMBFmRRP0r 8= X-Received: by 2002:a05:6000:2c6:b0:216:7691:5395 with SMTP id o6-20020a05600002c600b0021676915395mr3342284wry.478.1655364889713; Thu, 16 Jun 2022 00:34:49 -0700 (PDT) X-Google-Smtp-Source: AGRyM1thOdCAHz4LQEGXeHBOF2OCNJMn/Sb1jqRyj9lSYMHq4G9sGQ09XPdB5gtYo0IyQT4uAIGzug== X-Received: by 2002:a05:6000:2c6:b0:216:7691:5395 with SMTP id o6-20020a05600002c600b0021676915395mr3342257wry.478.1655364889405; Thu, 16 Jun 2022 00:34:49 -0700 (PDT) Received: from minerva.home (205.pool92-176-231.dynamic.orange.es. [92.176.231.205]) by smtp.gmail.com with ESMTPSA id e4-20020a5d5004000000b0020fdc90aeabsm1020123wrt.82.2022.06.16.00.34.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jun 2022 00:34:49 -0700 (PDT) From: Javier Martinez Canillas To: linux-kernel@vger.kernel.org Cc: Marek Vasut , Javier Martinez Canillas , Greg Kroah-Hartman , Mark Brown , "Rafael J. Wysocki" Subject: [PATCH 3/3] regmap: Wire up regmap_config provided bulk write in missed functions Date: Thu, 16 Jun 2022 09:34:35 +0200 Message-Id: <20220616073435.1988219-4-javierm@redhat.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220616073435.1988219-1-javierm@redhat.com> References: <20220616073435.1988219-1-javierm@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" There are some functions that were missed by commit d77e74561368 ("regmap: Add bulk read/write callbacks into regmap_config") when support to define bulk read/write callbacks in regmap_config was introduced. The regmap_bulk_write() and regmap_noinc_write() functions weren't changed to use the added map->write instead of the map->bus->write handler. Also, the regmap_can_raw_write() was not modified to take map->write into account. So will only return true if a bus with a .write callback is set. Fixes: d77e74561368 ("regmap: Add bulk read/write callbacks into regmap_con= fig") Signed-off-by: Javier Martinez Canillas Reviewed-by: Marek Vasut --- drivers/base/regmap/regmap.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index f37f80a52115..c3517ccc3159 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c @@ -1880,8 +1880,7 @@ static int _regmap_raw_write_impl(struct regmap *map,= unsigned int reg, */ bool regmap_can_raw_write(struct regmap *map) { - return map->bus && map->bus->write && map->format.format_val && - map->format.format_reg; + return map->write && map->format.format_val && map->format.format_reg; } EXPORT_SYMBOL_GPL(regmap_can_raw_write); =20 @@ -2155,10 +2154,9 @@ int regmap_noinc_write(struct regmap *map, unsigned = int reg, size_t write_len; int ret; =20 - if (!map->bus) - return -EINVAL; - if (!map->bus->write) + if (!map->write) return -ENOTSUPP; + if (val_len % map->format.val_bytes) return -EINVAL; if (!IS_ALIGNED(reg, map->reg_stride)) @@ -2278,7 +2276,7 @@ int regmap_bulk_write(struct regmap *map, unsigned in= t reg, const void *val, * Some devices don't support bulk write, for them we have a series of * single write operations. */ - if (!map->bus || !map->format.parse_inplace) { + if (!map->write || !map->format.parse_inplace) { map->lock(map->lock_arg); for (i =3D 0; i < val_count; i++) { unsigned int ival; --=20 2.36.1