From f70575805708cabdedea7498aaa3f710fde4d920 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Wed, 31 Jan 2024 03:29:01 +0000 Subject: [PATCH] add lvds1024*800 --- kernel/drivers/soc/rockchip/sdmmc_vendor_storage.c | 74 ++++++------------------------------- 1 files changed, 12 insertions(+), 62 deletions(-) diff --git a/kernel/drivers/soc/rockchip/sdmmc_vendor_storage.c b/kernel/drivers/soc/rockchip/sdmmc_vendor_storage.c index f2d6067..ea1d941 100644 --- a/kernel/drivers/soc/rockchip/sdmmc_vendor_storage.c +++ b/kernel/drivers/soc/rockchip/sdmmc_vendor_storage.c @@ -23,41 +23,16 @@ #include <linux/soc/rockchip/rk_vendor_storage.h> #include <linux/kthread.h> #include <linux/delay.h> +#include <misc/rkflash_vendor_storage.h> +#include "../../mmc/host/rk_sdmmc_ops.h" #define EMMC_IDB_PART_OFFSET 64 #define EMMC_SYS_PART_OFFSET 8064 #define EMMC_BOOT_PART_SIZE 1024 #define EMMC_VENDOR_PART_START (1024 * 7) -#define EMMC_VENDOR_PART_SIZE 128 +#define EMMC_VENDOR_PART_SIZE VENDOR_PART_SIZE #define EMMC_VENDOR_PART_NUM 4 -#define EMMC_VENDOR_TAG 0x524B5644 - -struct rk_vendor_req { - u32 tag; - u16 id; - u16 len; - u8 data[1024]; -}; - -struct vendor_item { - u16 id; - u16 offset; - u16 size; - u16 flag; -}; - -struct vendor_info { - u32 tag; - u32 version; - u16 next_index; - u16 item_num; - u16 free_offset; - u16 free_size; - struct vendor_item item[126]; /* 126 * 8*/ - u8 data[EMMC_VENDOR_PART_SIZE * 512 - 1024 - 8]; - u32 hash; - u32 version2; -}; +#define EMMC_VENDOR_TAG VENDOR_HEAD_TAG #ifdef CONFIG_ROCKCHIP_VENDOR_STORAGE_UPDATE_LOADER #define READ_SECTOR_IO _IOW('r', 0x04, unsigned int) @@ -68,24 +43,13 @@ #define GET_LOCK_FLAG_IO _IOW('r', 0x53, unsigned int) #endif -#define VENDOR_REQ_TAG 0x56524551 -#define VENDOR_READ_IO _IOW('v', 0x01, unsigned int) -#define VENDOR_WRITE_IO _IOW('v', 0x02, unsigned int) - static u8 *g_idb_buffer; static struct vendor_info *g_vendor; static DEFINE_MUTEX(vendor_ops_mutex); -extern int rk_emmc_transfer(u8 *buffer, unsigned addr, unsigned blksz, - int write); static int emmc_vendor_ops(u8 *buffer, u32 addr, u32 n_sec, int write) { - u32 i, ret = 0; - - for (i = 0; i < n_sec; i++) - ret = rk_emmc_transfer(buffer + i * 512, addr + i, 512, write); - - return ret; + return rk_emmc_transfer(buffer, addr, n_sec << 9, write); } static int emmc_vendor_storage_init(void) @@ -241,34 +205,20 @@ #ifdef CONFIG_ROCKCHIP_VENDOR_STORAGE_UPDATE_LOADER static int id_blk_read_data(u32 index, u32 n_sec, u8 *buf) { - u32 i; - u32 ret = 0; - if (index + n_sec >= 1024 * 5) return 0; index = index + EMMC_IDB_PART_OFFSET; - for (i = 0; i < n_sec; i++) { - ret = rk_emmc_transfer(buf + i * 512, index + i, 512, 0); - if (ret) - return ret; - } - return ret; + + return rk_emmc_transfer(buf, index, n_sec << 9, 0); } static int id_blk_write_data(u32 index, u32 n_sec, u8 *buf) { - u32 i; - u32 ret = 0; - if (index + n_sec >= 1024 * 5) return 0; index = index + EMMC_IDB_PART_OFFSET; - for (i = 0; i < n_sec; i++) { - ret = rk_emmc_transfer(buf + i * 512, index + i, 512, 1); - if (ret) - return ret; - } - return ret; + + return rk_emmc_transfer(buf, index, n_sec << 9, 1); } static int emmc_write_idblock(u32 size, u8 *buf, u32 *id_blk_tbl) @@ -406,7 +356,7 @@ { long ret = -1; int size; - struct rk_vendor_req *v_req; + struct RK_VENDOR_REQ *v_req; u32 *page_buf; page_buf = kmalloc(4096, GFP_KERNEL); @@ -415,7 +365,7 @@ mutex_lock(&vendor_ops_mutex); - v_req = (struct rk_vendor_req *)page_buf; + v_req = (struct RK_VENDOR_REQ *)page_buf; switch (cmd) { case VENDOR_READ_IO: @@ -574,7 +524,7 @@ return ret; } -const struct file_operations vendor_storage_fops = { +static const struct file_operations vendor_storage_fops = { .open = vendor_storage_open, .compat_ioctl = vendor_storage_ioctl, .unlocked_ioctl = vendor_storage_ioctl, -- Gitblit v1.6.2