Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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 3487a63955c34ea508bcf4ca5131ddd953876e2d
("drivers: mtd: m25p80: add quad read support") did this correctly, it was
forgotten in the version that got merged.

Signed-off-by: Geert Uytterhoeven <geert+renesas@linux-m68k.org>
Acked-by: Marek Vasut <marex@denx.de>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>

authored by

Geert Uytterhoeven and committed by
Brian Norris
464e9067 d8d5d10d

+11
+11
drivers/mtd/devices/m25p80.c
··· 489 489 } 490 490 } 491 491 492 + static inline unsigned int m25p80_rx_nbits(const struct m25p *flash) 493 + { 494 + switch (flash->flash_read) { 495 + case M25P80_QUAD: 496 + return 4; 497 + default: 498 + return 0; 499 + } 500 + } 501 + 492 502 /* 493 503 * Read an address range from the flash chip. The address range 494 504 * may be any size provided it is within the physical boundaries. ··· 529 519 spi_message_add_tail(&t[0], &m); 530 520 531 521 t[1].rx_buf = buf; 522 + t[1].rx_nbits = m25p80_rx_nbits(flash); 532 523 t[1].len = len; 533 524 spi_message_add_tail(&t[1], &m); 534 525