Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 464e9067 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Brian Norris
Browse files

mtd: m25p80: Set rx_nbits for Quad SPI transfers



When using the Quad Read opcode, SPI masters still use Single SPI
transfers, as spi_transfer.rx_nbits defaults to SPI_NBITS_SINGLE.
Use SPI_NBITS_QUAD to fix this.

While an earlier version of commit 3487a639
("drivers: mtd: m25p80: add quad read support") did this correctly, it was
forgotten in the version that got merged.

Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@linux-m68k.org>
Acked-by: default avatarMarek Vasut <marex@denx.de>
Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
parent d8d5d10d
Loading
Loading
Loading
Loading
+11 −0
Original line number Original line Diff line number Diff line
@@ -489,6 +489,16 @@ static inline int m25p80_dummy_cycles_read(struct m25p *flash)
	}
	}
}
}


static inline unsigned int m25p80_rx_nbits(const struct m25p *flash)
{
	switch (flash->flash_read) {
	case M25P80_QUAD:
		return 4;
	default:
		return 0;
	}
}

/*
/*
 * Read an address range from the flash chip.  The address range
 * Read an address range from the flash chip.  The address range
 * may be any size provided it is within the physical boundaries.
 * may be any size provided it is within the physical boundaries.
@@ -519,6 +529,7 @@ static int m25p80_read(struct mtd_info *mtd, loff_t from, size_t len,
	spi_message_add_tail(&t[0], &m);
	spi_message_add_tail(&t[0], &m);


	t[1].rx_buf = buf;
	t[1].rx_buf = buf;
	t[1].rx_nbits = m25p80_rx_nbits(flash);
	t[1].len = len;
	t[1].len = len;
	spi_message_add_tail(&t[1], &m);
	spi_message_add_tail(&t[1], &m);