forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-10 37f49e37ab4cb5d0bc4c60eb5c6d4dd57db767bb
kernel/drivers/soc/rockchip/sdmmc_vendor_storage.c
....@@ -24,6 +24,7 @@
2424 #include <linux/kthread.h>
2525 #include <linux/delay.h>
2626 #include <misc/rkflash_vendor_storage.h>
27
+#include "../../mmc/host/rk_sdmmc_ops.h"
2728
2829 #define EMMC_IDB_PART_OFFSET 64
2930 #define EMMC_SYS_PART_OFFSET 8064
....@@ -45,17 +46,10 @@
4546 static u8 *g_idb_buffer;
4647 static struct vendor_info *g_vendor;
4748 static DEFINE_MUTEX(vendor_ops_mutex);
48
-extern int rk_emmc_transfer(u8 *buffer, unsigned addr, unsigned blksz,
49
- int write);
5049
5150 static int emmc_vendor_ops(u8 *buffer, u32 addr, u32 n_sec, int write)
5251 {
53
- u32 i, ret = 0;
54
-
55
- for (i = 0; i < n_sec; i++)
56
- ret = rk_emmc_transfer(buffer + i * 512, addr + i, 512, write);
57
-
58
- return ret;
52
+ return rk_emmc_transfer(buffer, addr, n_sec << 9, write);
5953 }
6054
6155 static int emmc_vendor_storage_init(void)
....@@ -211,34 +205,20 @@
211205 #ifdef CONFIG_ROCKCHIP_VENDOR_STORAGE_UPDATE_LOADER
212206 static int id_blk_read_data(u32 index, u32 n_sec, u8 *buf)
213207 {
214
- u32 i;
215
- u32 ret = 0;
216
-
217208 if (index + n_sec >= 1024 * 5)
218209 return 0;
219210 index = index + EMMC_IDB_PART_OFFSET;
220
- for (i = 0; i < n_sec; i++) {
221
- ret = rk_emmc_transfer(buf + i * 512, index + i, 512, 0);
222
- if (ret)
223
- return ret;
224
- }
225
- return ret;
211
+
212
+ return rk_emmc_transfer(buf, index, n_sec << 9, 0);
226213 }
227214
228215 static int id_blk_write_data(u32 index, u32 n_sec, u8 *buf)
229216 {
230
- u32 i;
231
- u32 ret = 0;
232
-
233217 if (index + n_sec >= 1024 * 5)
234218 return 0;
235219 index = index + EMMC_IDB_PART_OFFSET;
236
- for (i = 0; i < n_sec; i++) {
237
- ret = rk_emmc_transfer(buf + i * 512, index + i, 512, 1);
238
- if (ret)
239
- return ret;
240
- }
241
- return ret;
220
+
221
+ return rk_emmc_transfer(buf, index, n_sec << 9, 1);
242222 }
243223
244224 static int emmc_write_idblock(u32 size, u8 *buf, u32 *id_blk_tbl)