Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp3373806rwb; Sat, 12 Nov 2022 04:43:40 -0800 (PST) X-Google-Smtp-Source: AA0mqf55HnMF4phuX8d6++i2KSWw8UL5pkbqUrDQWuI8BXoFsxVoxgQzIZn/zftRXNnaXvf6uV8o X-Received: by 2002:a65:55c8:0:b0:457:a1a5:3ce with SMTP id k8-20020a6555c8000000b00457a1a503cemr5354756pgs.416.1668257020628; Sat, 12 Nov 2022 04:43:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668257020; cv=none; d=google.com; s=arc-20160816; b=D9O4ZPlT4cfj8ULX4OmEPEhEpDuaz3iT6JYZC/SvaMabk7Hgch1LqIobd2o3OJvb1e q/aEyp2dfpK+hIh4BXy7X5bEXRgzCEmKJSJECD06fdvz5USV0gXZj0b0EIPEeVCVhdQ3 F7MrADGsdHWjbJgcP4Xexni/3xwAJ3euFSIJfAvyNu1jVDAA7hl/YLymN7B7Ks2F8g8p tl9m7DNn60edLRJyhF+yTYTeCUREIV1Cp0ZbKjbrxtuB3QBd7SVm25f9jFQNQa9SHUei hM7o8/4vGOjs78axs3eOaQETQbLqrvEUUc0iA4jA2K4ZR5GdML5eIp2a/Buo0WUteK2R I4fQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :feedback-id:dkim-signature:dkim-signature; bh=igfPzLZ+nsYXDcd0iC5P+vvdO2NXmHjJ5YJY8H2HHmo=; b=SybkjFEr8iAAfywT9/jn9rjK47S9xq6HLVtLrbHbWjMlMRwwkrUff0JMWAcU+EQvEo R0DMoY+Gsi0dv836c0VaQvtPFxJ229kkgXh6Zpj76lZG7gH2B7AeJKca+rH8n8aQm2LE HJuPjgs9npqqGggtbZ4pbEJpuiOO5D16YE+arW6+VRYIDub/Ep8WC6hVPLrgsL/3xBom p2y5h5fhhdCuZ+LE5yEUXmRvAtDSod/gxCxtk/yAFvg/EahTnJr6HUpPq64x2lPqr0X1 Ri97CzmnER+5LWNb+tL+aBqZVS114wGdRvo+CxCdSPFZc8cKnX1g6mWGmS4WQBuSwP2n nIYQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@svenpeter.dev header.s=fm1 header.b=Lp0a244i; dkim=pass header.i=@messagingengine.com header.s=fm1 header.b=MlbwPAFY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=svenpeter.dev Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t2-20020a635f02000000b0046ec2ad4a97si5584189pgb.163.2022.11.12.04.43.28; Sat, 12 Nov 2022 04:43:40 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@svenpeter.dev header.s=fm1 header.b=Lp0a244i; dkim=pass header.i=@messagingengine.com header.s=fm1 header.b=MlbwPAFY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=svenpeter.dev Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234927AbiKLME5 (ORCPT + 90 others); Sat, 12 Nov 2022 07:04:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47096 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231534AbiKLMEx (ORCPT ); Sat, 12 Nov 2022 07:04:53 -0500 Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 23FBF1789F for ; Sat, 12 Nov 2022 04:04:53 -0800 (PST) Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id ADEA55C00D9; Sat, 12 Nov 2022 07:04:51 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Sat, 12 Nov 2022 07:04:51 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=svenpeter.dev; h=cc:cc:content-transfer-encoding:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm1; t=1668254691; x= 1668341091; bh=igfPzLZ+nsYXDcd0iC5P+vvdO2NXmHjJ5YJY8H2HHmo=; b=L p0a244iTn5L+2cSWaU3yOB2iYxD9pCB2533PT/bkDh9zySFlEo8jjvwXAYRrJlVb cVgWam8V0IGDw3wtb9JXH4PoxKc+xaD/PRQOVMWAHiy48Tz5ks/r5C+I59WSa4JJ iMKsnY1o3Svjb14Z/tBLqcSYMm0DnuT07rV9p9sejlKHn7zoU6uWXRffYIPSbxNZ zhFqst9U5leIHuYj3ArewuJoUg26uyXwEiGIGXRPXfPl+6Wzp+y0PCoxJL09ZM+w dPUSdnzI/yH0Voc246ZqgMR34nrF938BRr56jlq18/k+cqzDanpEq9XxpvtAojdS X84WljKF7lgWxj8HDhZtg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; t=1668254691; x=1668341091; bh=igfPzLZ+nsYXD cd0iC5P+vvdO2NXmHjJ5YJY8H2HHmo=; b=MlbwPAFYQvSPvUgBkBkrKrZD30aXG yqsg7s59OYRpOIMCVDXgwTP3OzDmBiJCyvKxe9+0CIBzIV1Jq6zCXMcj3wAKL35Q XSAj91FWdufIzDZgZuAKfueaH3dOE+uTQ+iRpOpj8lFPLh9F1E/DIGFYTGgX+3Nd EH+KilAD24iW0hJo+WMmU5auvRvrHPU1S/iTHJwmQnZmTRB0qV6E7r16Cf5vdhq/ rnBk35GJy0QltZ/o7uY/377o1Vl6hqTiU3+x67G95nw8N4abJxE9XZUAjkBCJTiJ n1tGiffuCDLYTSDGqVwO3Bj2hxZvnSaq0aWSDAC/oRdRLI8kWJZnuEgdA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvgedrfeekgdefjecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvfevufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpefuvhgvnhcu rfgvthgvrhcuoehsvhgvnhesshhvvghnphgvthgvrhdruggvvheqnecuggftrfgrthhtvg hrnhepjeeiheehkeegvdejhfevkeejgfdutdefhfethedtieffleekieeuudefleekjeeg necuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepshhvvg hnsehsvhgvnhhpvghtvghrrdguvghv X-ME-Proxy: Feedback-ID: i51094778:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 12 Nov 2022 07:04:50 -0500 (EST) From: Sven Peter To: Srinivas Kandagatla Cc: Sven Peter , linux-kernel@vger.kernel.org Subject: [PATCH 2/2] nvmem: Handle reading nbits from cells with word_size > 8 correctly Date: Sat, 12 Nov 2022 13:04:47 +0100 Message-Id: <20221112120447.36877-2-sven@svenpeter.dev> X-Mailer: git-send-email 2.30.1 (Apple Git-130) In-Reply-To: <20221112120447.36877-1-sven@svenpeter.dev> References: <20221112120447.36877-1-sven@svenpeter.dev> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Some nvmem controllers like Apple's eFuses or Nintendo's OTP have a cell word size that's larger than one byte and cannot read anything smaller. Round up cell->bytes correctly when accessing a subset of bits. Signed-off-by: Sven Peter --- drivers/nvmem/core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index a5b8d6989f8e..6906de15b9b8 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -470,8 +470,8 @@ static int nvmem_cell_info_to_nvmem_cell_entry_nodup(struct nvmem_device *nvmem, cell->np = info->np; if (cell->nbits) - cell->bytes = DIV_ROUND_UP(cell->nbits + cell->bit_offset, - BITS_PER_BYTE); + cell->bytes = round_up(DIV_ROUND_UP(cell->nbits + cell->bit_offset, + BITS_PER_BYTE), nvmem->word_size); if (!IS_ALIGNED(cell->offset, nvmem->stride)) { dev_err(&nvmem->dev, @@ -718,9 +718,9 @@ static int nvmem_add_cells_from_of(struct nvmem_device *nvmem) } if (cell->nbits) - cell->bytes = DIV_ROUND_UP( + cell->bytes = round_up(DIV_ROUND_UP( cell->nbits + cell->bit_offset, - BITS_PER_BYTE); + BITS_PER_BYTE), nvmem->word_size); if (!IS_ALIGNED(cell->offset, nvmem->stride)) { dev_err(dev, "cell %s unaligned to nvmem stride %d\n", -- 2.25.1