From 2a68bea0738589f563531ace610ec00e6f24cd04 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 3 Dec 2015 14:47:37 +0000 Subject: [PATCH] kernel: backport support for m25p80 compatible="jedec,spi-nor" in DT Signed-off-by: Felix Fietkau SVN-Revision: 47716 --- .../044-backport-m25p80-jedec-probe.patch | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 target/linux/generic/patches-3.18/044-backport-m25p80-jedec-probe.patch diff --git a/target/linux/generic/patches-3.18/044-backport-m25p80-jedec-probe.patch b/target/linux/generic/patches-3.18/044-backport-m25p80-jedec-probe.patch new file mode 100644 index 0000000000..41b912d5d4 --- /dev/null +++ b/target/linux/generic/patches-3.18/044-backport-m25p80-jedec-probe.patch @@ -0,0 +1,39 @@ +--- a/drivers/mtd/devices/m25p80.c ++++ b/drivers/mtd/devices/m25p80.c +@@ -310,11 +310,21 @@ static const struct spi_device_id m25p_i + }; + MODULE_DEVICE_TABLE(spi, m25p_ids); + ++static const struct of_device_id m25p_of_table[] = { ++ /* ++ * Generic compatibility for SPI NOR that can be identified by the ++ * JEDEC READ ID opcode (0x9F). Use this, if possible. ++ */ ++ { .compatible = "jedec,spi-nor" }, ++ {} ++}; ++MODULE_DEVICE_TABLE(of, m25p_of_table); + + static struct spi_driver m25p80_driver = { + .driver = { + .name = "m25p80", + .owner = THIS_MODULE, ++ .of_match_table = m25p_of_table, + }, + .id_table = m25p_ids, + .probe = m25p_probe, +--- a/drivers/mtd/spi-nor/spi-nor.c ++++ b/drivers/mtd/spi-nor/spi-nor.c +@@ -927,8 +927,11 @@ int spi_nor_scan(struct spi_nor *nor, co + if (ret) + return ret; + +- id = spi_nor_match_id(name); ++ if (name) ++ id = spi_nor_match_id(name); + if (!id) ++ id = nor->read_id(nor); ++ if (IS_ERR_OR_NULL(id)) + return -ENOENT; + + info = (void *)id->driver_data;