aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Norris <computersforpeace@gmail.com>2014-08-06 21:16:58 -0400
committerBrian Norris <computersforpeace@gmail.com>2014-11-05 05:08:20 -0500
commit6af91949ab7462d0917f436820c263ae9a89322c (patch)
tree2ab56ef66ad4ee6c997f3ac8fb1ca51160231cc3
parentdfa9c0cba4ea20e766bbb4f89152b05d00ab9ab3 (diff)
mtd: m25p80: drop wait-till-ready checks
spi-nor.c should be taking care of these now. Signed-off-by: Brian Norris <computersforpeace@gmail.com> Reviewed-by: Marek Vasut <marex@denx.de>
-rw-r--r--drivers/mtd/devices/m25p80.c11
-rw-r--r--include/linux/mtd/spi-nor.h6
2 files changed, 6 insertions, 11 deletions
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
index 5d4482512e36..35e7e9896b17 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -129,16 +129,10 @@ static int m25p80_read(struct spi_nor *nor, loff_t from, size_t len,
129 struct spi_transfer t[2]; 129 struct spi_transfer t[2];
130 struct spi_message m; 130 struct spi_message m;
131 unsigned int dummy = nor->read_dummy; 131 unsigned int dummy = nor->read_dummy;
132 int ret;
133 132
134 /* convert the dummy cycles to the number of bytes */ 133 /* convert the dummy cycles to the number of bytes */
135 dummy /= 8; 134 dummy /= 8;
136 135
137 /* Wait till previous write/erase is done. */
138 ret = nor->wait_till_ready(nor);
139 if (ret)
140 return ret;
141
142 spi_message_init(&m); 136 spi_message_init(&m);
143 memset(t, 0, (sizeof t)); 137 memset(t, 0, (sizeof t));
144 138
@@ -168,11 +162,6 @@ static int m25p80_erase(struct spi_nor *nor, loff_t offset)
168 dev_dbg(nor->dev, "%dKiB at 0x%08x\n", 162 dev_dbg(nor->dev, "%dKiB at 0x%08x\n",
169 flash->mtd.erasesize / 1024, (u32)offset); 163 flash->mtd.erasesize / 1024, (u32)offset);
170 164
171 /* Wait until finished previous write command. */
172 ret = nor->wait_till_ready(nor);
173 if (ret)
174 return ret;
175
176 /* Send write enable, then erase commands. */ 165 /* Send write enable, then erase commands. */
177 ret = nor->write_reg(nor, SPINOR_OP_WREN, NULL, 0, 0); 166 ret = nor->write_reg(nor, SPINOR_OP_WREN, NULL, 0, 0);
178 if (ret) 167 if (ret)
diff --git a/include/linux/mtd/spi-nor.h b/include/linux/mtd/spi-nor.h
index 2f27713b3ae1..d691025d9b00 100644
--- a/include/linux/mtd/spi-nor.h
+++ b/include/linux/mtd/spi-nor.h
@@ -116,6 +116,10 @@ enum spi_nor_ops {
116 SPI_NOR_OPS_UNLOCK, 116 SPI_NOR_OPS_UNLOCK,
117}; 117};
118 118
119enum spi_nor_option_flags {
120 SNOR_F_USE_FSR = BIT(0),
121};
122
119/** 123/**
120 * struct spi_nor - Structure for defining a the SPI NOR layer 124 * struct spi_nor - Structure for defining a the SPI NOR layer
121 * @mtd: point to a mtd_info structure 125 * @mtd: point to a mtd_info structure
@@ -129,6 +133,7 @@ enum spi_nor_ops {
129 * @program_opcode: the program opcode 133 * @program_opcode: the program opcode
130 * @flash_read: the mode of the read 134 * @flash_read: the mode of the read
131 * @sst_write_second: used by the SST write operation 135 * @sst_write_second: used by the SST write operation
136 * @flags: flag options for the current SPI-NOR (SNOR_F_*)
132 * @cfg: used by the read_xfer/write_xfer 137 * @cfg: used by the read_xfer/write_xfer
133 * @cmd_buf: used by the write_reg 138 * @cmd_buf: used by the write_reg
134 * @prepare: [OPTIONAL] do some preparations for the 139 * @prepare: [OPTIONAL] do some preparations for the
@@ -158,6 +163,7 @@ struct spi_nor {
158 u8 program_opcode; 163 u8 program_opcode;
159 enum read_mode flash_read; 164 enum read_mode flash_read;
160 bool sst_write_second; 165 bool sst_write_second;
166 u32 flags;
161 struct spi_nor_xfer_cfg cfg; 167 struct spi_nor_xfer_cfg cfg;
162 u8 cmd_buf[SPI_NOR_MAX_CMD_SIZE]; 168 u8 cmd_buf[SPI_NOR_MAX_CMD_SIZE];
163 169