[LEDE-DEV] [PATCH] mtd: Fix the soft reboot problem found on MediaTek devices with 32M Flash.

Mathias Kresin dev at kresin.me
Wed Jan 11 05:45:29 PST 2017


2017-01-11 14:25 GMT+01:00 L. D. Pinney <ldpinney at 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 at gmail.com>
> Tested-by: Nita Vesa <werecatf at 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



More information about the Lede-dev mailing list