diff options
author | Felix Fietkau <nbd@openwrt.org> | 2015-12-03 14:47:37 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2015-12-03 14:47:37 +0000 |
commit | 2a68bea0738589f563531ace610ec00e6f24cd04 (patch) | |
tree | cc1ca6c921ea35c7a443ed8c0573f700d452885a /target | |
parent | e4d186b1097f5eef0e25aa339b22c6f83eb74d6f (diff) | |
download | upstream-2a68bea0738589f563531ace610ec00e6f24cd04.tar.gz upstream-2a68bea0738589f563531ace610ec00e6f24cd04.tar.bz2 upstream-2a68bea0738589f563531ace610ec00e6f24cd04.zip |
kernel: backport support for m25p80 compatible="jedec,spi-nor" in DT
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 47716
Diffstat (limited to 'target')
-rw-r--r-- | target/linux/generic/patches-3.18/044-backport-m25p80-jedec-probe.patch | 39 |
1 files changed, 39 insertions, 0 deletions
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; |