From nobody Mon Apr 6 18:30:31 2026 Received: from mo4-p01-ob.smtp.rzone.de (mo4-p01-ob.smtp.rzone.de [85.215.255.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4AD223D904D for ; Wed, 18 Mar 2026 13:49:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=85.215.255.54 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773841760; cv=pass; b=E63PpViRFUV3Bb1mmlLzkH0Yp7V8lRSU8o6apEMsKaaOka8rtabhju/m6JCeWawO6/ZxzIyKkZ0kkVRErB0vI7ilmKZaDiEfun9JPTDSlA4hwFKK8bC+yaicIXM1gelMAMtnnjomSL1V1PyqzObDIz4trzPdjH3EEAR+xs541ak= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773841760; c=relaxed/simple; bh=YxcPzT/hBngi60V7zX3xmpwfdRfxURTm7RF41Vtx7FQ=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version:Content-Type; b=eifbmH/7dsWBND24JMnggFdKn/xYYp1RcZ/DjlNOG0k+rQQ4UfdnopEJHbmQ32fKCVE5fD0hzuVt1rXlFH9yNsrNPMhXOyjRns1YY3gvQfXQUTCyH10IQEMRQlPSR1Jn+DpjuwxCf8T9pSEmuFtwkerSgcXU8cGIwBGEReEcyl8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=iokpp.de; spf=none smtp.mailfrom=iokpp.de; dkim=pass (2048-bit key) header.d=iokpp.de header.i=@iokpp.de header.b=epv6EhOW; dkim=permerror (0-bit key) header.d=iokpp.de header.i=@iokpp.de header.b=rXCbDpyS; arc=pass smtp.client-ip=85.215.255.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=iokpp.de Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=iokpp.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=iokpp.de header.i=@iokpp.de header.b="epv6EhOW"; dkim=permerror (0-bit key) header.d=iokpp.de header.i=@iokpp.de header.b="rXCbDpyS" ARC-Seal: i=1; a=rsa-sha256; t=1773839954; cv=none; d=strato.com; s=strato-dkim-0002; b=JbpuFD5M8VyqBBfjag5Sh9zMijBIoCUE1k7o2aB+/DYEWPjpeW0HbHiizUN+dQg3o0 BoEsSGn5Stfz0k+fEaYFK6I7ZnNftRKAj7SVwPQUC68P2ffSYggXvJEG8CLbS6rkRrxQ w6gl7IQyjlEKSNXmpP31e6qBEvmpn4USICrjQCWsbJa1ufmyttCfrjNe9r6KpUcU/IzO nn3ApHbc4/2Gxe33h+yHd9ifG/2XZ8bR14Slzdt9MyH4aB6/8i/vtdWXnCqHqCy+rPT9 3N9a+lPPXgVX5zvrI+3vxdRBMOSby2K9FKJyHkMyO4ORo0qIWkfoSD/fOrgdZSh63raS 3eAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1773839954; s=strato-dkim-0002; d=strato.com; h=Message-Id:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender; bh=I/uG8WadfGOEs8IsUfuu9YM8DWeLiNne33lmLuugg+c=; b=HTOAwGxK3vEEDld8Ki/FmEZrs40ImazQyVVmRYp8lyYEY/HVJYaQyjDSfPerFiMY9l ONHzJuzmxHoIglVaQN3AsbojTKcrAJO9xs+2KRjGgKRFWHpmPG0iGu9h+pyHqhX7LAoC fVSlTo+JlzuU39htjGNcGoD/LbHkyTSa0QSOvTmAKoovRDlU6Bbml9Xp1ZlnqRxtk0Xk rV2ytbkdICeM0q/eqgM1KOhGoptaFhc8SGl44dMyj9NYpDtoAgtUkZLMHUP0fffvvUzA YCxIS3C7J3lcDJrJBgXstU2MiVOk7QnBrDH5UrXpgTX7Fd3qwBBjGGg5QWGt6cBdsTkt ZLXg== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo01 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1773839954; s=strato-dkim-0002; d=iokpp.de; h=Message-Id:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender; bh=I/uG8WadfGOEs8IsUfuu9YM8DWeLiNne33lmLuugg+c=; b=epv6EhOWg2g+cE1YFtEKRMZLFs87xQnZ24IOrcVhDAyXPWgYuLbaj7HPTy4eotZeMN wglv1lhGFn5yujuaNAcNBI8AVCXX9w3t2huOK5uQCtLJ/v7uxojWLACbl2DeuQaPJMm1 V0vh8eXep9EW3OEFH8fbiydpnWQmO1kZaAg8DmY5T8yCR3Yy3GWraUbqqD2bpyP431lr tuHUzBB7ATpqNhCWi/LP81uMnbFnVXNdqbhkgq9GKV9p+4yVtiHURNyY0L2LJZG1yCoF VNv1Fnp3QHJrUW+YgLt1wDEsMk5Zv26EQlg+3HXRxKENFIXR3v5ZQofkNc0P+L4rFfbe pjWQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1773839954; s=strato-dkim-0003; d=iokpp.de; h=Message-Id:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender; bh=I/uG8WadfGOEs8IsUfuu9YM8DWeLiNne33lmLuugg+c=; b=rXCbDpySz3uKWMCswr+w2s2uB8AzMSzB43JKw1iD3ogqZ1UJSCgweQyVR0CCs9p6SG D3WgwMymSYByeSo1LPBw== X-RZG-AUTH: ":LmkFe0i9dN8c2t4QQyGBB/NDXvjDB6pBSfNuhhDSDt3O2J2YOom0XQaPis+nU/5K" Received: from Munilab01-lab.micron.com by smtp.strato.de (RZmta 55.0.1 AUTH) with ESMTPSA id z7934522IDJD9G0 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Wed, 18 Mar 2026 14:19:13 +0100 (CET) From: Bean Huo To: tudor.ambarus@linaro.org, pratyush@kernel.org, mwalle@kernel.org Cc: linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, zaizhang@cisco.com, Bean Huo Subject: [PATCH] mtd: spi-nor: micron-st: fix FSR read fallback for controllers returning -ENOTSUPP Date: Wed, 18 Mar 2026 14:18:56 +0100 Message-Id: <20260318131857.2685004-1-beanhuo@iokpp.de> X-Mailer: git-send-email 2.34.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: Bean Huo micron_st_nor_ready() falls back to SR-only polling when the SPI controller does not support low-level FSR reads, but only checks for -EOPNOTSUPP (95). Some SPI master drivers return the kernel-internal -ENOTSUPP (524) for the same condition. The two codes carry identical semantics but have different numeric values, so the fallback is never reached when the master returns -ENOTSUPP; the function propagates the error instead, causing all subsequent erase/program operations on the Micron flash to fail. Fix this by treating -ENOTSUPP equivalently to -EOPNOTSUPP in the FSR error path. Note that spi-mem.c already treats both error codes as equivalent in its own fallback logic, so this aligns micron_st_nor_ready() with that existing convention. Fixes: 90c517f435a9 ("mtd: spi-nor: micron-st: Skip FSR reading if SPI cont= roller does not support it") Reported-by: Zailiang Zhang Signed-off-by: Bean Huo --- drivers/mtd/spi-nor/micron-st.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mtd/spi-nor/micron-st.c b/drivers/mtd/spi-nor/micron-s= t.c index 88033384a71e..4be6a76fc3e5 100644 --- a/drivers/mtd/spi-nor/micron-st.c +++ b/drivers/mtd/spi-nor/micron-st.c @@ -598,7 +598,7 @@ static int micron_st_nor_ready(struct spi_nor *nor) * operations to the software. If this is the case we use * only the status register value. */ - return ret =3D=3D -EOPNOTSUPP ? sr_ready : ret; + return (ret =3D=3D -EOPNOTSUPP || ret =3D=3D -ENOTSUPP) ? sr_ready : ret; } =20 if (nor->bouncebuf[0] & (FSR_E_ERR | FSR_P_ERR)) { --=20 2.34.1