From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (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 9F528326932 for ; Fri, 20 Feb 2026 09:44:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771580651; cv=none; b=om+23datha1lPX7lzdz9KbsrChoF0jJ47VEPOYEdMaFATUxu8yHfgHW7RdmZ5wGzfzAxeXthAIqfuElR8eA0Mg8DLhUwChLoB/GnsbnRO8sK/fwnZZMQVP48oTbKNs0Kb89eJ4v5QtKLNC8rbeAo6I2LfWA2+PzqVdzjYEi6rsU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771580651; c=relaxed/simple; bh=JDc/qo7rkUOcZGNhJ0Wl/HeJIKj7/AleosrYhzqya/c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=K6EcptY4vzgXry/VftSs4UOKRsGTIBFnDnq6KjTVPff3kxQO+icpMembYJH3L1PNJ6EGdNkmpsCnOxaBrjsO7nN8FyAJZ2ou9Hnx8uS+ILcMLgivVhL7aCdcu3CmaqkyOyF0t5aiKHWL5Glhs6AKZ0J6wC4o5+WD1QEcFwBeJPg= 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=FIP/ViHz; arc=none smtp.client-ip=209.85.214.180 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="FIP/ViHz" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2a929245b6aso18191305ad.0 for ; Fri, 20 Feb 2026 01:44:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771580649; x=1772185449; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZxR8y+DDVU/sD2lLySC6/WbxsSmg5U6pRubVnyPkrSo=; b=FIP/ViHzKEoySA+q9ItRCihNG31XGMY/uZaszr6PQIz4OnswHSy+vHOjeOSgy90ozF nZxg88YqluZfE6ftU5ZAthG/WW3p5jmYydV8ivmBgq+dHOw5xf1ny4LDsxQtDF175Xn6 UFYpFy6MqJHaolf5xpElflM94V5+lH9imZ1+sNH7zRElDZU2L0a/9GrEHyfGhl+EIVJQ U5mipE5Lglq4mBC5sk53sUZhNpf/tesxQWAlHrfZQCJtYoTmVaaO+tn2cQmOSkOtGmte Z8IZb7E+WtnSLvRfKsvOWhD/YQNoX5j7O5RsHm8AuLN8E22RXa8LyUuRi3ygeaOU70cy 6T0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771580649; x=1772185449; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ZxR8y+DDVU/sD2lLySC6/WbxsSmg5U6pRubVnyPkrSo=; b=KMv/6iuvfB8/APLExrQdSgsHuLxgHClknZl5AN/Xk4nEXpi6YbSIOquxly84BoVwwd CXs+1cw7RDsk2QfycrXRj8SwVBNQY26Hf6zZpEvmKqEsObWMBAjwccNnQ0P6vg1+3Q// Avkl9+stY2TBj4YXoMbFdDgKTpZoNi49O+mXVAtKCdY1wtzfXMSvKGhnGFXkPqkXi8b3 FfQgv78BF0cp1XFoIdU7RQ/9Xrov6ZOenxMFCGc0ZXwCEiMjMUrpJjSPipqG2wmR5oWD fO13wa2JtWeYGgmhgqt0B332f0Su30M44tbJkXQZ6OEXD8otaBqdkKkyKzu0jwwgZD0O 9WhQ== X-Forwarded-Encrypted: i=1; AJvYcCX2m8TQmcVPpPpOWKBfBXScsvLLuhRfc643jwPVjPwiBgtLa3vdJwV/QvCnXhIuo8mS29r3jofrKaks5r8=@vger.kernel.org X-Gm-Message-State: AOJu0Yy6557Pg7koUmdV5VgzGCvet7Xq4qAhC58fngbdnjoIEyyD0np6 tBOm9KIG29LOyOH+BqlQv68lt950faUSBs3pADFpMMiO5E+J2wh02Phz X-Gm-Gg: AZuq6aLVUwelXZ1txJNy80UlbXCL+y1aGXPPR1g9mXFkYd2LB8xLs4i1uvTJwqia+tu ID6CK6cImjvAmWhimuDF5w22h1zcjp3zOiOdRfJpocTGAsY0f5A/pdc7ny4JVdT3TK/gtl+QSLG q4uQjrLkfKiMBZzHCFtt75haRYQN3uEpNFHlrrfcwqK6Cdyo2MhtkSvkzjrMkf4VpjVodb7HzX/ jFl+EW14K2mn6Y+8wgTQPsxrjekBMYSvoWo64ZQqXlutW1kq6+ty7+4YuqmA35AwnhLFLcMkiLM e9RkrRHkJuHFA+N1XVVnnpZ4utrFmEPXJ23SS3YTr3NSpPj2pC7v6YeK2elT9AmXdPkcxpug+a4 0OZmL7oagy1GebbymTL75SgDi/i2iJUGYvnme2+PAYMpQOp2ktuFPm/WgeHDWRQbd1HsIDqdJw0 YHFBMoswDzFNYHE9YBbo74hyTgQqVqRA== X-Received: by 2002:a17:903:228e:b0:2ab:2bc5:4365 with SMTP id d9443c01a7336-2ad1747b69fmr212269585ad.19.1771580648956; Fri, 20 Feb 2026 01:44:08 -0800 (PST) Received: from f0d65881db18 ([115.245.213.202]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ad1ace5e25sm185309555ad.91.2026.02.20.01.44.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Feb 2026 01:44:08 -0800 (PST) From: Sanjaikumar V S To: linux-mtd@lists.infradead.org Cc: tudor.ambarus@linaro.org, pratyush@kernel.org, mwalle@kernel.org, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, linux-kernel@vger.kernel.org, Sanjaikumar V S , stable@vger.kernel.org Subject: [PATCH v2 2/2] mtd: spi-nor: core: Fix AAI mode when dirmap is not available Date: Fri, 20 Feb 2026 09:42:36 +0000 Message-ID: <20260220094236.28-3-sanjaikumarvs@gmail.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260220094236.28-1-sanjaikumarvs@gmail.com> References: <20260220094236.28-1-sanjaikumarvs@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Sanjaikumar V S When the SPI controller does not support direct mapping (nodirmap=true), spi_nor_spimem_write_data() calls spi_mem_dirmap_write() which falls back to spi_mem_no_dirmap_write(). This fallback uses the operation template created at probe time with the standard page program opcode. For SST flashes using AAI mode, this fails because the template cannot handle the dynamic opcode and address byte changes required by AAI. Fix by checking nodirmap and using spi_nor_spimem_exec_op() directly, which uses the runtime-built operation with correct AAI configuration. Cc: stable@vger.kernel.org Signed-off-by: Sanjaikumar V S --- 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 d3f8a78efd3b..7caeb508d628 100644 --- a/drivers/mtd/spi-nor/core.c +++ b/drivers/mtd/spi-nor/core.c @@ -281,7 +281,7 @@ static ssize_t spi_nor_spimem_write_data(struct spi_nor *nor, loff_t to, if (spi_nor_spimem_bounce(nor, &op)) memcpy(nor->bouncebuf, buf, op.data.nbytes); - if (nor->dirmap.wdesc) { + if (nor->dirmap.wdesc && !nor->dirmap.wdesc->nodirmap) { nbytes = spi_mem_dirmap_write(nor->dirmap.wdesc, op.addr.val, op.data.nbytes, op.data.buf.out); } else { -- 2.43.0