From 072de836f53be56a70cecf70b43ae43b7ce17376 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Mon, 11 Dec 2023 10:08:36 +0000
Subject: [PATCH] mk-rootfs.sh
---
kernel/drivers/rkflash/sfc.c | 16 ++++++++++++----
1 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/kernel/drivers/rkflash/sfc.c b/kernel/drivers/rkflash/sfc.c
index 8237e76..19773a8 100644
--- a/kernel/drivers/rkflash/sfc.c
+++ b/kernel/drivers/rkflash/sfc.c
@@ -12,6 +12,7 @@
#define SFC_MAX_IOSIZE_VER4 (0xFFFFFFFF)
static void __iomem *g_sfc_reg;
+static u32 sfc_version;
static void sfc_reset(void)
{
@@ -42,12 +43,16 @@
u32 sfc_get_max_dll_cells(void)
{
- if (sfc_get_version() == SFC_VER_5)
+ switch (sfc_get_version()) {
+ case SFC_VER_8:
+ case SFC_VER_6:
+ case SFC_VER_5:
return SCLK_SMP_SEL_MAX_V5;
- else if (sfc_get_version() == SFC_VER_4)
+ case SFC_VER_4:
return SCLK_SMP_SEL_MAX_V4;
- else
+ default:
return 0;
+ }
}
void sfc_set_delay_lines(u16 cells)
@@ -71,6 +76,7 @@
if (sfc_get_version() >= SFC_VER_4)
writel(1, g_sfc_reg + SFC_LEN_CTRL);
+ sfc_version = sfc_get_version();
return SFC_OK;
}
@@ -112,7 +118,7 @@
op->sfctrl.d32 |= 0x2;
cmd.b.datasize = size;
- if (sfc_get_version() >= SFC_VER_4)
+ if (sfc_version >= SFC_VER_4)
writel(size, g_sfc_reg + SFC_LEN_EXT);
else
cmd.b.datasize = size;
@@ -234,6 +240,8 @@
break;
}
+ if (!bytes)
+ break;
sfc_delay(1);
if (timeout++ > 10000) {
--
Gitblit v1.6.2