lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Sat, 1 Jan 2022 13:12:42 +0530
From:   Apurva Nandan <>
To:     Miquel Raynal <>,
        Richard Weinberger <>,
        Vignesh Raghavendra <>,
        Mark Brown <>,
        Apurva Nandan <>,
        Patrice Chotard <>,
        Christophe Kerello <>,
        Boris Brezillon <>,
        Daniel Palmer <>,
        Alexander Lobakin <>,
        <>, <>,
CC:     <>
Subject: [PATCH v3 09/17] mtd: spinand: Add change_mode() in manufacturer_ops

Introduce change_mode() manufacturer_op to let the vendor provide the
implementation of switching of SPI IO modes.

The method to switch to different SPI IO mode may vary across
manufacturers. For example, for Winbond, Octal DTR is enabled by
writing values to the volatile configuration register. So, let the
manufacturer's code have their own implementation for switching to
any given SPI IO mode. Manufacturer's code need to take care, if
the requested protocol change is allowed/needed and how to apply

Signed-off-by: Apurva Nandan <>
 include/linux/mtd/spinand.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/include/linux/mtd/spinand.h b/include/linux/mtd/spinand.h
index 5dae0649f2fb..ad924271a248 100644
--- a/include/linux/mtd/spinand.h
+++ b/include/linux/mtd/spinand.h
@@ -298,6 +298,7 @@ struct spinand_devid {
  * struct manufacurer_ops - SPI NAND manufacturer specific operations
  * @init: initialize a SPI NAND device
+ * @change_mode: switch the SPI NAND flash to a specific SPI protocol
  * @cleanup: cleanup a SPI NAND device
  * Each SPI NAND manufacturer driver should implement this interface so that
@@ -305,6 +306,8 @@ struct spinand_devid {
 struct spinand_manufacturer_ops {
 	int (*init)(struct spinand_device *spinand);
+	int (*change_mode)(struct spinand_device *spinand,
+			   const enum spinand_protocol protocol);
 	void (*cleanup)(struct spinand_device *spinand);

Powered by blists - more mailing lists