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 | bff302113eca430d7815d9cf8d36f43012d821b6 (patch) | |
tree | 224e259894fcc4f78f8070416701ca8abdcc8ce0 | |
parent | e9be5384092e66f13d466d89f584194fa9c055ee (diff) | |
download | master-187ad058-bff302113eca430d7815d9cf8d36f43012d821b6.tar.gz master-187ad058-bff302113eca430d7815d9cf8d36f43012d821b6.tar.bz2 master-187ad058-bff302113eca430d7815d9cf8d36f43012d821b6.zip |
kernel: backport support for m25p80 compatible="jedec,spi-nor" in DT
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@47716 3c298f89-4303-0410-b956-a3cf2f4a3e73
-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; |