aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-3.18
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2015-12-03 14:47:37 +0000
committerFelix Fietkau <nbd@openwrt.org>2015-12-03 14:47:37 +0000
commitbff302113eca430d7815d9cf8d36f43012d821b6 (patch)
tree224e259894fcc4f78f8070416701ca8abdcc8ce0 /target/linux/generic/patches-3.18
parente9be5384092e66f13d466d89f584194fa9c055ee (diff)
downloadmaster-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
Diffstat (limited to 'target/linux/generic/patches-3.18')
-rw-r--r--target/linux/generic/patches-3.18/044-backport-m25p80-jedec-probe.patch39
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;