kernel: backport support for m25p80 compatible="jedec,spi-nor" in DT
authorFelix Fietkau <nbd@openwrt.org>
Thu, 3 Dec 2015 14:47:37 +0000 (14:47 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Thu, 3 Dec 2015 14:47:37 +0000 (14:47 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 47716

target/linux/generic/patches-3.18/044-backport-m25p80-jedec-probe.patch [new file with mode: 0644]

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 (file)
index 0000000..41b912d
--- /dev/null
@@ -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;