From 4d3a53b9ef8f47d308875fe0be20585fa40726d0 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
Date: Sun, 9 Dec 2018 13:58:54 +0100
Subject: [PATCH] kernel: add DT binding support to the TRX and minor parsers
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

It allows specifying those parsers directly in the DT.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
 .../files/drivers/mtd/mtdsplit/mtdsplit_minor.c     | 13 +++++++++++++
 .../files/drivers/mtd/mtdsplit/mtdsplit_trx.c       | 13 +++++++++++++
 2 files changed, 26 insertions(+)

diff --git a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_minor.c b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_minor.c
index f971f0a650..d709a13cf6 100644
--- a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_minor.c
+++ b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_minor.c
@@ -100,9 +100,22 @@ static int mtdsplit_parse_minor(struct mtd_info *master,
 	return MINOR_NR_PARTS;
 }
 
+#include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
+static const struct of_device_id mtdsplit_minor_of_match_table[] = {
+	{ .compatible = "mikrotik,minor" },
+	{},
+};
+MODULE_DEVICE_TABLE(of, mtdsplit_minor_of_match_table);
+#endif
+
 static struct mtd_part_parser mtdsplit_minor_parser = {
 	.owner = THIS_MODULE,
 	.name = "minor-fw",
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
+	.of_match_table = mtdsplit_minor_of_match_table,
+#endif
 	.parse_fn = mtdsplit_parse_minor,
 	.type = MTD_PARSER_TYPE_FIRMWARE,
 };
diff --git a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_trx.c b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_trx.c
index 53aebc5987..d5e33727b5 100644
--- a/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_trx.c
+++ b/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_trx.c
@@ -130,9 +130,22 @@ err:
 	return ret;
 }
 
+#include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
+static const struct of_device_id trx_parser_of_match_table[] = {
+	{ .compatible = "openwrt,trx" },
+	{},
+};
+MODULE_DEVICE_TABLE(of, trx_parser_of_match_table);
+#endif
+
 static struct mtd_part_parser trx_parser = {
 	.owner = THIS_MODULE,
 	.name = "trx-fw",
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
+	.of_match_table = trx_parser_of_match_table,
+#endif
 	.parse_fn = mtdsplit_parse_trx,
 	.type = MTD_PARSER_TYPE_FIRMWARE,
 };
-- 
2.30.2