Message ID | 1484141111-11748-1-git-send-email-ldpinney@gmail.com |
---|---|
State | Rejected |
Delegated to: | Mathias Kresin |
Headers | show |
2017-01-11 14:25 GMT+01:00 L. D. Pinney <ldpinney@gmail.com>: > This patch resets the spi to 3 byte mode needed for devices with more than 16M Flash. > Tested on the Onion Omega2+ (MT7688) > > Signed-off-by: L. D. Pinney <ldpinney@gmail.com> > Tested-by: Nita Vesa <werecatf@gmail.com> > > --- > > diff --git a/target/linux/ramips/patches-4.4/101-spi-reset-to-3-byte-mode.patch b/target/linux/ramips/patches-4.4/101-spi-reset-to-3-byte-mode.patch > new file mode 100644 > index 0000000..b126411 > --- /dev/null > +++ b/target/linux/ramips/patches-4.4/101-spi-reset-to-3-byte-mode.patch > @@ -0,0 +1,24 @@ > +Index: linux-4.4.40/drivers/mtd/devices/m25p80.c > +=================================================================== > +--- linux-4.4.40.orig/drivers/mtd/devices/m25p80.c > ++++ linux-4.4.40/drivers/mtd/devices/m25p80.c > +@@ -261,6 +261,11 @@ static int m25p_remove(struct spi_device > + { > + struct m25p *flash = spi_get_drvdata(spi); > + > ++ flash->command[0] = 0x66; > ++ spi_write(flash->spi, flash->command, 1); > ++ flash->command[0] = 0x99; > ++ spi_write(flash->spi, flash->command, 1); > ++ > + /* Clean up MTD stuff. */ > + return mtd_device_unregister(&flash->spi_nor.mtd); > + } > +@@ -328,6 +333,7 @@ static struct spi_driver m25p80_driver = > + .id_table = m25p_ids, > + .probe = m25p_probe, > + .remove = m25p_remove, > ++ .shutdown = m25p_remove, > + > + /* REVISIT: many of these chips have deep power-down modes, which > + * should clearly be entered on suspend() to minimize power use. NAK! This patch was already send as Github PR and dropped in favour of backporting a patch that was send to linux-mtd. Have a look at https://github.com/lede-project/source/pull/620 for details. Mathias
diff --git a/target/linux/ramips/patches-4.4/101-spi-reset-to-3-byte-mode.patch b/target/linux/ramips/patches-4.4/101-spi-reset-to-3-byte-mode.patch new file mode 100644 index 0000000..b126411 --- /dev/null +++ b/target/linux/ramips/patches-4.4/101-spi-reset-to-3-byte-mode.patch @@ -0,0 +1,24 @@ +Index: linux-4.4.40/drivers/mtd/devices/m25p80.c +=================================================================== +--- linux-4.4.40.orig/drivers/mtd/devices/m25p80.c ++++ linux-4.4.40/drivers/mtd/devices/m25p80.c +@@ -261,6 +261,11 @@ static int m25p_remove(struct spi_device + { + struct m25p *flash = spi_get_drvdata(spi); + ++ flash->command[0] = 0x66; ++ spi_write(flash->spi, flash->command, 1); ++ flash->command[0] = 0x99; ++ spi_write(flash->spi, flash->command, 1); ++ + /* Clean up MTD stuff. */ + return mtd_device_unregister(&flash->spi_nor.mtd); + } +@@ -328,6 +333,7 @@ static struct spi_driver m25p80_driver = + .id_table = m25p_ids, + .probe = m25p_probe, + .remove = m25p_remove, ++ .shutdown = m25p_remove, + + /* REVISIT: many of these chips have deep power-down modes, which + * should clearly be entered on suspend() to minimize power use.