From 23fa18eaa71266feff7ba8d83022d9e1cc83c65a Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Fri, 10 May 2024 07:42:03 +0000
Subject: [PATCH] disable pwm7

---
 u-boot/cmd/mtd.c |   24 +++++++++++++++++-------
 1 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/u-boot/cmd/mtd.c b/u-boot/cmd/mtd.c
index 31ef7be..1f7542e 100644
--- a/u-boot/cmd/mtd.c
+++ b/u-boot/cmd/mtd.c
@@ -13,6 +13,10 @@
 #include <mapmem.h>
 #include <mtd.h>
 
+#define DEV_NAME_MAX_LENGTH	0x40
+static char g_devname[DEV_NAME_MAX_LENGTH];
+static struct mtd_info *g_mtd;
+
 static uint mtd_len_to_pages(struct mtd_info *mtd, u64 len)
 {
 	do_div(len, mtd->writesize);
@@ -244,14 +248,20 @@
 		return CMD_RET_USAGE;
 
 	mtd_name = argv[2];
-	mtd_probe_devices();
-	mtd = get_mtd_device_nm(mtd_name);
-	if (IS_ERR_OR_NULL(mtd)) {
-		printf("MTD device %s not found, ret %ld\n",
-		       mtd_name, PTR_ERR(mtd));
-		return CMD_RET_FAILURE;
+	if (!strncmp(mtd_name, g_devname, strlen(mtd_name)) && g_mtd) {
+		mtd = g_mtd;
+	} else {
+		mtd_probe_devices();
+		mtd = get_mtd_device_nm(mtd_name);
+		if (IS_ERR_OR_NULL(mtd)) {
+			printf("MTD device %s not found, ret %ld\n",
+			       mtd_name, PTR_ERR(mtd));
+			return CMD_RET_FAILURE;
+		}
+		put_mtd_device(mtd);
+		g_mtd = mtd;
+		strncpy(g_devname, mtd_name, strlen(mtd_name));
 	}
-	put_mtd_device(mtd);
 
 	argc -= 3;
 	argv += 3;

--
Gitblit v1.6.2