From nobody Sun Apr 5 19:43:39 2026 Received: from mail-pf1-f170.google.com (mail-pf1-f170.google.com [209.85.210.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B667026B756 for ; Tue, 24 Feb 2026 02:58:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771901897; cv=none; b=G4UwIzlvdYt0UGSLWlKh17O7xmwRWMIzMCF0dH3F+yOrpb27xO9JHwLYQsnEsE3vhS3PgWIMzTdg2cvuh0h9MA7N10UEqNodkAp0FlGJRyz+eicvxED7WezCcybMbJCDJ7bJDS56W7vi4SJQEtywntJROzHtFtuUdqpctPaTdT4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771901897; c=relaxed/simple; bh=iKn9uhoEXdxHZ8zKN/kiyp/r1BeYb9Ev/rvKJGwQVvI=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=LlYKKzD+Q5nKwEm4QHCmaKknvbQIhLsR30gH15bPIKmpKDZ8+W23Np5CD3p9nGuef10keqR2TVFgDGkq/9+EI5bI6E3FmR3gzE488P19M5CS7sxsQ5yGOdUiLs73bxUyxsAWrYXetXn3LBzX/8BL+X5rP99DM0Jzs77iWujlTDw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=KFCX4qlZ; arc=none smtp.client-ip=209.85.210.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="KFCX4qlZ" Received: by mail-pf1-f170.google.com with SMTP id d2e1a72fcca58-8220bd582ddso2255693b3a.2 for ; Mon, 23 Feb 2026 18:58:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771901896; x=1772506696; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=66KCJd/pILWRGdHs3t4QOX0a1rmkvvfDci4VwcS/sME=; b=KFCX4qlZN2x+KJfQ9wf//djmY+veQWa9h+e303rFl5B31i01eK7BqOieEHeqqDWo/+ E+KGAZxhNRaSmjlXOKmBKEJjjaleEtPMU4pkFbeqRdtVivmoMJ/cZxw8l/fVKcH6IaiB YcLmawTDL48jbyu7Ww55YaqDqG5MbRk9QI6/AC80n5m9H0/IDzUPQygFNzP9H7ezGIqj IeXZF5ELiEaj4Ter7woHXUKFORRyMpgoKREiQhehwB29kMZqKev0OGIAgmNcH615Jkd7 Y/fcFGh7ojxKIyTesrXohMAhpu5a0XhJFd7K4s23FdaSB2xo3j4vuP94pbY4pMCw2K93 S/lA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771901896; x=1772506696; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=66KCJd/pILWRGdHs3t4QOX0a1rmkvvfDci4VwcS/sME=; b=ftfPiS6laAuAMv5981LpPt+7e0N7YSqpAUhEwa+/kqChJt1Wwbfrmtg+lZe1TnJ+0i g/yMuqhlMU+oLpdynVrgkc3Jf5AFz037UpHo+BrfvaNZ/ZSLA07gQaObuf9F0icpoGgY ugZove3AUAB95Ele8M/JEz7yA7bHT/nvpvASuPe88uMkGlc6RNOh7QTadN8mNJXdLV3b uOJJdp7ra4a8MLUTN1yr4LZnbadeYjA99YeaymkC+XW8aE3Dwa8Q+NKVJkgUHxU2dYgX NSW5F2Pdse1LMluE2bZ7rRLgdT4KOByljrZMGoG6eTdiN0qkgRx2a6F1JEIlq/2NQuJ9 31FQ== X-Forwarded-Encrypted: i=1; AJvYcCU8EdoiovM7K7Vv0RdoW3NmONf9CrYDFaKmqTDuK80d3pifIgNV1LKr6vI2rTtte3iN4akFNluxhJ8lUvc=@vger.kernel.org X-Gm-Message-State: AOJu0YwU/T+wjRpVmXpuVx9/60Cp6EXv9sNPCIvqm0KLTpzhYfI0IpyB 36tN65P0LcmVGsbWK18MAQxSl+7Sa7RQfdMVfGRv+Q/qOoxUpe4s3rtNmfoecQ== X-Gm-Gg: ATEYQzz76E2bUk3CsDiOkmTghaY9pB2K9ycegwpBE+ezC0T7mhu7aFl5PFUQo8GrZNV qshvMD1apDYdrf0F7fqIDWh0EUIE4bFn3Il4ZsAyl/+c4hPq887QhTDX7qr9WSkana8V+OQH7yU Us+joIdvqSQlane3cYCG2WfUF3DJZP8fnJA+nHFBrBYaUya3aS2wZgHUhlXb3N/gtdgGBb19GgU J1+Lt4VhoZX99ddVIC/3io7Zo5t2Bt+7Jp5v08rSYnS26RfUDvWi1Wa1htluNMT0FSnkLOZ8v0X +FIwcGYOTITwuFEqAl9vMnkSmNPqALKsWq5PLcjB2aT31frhXHJJR/kx6GaKPQvkj9DKMU61j5X crTp1eohri7rX9FZ8YTs7X9JjTIyqDlOa7eP/krnO6oel+MnugmGFKW94yrKNlSIgQSAWtpIzju 3l3VONoKzG5ZVVho+0a3MmOF7ykHp9EJHd6KRYnR3lf/Q8fjRAoiLPAv9R X-Received: by 2002:a05:6a00:854:b0:81c:717b:9d38 with SMTP id d2e1a72fcca58-826daa25785mr8203782b3a.47.1771901895957; Mon, 23 Feb 2026 18:58:15 -0800 (PST) Received: from twhmp6px (mxsmtp211.mxic.com.tw. [211.75.127.162]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-826dd68e147sm8121442b3a.19.2026.02.23.18.58.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Feb 2026 18:58:15 -0800 (PST) Received: from hqs-appsw-a2o.mp600.macronix.com (unknown [172.17.236.67]) by twhmp6px (Postfix) with ESMTPS id 9F1094136071; Tue, 24 Feb 2026 10:58:13 +0800 (CST) From: Cheng Ming Lin To: Tudor Ambarus , Pratyush Yadav , Michael Walle , Miquel Raynal , Richard Weinberger , Vignesh Raghavendra Cc: Jakub Czapiga , linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, alvinzhou@mxic.com.tw, Cheng Ming Lin Subject: [PATCH] mtd: spi-nor: core: Fix false positive in Read CR capability check Date: Tue, 24 Feb 2026 10:55:50 +0800 Message-Id: <20260224025550.1102660-1-linchengming884@gmail.com> X-Mailer: git-send-email 2.25.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Cheng Ming Lin The current code uses spi_nor_spimem_check_op() to check if the SPI controller supports the Read CR operation. However, this leads to a false positive where capable controllers are wrongly flagged with SNOR_F_NO_READ_CR. SPI_NOR_RDCR_OP defines an operation without an address phase (addr.nbytes =3D 0, addr.buswidth =3D 0). When this operation is passed to spi_nor_spimem_check_op(), the function overwrites op->addr.nbytes to 3 or 4 to test addressing capabilities (as it was originally designed for data read/write ops). This modified operation is then rejected by spi_mem_check_op() in the core spi-mem.c because it has a non-zero address length but a zero address buswidth, which is an invalid combination. Fix this by bypassing spi_nor_spimem_check_op() for register operations. Instead, directly call spi_mem_supports_op() to test the exact operation without altering its address phase. Fixes: 5008c3ec3f89 ("mtd: spi-nor: core: Check read CR support") Signed-off-by: Cheng Ming Lin --- drivers/mtd/spi-nor/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c index 8ffeb41c3e08..13201908a69f 100644 --- a/drivers/mtd/spi-nor/core.c +++ b/drivers/mtd/spi-nor/core.c @@ -2466,7 +2466,7 @@ spi_nor_spimem_adjust_hwcaps(struct spi_nor *nor, u32= *hwcaps) =20 spi_nor_spimem_setup_op(nor, &op, nor->reg_proto); =20 - if (spi_nor_spimem_check_op(nor, &op)) + if (!spi_mem_supports_op(nor->spimem, &op)) nor->flags |=3D SNOR_F_NO_READ_CR; } } --=20 2.25.1