Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1532078ybl; Tue, 13 Aug 2019 14:24:56 -0700 (PDT) X-Google-Smtp-Source: APXvYqxWJMs6HPwauPw2/ET79qlJPFz5kJ8YQZtNOe2u023woeYz1OHxgiL+Nm4C9l3ysg9SfRNQ X-Received: by 2002:a63:b20f:: with SMTP id x15mr37184732pge.453.1565731496440; Tue, 13 Aug 2019 14:24:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565731496; cv=none; d=google.com; s=arc-20160816; b=ui0l2YdXflflha+TyT29RJ4zemAcKtzwu7OpKAi2W0ipSVqbR/3jJeyd3hKbhr933K VKWoBNuzSZpO62CUg+rvy+ddtpNdAMZJTBaGuP6W4/x/JditQ7Cd2rfUFHjhKUvD0JIP OsB98aVtRYSBjocb55m6D8lzt+mtyQWHuI3Wk0TrqMESKKrIuyNXcRaXxR3mVj8HtmoB YTJM5Yln3IUzZ27v/5zMuEN9fPfqJ8LBB96F5uB44dTv3KaLjwscKDWZB/61/GIrDTh/ 2l4yj28uncgX0fxZDPyf6w13E7eB2f7tTkGzaenS/5onSzGUqJ5XkEfXYcsK+zOJLGuZ /TFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=WHUBb+H0Fi59TuSnrPphyzWvLSNTI5lBd4Ed7ZWbKac=; b=Rpu8rTGYNSYheqSANU+7XfYknDSanFx/Wa9TaP2rGBewM+aBHscRjeTZbIJcMzz0KL sohbrJFq4w8RlgZ/PHkzKbMxyFzsM2yzRf+lf81j+uu3sMdY1boZz4Db2eB5unG86BZd dsQRFnY8brgz/3dL/W/XEZ5Npd3N5Aj5zGBWjsqskS0OZ1tYJmjoPkF3qhk4yIyDUbEL s78vNqqU9zSaeX7qr2YIx/xCx5sanqtC6nyWZIinapn/M+AK4xats/prilPAiQofThKE mHjMFKmShhJhvQ1YoXVsT780ykNvzWLPCmXkhvOu5I7IG9E4QT2DimS5ZYwcUXAdCGdt I4ew== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=flk5D1GQ; 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=fail (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 b6si67382898pfa.76.2019.08.13.14.24.40; Tue, 13 Aug 2019 14:24:56 -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=fail header.i=@gmail.com header.s=20161025 header.b=flk5D1GQ; 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=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726856AbfHMVXu (ORCPT + 99 others); Tue, 13 Aug 2019 17:23:50 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:32878 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726722AbfHMVXu (ORCPT ); Tue, 13 Aug 2019 17:23:50 -0400 Received: by mail-wr1-f67.google.com with SMTP id n9so109217361wru.0 for ; Tue, 13 Aug 2019 14:23:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id; bh=WHUBb+H0Fi59TuSnrPphyzWvLSNTI5lBd4Ed7ZWbKac=; b=flk5D1GQPH6bz87YfESC50J2CIiPCWuM1ESgqDS/4CVkPN3FZ6KMdbBY7q10WQi4hf DX2kCmk/72jGOrGnEFKaZwZzrcXkjqklChRHJu67ZZCMIf7atO9XzBNs3C8HJTptTkaS xpdBn8bHPh15KFc4EQXh/zPuXXuzSkyB9VAzxY3f5TJdX7s9+Bdk96rl+vc6RoB+CCdY G2cWaO07eTpKKNa4Od2HyP6tfiJNm/aVekGeE5gfR4Ir5J5xyqI4niDBTlKr/LhXqcWH /rffdla4tc9HHN0vx4DG8TxAQqDrTk7tS+G0gjsivKZrdtV7PSOtTsBAuKM26+UIhmzC Pisw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=WHUBb+H0Fi59TuSnrPphyzWvLSNTI5lBd4Ed7ZWbKac=; b=d52Z09SEoic2lHeiVn6BkX6mHlH05H+Pj57/eXCB045oUivDp+1hpE0PwqTpKuZf/S mEfatgK25oe14OAZPYdfRCgFuURfi6z5rjbOMd0SdY+TXUB2vhOofKiUhmx7kotWdReH XV+ODyYbu6KYG8DlnNqmrFPJndCMydpj0oe+jbLeS8KreEmj9dXtIPgypP1Xjq9MTH9K bDttOoWmbkdMs9SvEqRCibbzMML2Pd7hnXrtt3PngS3REBhEkokZX2gPyY+cScZTFBf4 F2S1SVUzBTztGNT29BxCS7CCXAMnJIcAbaxPeVnB30xoRKKXnt4NDmm6lWyiTv37Kuse RKhA== X-Gm-Message-State: APjAAAVFp5Jpg/4lXL/tzVk0BW9b7kaDx5b5nsGZBf5qyASA6z/CUV73 ZkQ7jMkeaYkYqMDJYFOK6XpEf8iZ2vhfH0uk X-Received: by 2002:a5d:4205:: with SMTP id n5mr48505235wrq.52.1565731428327; Tue, 13 Aug 2019 14:23:48 -0700 (PDT) Received: from Lappy.lan (cpc96340-rdng26-2-0-cust780.15-3.cable.virginm.net. [86.14.239.13]) by smtp.gmail.com with ESMTPSA id o20sm273957797wrh.8.2019.08.13.14.23.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Aug 2019 14:23:47 -0700 (PDT) From: Ben Whitten To: linux-kernel@vger.kernel.org Cc: afaerber@suse.de, Ben Whitten , Mark Brown , Greg Kroah-Hartman , "Rafael J. Wysocki" Subject: [PATCH] regmap: fix writes to non incrementing registers Date: Tue, 13 Aug 2019 22:22:51 +0100 Message-Id: <20190813212251.12316-1-ben.whitten@gmail.com> X-Mailer: git-send-email 2.17.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When checking if a register is writable we must first check if the register is a non incrementing writable register. Non incrementing register are deep and do not move to the next register when writing, for example a FIFO. Signed-off-by: Ben Whitten --- drivers/base/regmap/regmap.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index f1025452bb39..70645a28897c 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c @@ -1489,10 +1489,11 @@ static int _regmap_raw_write_impl(struct regmap *map, unsigned int reg, WARN_ON(!map->bus); /* Check for unwritable registers before we start */ - for (i = 0; i < val_len / map->format.val_bytes; i++) - if (!regmap_writeable(map, - reg + regmap_get_offset(map, i))) - return -EINVAL; + if (!regmap_writeable_noinc(map, reg)) + for (i = 0; i < val_len / map->format.val_bytes; i++) + if (!regmap_writeable(map, + reg + regmap_get_offset(map, i))) + return -EINVAL; if (!map->cache_bypass && map->format.parse_val) { unsigned int ival; -- 2.17.1