From 8d0b59bbc0464f67297af0b1881324eb57b9838a Mon Sep 17 00:00:00 2001 From: Wei Dun Date: Thu, 17 Apr 2025 12:08:16 +0800 Subject: [PATCH 01/10] media: rockchip: vpss: fix RKVPSS_VPSS_ONLINE value error in offline mode Signed-off-by: Wei Dun Change-Id: I2331e6cb67d739cd6d9e32917d1c19b3a3a60031 --- drivers/media/platform/rockchip/vpss/vpss_offline_v20.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/rockchip/vpss/vpss_offline_v20.c b/drivers/media/platform/rockchip/vpss/vpss_offline_v20.c index 856eda7dd832..cd1b048477c8 100644 --- a/drivers/media/platform/rockchip/vpss/vpss_offline_v20.c +++ b/drivers/media/platform/rockchip/vpss/vpss_offline_v20.c @@ -1727,11 +1727,15 @@ static int rkvpss_ofl_run(struct rkvpss_offline_dev *ofl, if (!hw->is_ofl_ch[i]) continue; mask |= (RKVPSS_ISP2VPSS_CHN0_SEL(3) << i * 2); - if (hw->is_ofl_cmsc) - mask |= RKVPSS_ISP2VPSS_ONLINE2_CMSC_EN; if (cfg->output[i].enable) val |= (RKVPSS_ISP2VPSS_CHN0_SEL(1) << i * 2); } + if (hw->is_ofl_cmsc) { + val |= RKVPSS_ISP2VPSS_ONLINE2_CMSC_EN; + mask |= RKVPSS_ISP2VPSS_ONLINE2_CMSC_EN; + } + val |= RKVPSS_ISP2VPSS_ONLINE2; + mask |= RKVPSS_ISP2VPSS_ONLINE2; rkvpss_hw_set_bits(hw, RKVPSS_VPSS_ONLINE, mask, val); update = 0; From 218bc80469b3ef943205944427f2770fc0310a65 Mon Sep 17 00:00:00 2001 From: Simon Xue Date: Fri, 11 Apr 2025 10:22:58 +0800 Subject: [PATCH 02/10] init: use pageblock to free highmem instead of page when CONFIG_ROCKCHIP_THUNDER_BOOT_DEFER_FREE_MEMBLOCK=y Change-Id: Ia75a9fc0701a24053cf8312d3bd508976f8b2592 Signed-off-by: Simon Xue --- arch/arm/mm/init.c | 3 +++ mm/internal.h | 3 +++ mm/memblock.c | 43 ++++++++++++++++++++++++++++++++++++++++++- mm/page_alloc.c | 12 ++++++++++++ 4 files changed, 60 insertions(+), 1 deletion(-) diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 80299dd2f9d2..8463edbbd78e 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c @@ -245,6 +245,9 @@ static void __init free_highpages(void) phys_addr_t range_start, range_end; u64 i; + if (IS_ENABLED(CONFIG_ROCKCHIP_THUNDER_BOOT_DEFER_FREE_MEMBLOCK)) + return; + /* set highmem page free */ for_each_free_mem_range(i, NUMA_NO_NODE, MEMBLOCK_NONE, &range_start, &range_end, NULL) { diff --git a/mm/internal.h b/mm/internal.h index a50bc08337d2..2229c9198912 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -369,6 +369,9 @@ extern void __putback_isolated_page(struct page *page, unsigned int order, int mt); extern void memblock_free_pages(struct page *page, unsigned long pfn, unsigned int order); +#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_DEFER_FREE_MEMBLOCK +extern void __init rk_free_pages_core(struct page *page, unsigned int order); +#endif extern void __free_pages_core(struct page *page, unsigned int order); extern void prep_compound_page(struct page *page, unsigned int order); extern void post_alloc_hook(struct page *page, unsigned int order, diff --git a/mm/memblock.c b/mm/memblock.c index 0070d6c2c997..c89b37563872 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -2068,6 +2068,44 @@ static void __init __free_pages_memory(unsigned long start, unsigned long end) } #ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_DEFER_FREE_MEMBLOCK +static void __init rk_free_highpages(void) +{ +#ifdef CONFIG_HIGHMEM + unsigned long max_low = max_low_pfn; + phys_addr_t range_start, range_end; + u64 i; + + /* set highmem page free */ + for_each_free_mem_range(i, NUMA_NO_NODE, MEMBLOCK_NONE, + &range_start, &range_end, NULL) { + unsigned long start = PFN_UP(range_start); + unsigned long end = PFN_DOWN(range_end); + + /* Ignore complete lowmem entries */ + if (end <= max_low) + continue; + + /* Truncate partial highmem entries */ + if (start < max_low) + start = max_low; + + while (start < end) { + int order; + + order = min(MAX_ORDER - 1UL, __ffs(start)); + + while (start + (1UL << order) > end) + order--; + + rk_free_pages_core(pfn_to_page(start), order); + start += (1UL << order); + + cond_resched(); + } + } +#endif +} + int __init defer_free_memblock(void *unused) { int i; @@ -2087,9 +2125,12 @@ int __init defer_free_memblock(void *unused) db[i].defer_end >> (20 - PAGE_SHIFT), totalram_pages() >> (20 - PAGE_SHIFT)); } + + rk_free_highpages(); + return 0; } -#endif +#endif /* CONFIG_ROCKCHIP_THUNDER_BOOT_DEFER_FREE_MEMBLOCK */ static unsigned long __init __free_memory_core(phys_addr_t start, phys_addr_t end) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 4cdf86660287..7ecce8b38753 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1812,6 +1812,18 @@ void __init memblock_free_pages(struct page *page, unsigned long pfn, __free_pages_core(page, order); } +#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_DEFER_FREE_MEMBLOCK +void __init rk_free_pages_core(struct page *page, unsigned int order) +{ + __free_pages_core(page, order); + totalram_pages_add(1 << order); +#ifdef CONFIG_HIGHMEM + if (PageHighMem(page)) + totalhigh_pages_add(1 << order); +#endif +} +#endif /* CONFIG_ROCKCHIP_THUNDER_BOOT_DEFER_FREE_MEMBLOCK */ + /* * Check that the whole (or subset of) a pageblock given by the interval of * [start_pfn, end_pfn) is valid and within the same zone, before scanning it From ab08ebea9b12f8bda931d6107d540ab3c18f9a4e Mon Sep 17 00:00:00 2001 From: Simon Xue Date: Tue, 15 Apr 2025 10:46:04 +0800 Subject: [PATCH 03/10] mm: defer init highmem page when CONFIG_ROCKCHIP_THUNDER_BOOT_DEFER_FREE_MEMBLOCK=y Change-Id: I41527559ee66786826da7c3c9763804b91226bcf Signed-off-by: Simon Xue --- mm/internal.h | 5 +++++ mm/memblock.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++- mm/page_alloc.c | 30 ++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+), 1 deletion(-) diff --git a/mm/internal.h b/mm/internal.h index 2229c9198912..ac8795a89858 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -371,6 +371,11 @@ extern void memblock_free_pages(struct page *page, unsigned long pfn, unsigned int order); #ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_DEFER_FREE_MEMBLOCK extern void __init rk_free_pages_core(struct page *page, unsigned int order); +extern unsigned long __init rk_deferred_init_pages(struct zone *zone, + unsigned long pfn, + unsigned long end_pfn); +extern bool __meminit rk_defer_init_hpages(int nid, unsigned long zone_idx, + unsigned long pfn, unsigned long end_pfn); #endif extern void __free_pages_core(struct page *page, unsigned int order); extern void prep_compound_page(struct page *page, unsigned int order); diff --git a/mm/memblock.c b/mm/memblock.c index c89b37563872..5358ce52ee3c 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -124,7 +124,19 @@ static int __init early_defer_free_block_size(char *p) } early_param("defer_free_block_size", early_defer_free_block_size); -#endif + +/* deferred highpage stuff */ +struct rk_defered_highpage_info { + unsigned long pfn_start; + unsigned long pfn_end; + struct zone *zone; +}; + +#define RK_DHPI_NUM_MAX 3 + +static struct rk_defered_highpage_info rk_dhpi[RK_DHPI_NUM_MAX]; +static int rk_dhpi_num; +#endif /* CONFIG_ROCKCHIP_THUNDER_BOOT_DEFER_FREE_MEMBLOCK */ unsigned long max_low_pfn; unsigned long min_low_pfn; @@ -2106,9 +2118,48 @@ static void __init rk_free_highpages(void) #endif } +bool __meminit rk_defer_init_hpages(int nid, unsigned long zone_idx, + unsigned long pfn, unsigned long end_pfn) +{ + struct pglist_data *pdata = NODE_DATA(nid); + struct zone *zone = &pdata->node_zones[zone_idx]; + + if (rk_dhpi_num >= RK_DHPI_NUM_MAX) { + pr_err("too much deferred page zone\n"); + return false; + } + + if (strstr(zone->name, "HighMem")) { + pr_debug("%s, zone : %s, pfn[0x%lx-0x%lx]\n", __func__, + zone->name, pfn, end_pfn); + rk_dhpi[rk_dhpi_num].pfn_start = pfn; + rk_dhpi[rk_dhpi_num].pfn_end = end_pfn; + rk_dhpi[rk_dhpi_num].zone = zone; + rk_dhpi_num++; + + return true; + } + return false; +} + int __init defer_free_memblock(void *unused) { int i; + unsigned long nr_pages = 0; + + pr_debug("%s, rk_dhpi_num = %d\n", __func__, rk_dhpi_num); + + for (i = 0; i < rk_dhpi_num; i++) { + struct zone *zone = rk_dhpi[i].zone; + unsigned long start_pfn = rk_dhpi[i].pfn_start; + unsigned long end_pfn = rk_dhpi[i].pfn_end; + + pr_info("%s, zone : %s, pfn[0x%lx-0x%lx]\n", __func__, + zone->name, start_pfn, end_pfn); + nr_pages += rk_deferred_init_pages(zone, start_pfn, end_pfn); + } + + pr_debug("%s, deferred_nr_page = 0x%lx\n", __func__, nr_pages); for (i = 0; i < db_count; i++) { pr_debug("%s: start = %ld, end = %ld\n", diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 7ecce8b38753..e463adea6504 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1822,6 +1822,31 @@ void __init rk_free_pages_core(struct page *page, unsigned int order) totalhigh_pages_add(1 << order); #endif } + +unsigned long __init rk_deferred_init_pages(struct zone *zone, + unsigned long pfn, + unsigned long end_pfn) +{ + int nid = zone_to_nid(zone); + unsigned long nr_pages = 0; + int zid = zone_idx(zone); + struct page *page = NULL; + + for (; pfn < end_pfn; pfn++) { + if (!page || pageblock_aligned(pfn)) + page = pfn_to_page(pfn); + else + page++; + + __init_single_page(page, pfn, zid, nid, true); + nr_pages++; + + /* Call cond_resched() only once every 8 pages */ + if ((nr_pages & 7) == 0) + cond_resched(); + } + return (nr_pages); +} #endif /* CONFIG_ROCKCHIP_THUNDER_BOOT_DEFER_FREE_MEMBLOCK */ /* @@ -6830,6 +6855,11 @@ void __meminit memmap_init_range(unsigned long size, int nid, unsigned long zone } #endif +#ifdef CONFIG_ROCKCHIP_THUNDER_BOOT_DEFER_FREE_MEMBLOCK + if (rk_defer_init_hpages(nid, zone, start_pfn, end_pfn)) + return; +#endif + #ifdef CONFIG_ROCKCHIP_THUNDER_BOOT /* Zero all page struct in advance */ memset(pfn_to_page(start_pfn), 0, sizeof(struct page) * size); From e855636bd41a56568aec8f7084baddee91988648 Mon Sep 17 00:00:00 2001 From: Xu Hongfei Date: Tue, 22 Apr 2025 11:57:46 +0800 Subject: [PATCH 04/10] media: rockchip: fec: Fix incorrect buffer size configuration Signed-off-by: Xu Hongfei Change-Id: Id32343f59b34606ca8c1719d11d77a25f9a97c2a --- drivers/media/platform/rockchip/fec/fec_offline.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/rockchip/fec/fec_offline.c b/drivers/media/platform/rockchip/fec/fec_offline.c index b89146a6126b..1c543a0710dc 100644 --- a/drivers/media/platform/rockchip/fec/fec_offline.c +++ b/drivers/media/platform/rockchip/fec/fec_offline.c @@ -102,7 +102,7 @@ static int buf_alloc(struct file *file, struct rkfec_buf *info) return -ENOMEM; #if IS_LINUX_VERSION_AT_LEAST_6_1 init_vb2(ofl, buf); - mem = ops->alloc(&buf->vb, hw->dev, info->size); + mem = ops->alloc(&buf->vb, hw->dev, size); #else mem = ops->alloc(hw->dev, DMA_ATTR_NO_KERNEL_MAPPING, size, DMA_BIDIRECTIONAL, GFP_KERNEL | GFP_DMA32); @@ -141,7 +141,7 @@ static int buf_alloc(struct file *file, struct rkfec_buf *info) list_add_tail(&buf->list, &ofl->list); mutex_unlock(&hw->dev_lock); v4l2_dbg(1, rkfec_debug, &ofl->v4l2_dev, "%s file:%p, fd:%d dbuf:%p size %d\n", - __func__, file, fd, dbuf, info->size); + __func__, file, fd, dbuf, size); return 0; err_dmabuf_fd: From 958266bd131d8740e776a73ef9e72a03c889e146 Mon Sep 17 00:00:00 2001 From: Zefa Chen Date: Tue, 22 Apr 2025 09:41:40 +0800 Subject: [PATCH 05/10] media: rockchip: vicap fixes yuv input order error of dvp for rk3576 Change-Id: I1dd0603a3c4d134adbb9fd4f9a04d019af38c0d0 Signed-off-by: Zefa Chen --- drivers/media/platform/rockchip/cif/capture.c | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/rockchip/cif/capture.c b/drivers/media/platform/rockchip/cif/capture.c index f80644b61b34..00fc9e25cb4f 100644 --- a/drivers/media/platform/rockchip/cif/capture.c +++ b/drivers/media/platform/rockchip/cif/capture.c @@ -4302,6 +4302,31 @@ static int rkcif_dvp_get_input_yuv_order(struct rkcif_stream *stream) return mask; } +static int rkcif_dvp_get_input_yuv_order_rk3576(struct rkcif_stream *stream) +{ + unsigned int mask; + const struct cif_input_fmt *fmt = stream->cif_fmt_in; + + switch (fmt->mbus_code) { + case MEDIA_BUS_FMT_UYVY8_2X8: + mask = CSI_YUV_INPUT_ORDER_UYVY; + break; + case MEDIA_BUS_FMT_VYUY8_2X8: + mask = CSI_YUV_INPUT_ORDER_VYUY; + break; + case MEDIA_BUS_FMT_YUYV8_2X8: + mask = CSI_YUV_INPUT_ORDER_YUYV; + break; + case MEDIA_BUS_FMT_YVYU8_2X8: + mask = CSI_YUV_INPUT_ORDER_YVYU; + break; + default: + mask = CSI_YUV_INPUT_ORDER_UYVY; + break; + } + return mask; +} + static int rkcif_csi_get_output_type_mask(struct rkcif_stream *stream) { unsigned int mask; @@ -7834,11 +7859,12 @@ static int rkcif_stream_start(struct rkcif_stream *stream, unsigned int mode) val &= ~CIF_HIGH_ALIGN_RK3588; } else { out_fmt_mask = rkcif_dvp_get_output_type_mask_rk3576(stream); + in_fmt_yuv_order = rkcif_dvp_get_input_yuv_order_rk3576(stream); val = vsync_pol | href_pol | inputmode | yc_swap | out_fmt_mask - | stream->cif_fmt_in->dvp_fmt_val + | in_fmt_yuv_order | multi_id_en | xfer_mode | multi_id_sel | multi_id_mode From 3a35a943a280eecfb19be4bb8b094280476a8fef Mon Sep 17 00:00:00 2001 From: Finley Xiao Date: Thu, 17 Apr 2025 19:54:45 +0800 Subject: [PATCH 06/10] soc: rockchip: opp_select: Fix memleak in rockchip_opp_set_config() Change-Id: I93224fd07ccf594a12a6365fa6c81519a8f24a1e Signed-off-by: Finley Xiao --- drivers/soc/rockchip/rockchip_opp_select.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/soc/rockchip/rockchip_opp_select.c b/drivers/soc/rockchip/rockchip_opp_select.c index 8be1980533fa..40898c39c85a 100644 --- a/drivers/soc/rockchip/rockchip_opp_select.c +++ b/drivers/soc/rockchip/rockchip_opp_select.c @@ -1541,6 +1541,7 @@ static int rockchip_opp_set_config(struct device *dev, struct rockchip_opp_info struct clk *clk = NULL; const char *reg_names[] = {NULL, NULL, NULL}; const char *clk_names[] = {NULL, NULL, NULL}; + int ret = 0; if (clk_name) { clk = clk_get(dev, clk_name); @@ -1592,7 +1593,8 @@ static int rockchip_opp_set_config(struct device *dev, struct rockchip_opp_info info->opp_token = dev_pm_opp_set_config(dev, &config); if (info->opp_token < 0) { dev_err(dev, "failed to set opp config\n"); - return info->opp_token; + ret = info->opp_token; + goto err; } /* @@ -1602,10 +1604,15 @@ static int rockchip_opp_set_config(struct device *dev, struct rockchip_opp_info */ if (rockchip_opp_set_regulator_helper(dev, info)) { dev_err(dev, "failed to set opp regulator helper\n"); - return -EINVAL; + dev_pm_opp_clear_config(info->opp_token); + info->opp_token = 0; + ret = -EINVAL; } - return 0; +err: + kfree(config.supported_hw); + + return ret; } void rockchip_opp_dvfs_lock(struct rockchip_opp_info *info) @@ -1778,6 +1785,7 @@ EXPORT_SYMBOL(rockchip_init_opp_info); void rockchip_uninit_opp_info(struct device *dev, struct rockchip_opp_info *info) { dev_pm_opp_clear_config(info->opp_token); + info->opp_token = 0; } EXPORT_SYMBOL(rockchip_uninit_opp_info); From fdca11283fb187a6d7210465536ba777136f7f15 Mon Sep 17 00:00:00 2001 From: Chen Shunqing Date: Wed, 16 Apr 2025 10:52:52 +0800 Subject: [PATCH 07/10] media: i2c: rk628: fix read timing err Signed-off-by: Chen Shunqing Change-Id: I86ff4e38dd0ffdd36ae407be6d59dea3048226e8 --- drivers/media/i2c/rk628/rk628_hdmirx.c | 207 ++++++++++++++++--------- 1 file changed, 136 insertions(+), 71 deletions(-) diff --git a/drivers/media/i2c/rk628/rk628_hdmirx.c b/drivers/media/i2c/rk628/rk628_hdmirx.c index 1df0c40e9a75..378b25bdf2a0 100644 --- a/drivers/media/i2c/rk628/rk628_hdmirx.c +++ b/drivers/media/i2c/rk628/rk628_hdmirx.c @@ -1552,6 +1552,44 @@ u32 rk628_hdmirx_get_tmdsclk_cnt(struct rk628 *rk628) } EXPORT_SYMBOL(rk628_hdmirx_get_tmdsclk_cnt); +struct rk628_timings { + int vic; + int hactive; + int hfp; + int hsync; + int hbp; + int htotal; + int vactive; + int vfp; + int vsync; + int vbp; + int vtotal; + int clock; +}; + +static const struct rk628_timings pre_timing[] = { + { 2, 720, 16, 62, 60, 858, 480, 9, 6, 30, 525, 27000000 }, + { 3, 720, 16, 62, 60, 858, 480, 9, 6, 30, 525, 27000000 }, + { 4, 1280, 110, 40, 220, 1650, 720, 5, 5, 20, 750, 74250000}, + { 16, 1920, 88, 44, 148, 2200, 1080, 4, 5, 36, 1125, 148500000 }, + { 19, 1280, 440, 40, 220, 1980, 720, 5, 5, 20, 750, 74250000}, + { 31, 1920, 528, 44, 148, 2640, 1080, 4, 5, 36, 1125, 148500000}, + { 32, 1920, 638, 44, 148, 2750, 1080, 4, 5, 36, 1125, 74250000}, + { 33, 1920, 528, 44, 148, 2640, 1080, 4, 5, 36, 1125, 74250000}, + { 34, 1920, 88, 44, 148, 2200, 1080, 4, 5, 36, 1125, 74250000}, + { 62, 1280, 1760, 40, 220, 3300, 720, 5, 5, 20, 750, 74250000}, + { 93, 3840, 1276, 88, 296, 5500, 2160, 8, 10, 72, 2250, 297000000 }, + { 94, 3840, 1056, 88, 296, 5280, 2160, 8, 10, 72, 2250, 297000000 }, + { 95, 3840, 176, 88, 296, 4400, 2160, 8, 10, 72, 2250, 297000000 }, + { 96, 3840, 1056, 88, 296, 5280, 2160, 8, 10, 72, 2250, 594000000 }, + { 97, 3840, 176, 88, 296, 4400, 2160, 8, 10, 72, 2250, 594000000 }, + { 103, 3840, 1276, 88, 296, 5500, 2160, 8, 10, 72, 2250, 297000000 }, + { 104, 3840, 1056, 88, 296, 5280, 2160, 8, 10, 72, 2250, 297000000 }, + { 105, 3840, 176, 88, 296, 4400, 2160, 8, 10, 72, 2250, 297000000 }, + { 106, 3840, 1056, 88, 296, 5280, 2160, 8, 10, 72, 2250, 594000000 }, + { 107, 3840, 176, 88, 296, 4400, 2160, 8, 10, 72, 2250, 594000000 }, +}; + static int rk628_hdmirx_read_timing(struct rk628 *rk628, struct v4l2_dv_timings *timings) { @@ -1564,6 +1602,7 @@ static int rk628_hdmirx_read_timing(struct rk628 *rk628, u64 tmp_data; u8 video_fmt, vic, color_range, color_space; u32 format; + int i, match = 0; memset(timings, 0, sizeof(struct v4l2_dv_timings)); timings->type = V4L2_DV_BT_656_1120; @@ -1574,55 +1613,6 @@ static int rk628_hdmirx_read_timing(struct rk628 *rk628, bt->interlaced = val & ILACE_STS ? V4L2_DV_INTERLACED : V4L2_DV_PROGRESSIVE; - rk628_i2c_read(rk628, HDMI_RX_MD_HACT_PX, &val); - hact = val & 0xffff; - rk628_i2c_read(rk628, HDMI_RX_MD_VAL, &val); - vact = val & 0xffff; - rk628_i2c_read(rk628, HDMI_RX_MD_HT1, &val); - htotal = (val >> 16) & 0xffff; - rk628_i2c_read(rk628, HDMI_RX_MD_VTL, &val); - vtotal = val & 0xffff; - rk628_i2c_read(rk628, HDMI_RX_MD_HT1, &val); - hofs_pix = val & 0xffff; - rk628_i2c_read(rk628, HDMI_RX_MD_VOL, &val); - vbp = (val & 0xffff) + 1; - - tmdsclk_cnt = rk628_hdmirx_get_tmdsclk_cnt(rk628); - tmp_data = tmdsclk_cnt; - tmp_data = ((tmp_data * HDMIRX_MODETCLK_HZ) + HDMIRX_MODETCLK_CNT_NUM / 2); - do_div(tmp_data, HDMIRX_MODETCLK_CNT_NUM); - tmds_clk = tmp_data; - if (!htotal || !vtotal || bt->interlaced || vtotal > 3000) { - dev_err(rk628->dev, "timing err, %s htotal:%d, vtotal:%d\n", - bt->interlaced ? "interlaced is not supported," : "", - htotal, vtotal); - goto TIMING_ERR; - } - if (rk628->version >= RK628F_VERSION) - fps = tmds_clk / (htotal * vtotal); - else - fps = (tmds_clk + (htotal * vtotal) / 2) / (htotal * vtotal); - - rk628_i2c_read(rk628, HDMI_RX_MD_HT0, &val); - modetclk_cnt_hs = val & 0xffff; - hs = (tmdsclk_cnt * modetclk_cnt_hs + HDMIRX_MODETCLK_CNT_NUM / 2) / - HDMIRX_MODETCLK_CNT_NUM; - - rk628_i2c_read(rk628, HDMI_RX_MD_VSC, &val); - modetclk_cnt_vs = val & 0xffff; - vs = (tmdsclk_cnt * modetclk_cnt_vs + HDMIRX_MODETCLK_CNT_NUM / 2) / - HDMIRX_MODETCLK_CNT_NUM; - vs = (vs + htotal / 2) / htotal; - - if ((hofs_pix < hs) || (htotal < (hact + hofs_pix)) || - (vtotal < (vact + vs + vbp)) || !vs) { - dev_err(rk628->dev, "timing err, total:%dx%d, act:%dx%d, hofs:%d, hs:%d, vs:%d, vbp:%d\n", - htotal, vtotal, hact, vact, hofs_pix, hs, vs, vbp); - goto TIMING_ERR; - } - hbp = hofs_pix - hs; - hfp = htotal - hact - hofs_pix; - vfp = vtotal - vact - vs - vbp; rk628_i2c_read(rk628, HDMI_RX_PDEC_AVI_PB, &val); vic = (val & VID_IDENT_CODE_MASK) >> 24; @@ -1637,28 +1627,101 @@ static int rk628_hdmirx_read_timing(struct rk628 *rk628, rk628->color_space = color_space; rk628_i2c_read(rk628, HDMI_RX_PDEC_STS, &val); rk628->dvi_mode = val & DVI_DET; - if (video_fmt == BUS_FMT_YUV420) { - //format:color depth, 5: 10bit, 4: 8bit - if (format == 5) { - htotal = htotal * 2 * 8 / 10; - hact = hact * 2 * 8 / 10; - hfp = hfp * 2 * 8 / 10; - hbp = hbp * 2 * 8 / 10; - hs = hs * 2 * 8 / 10; - } else { - htotal *= 2; - hact *= 2; - hfp *= 2; - hbp *= 2; - hs *= 2; + + for (i = 0; vic && i < ARRAY_SIZE(pre_timing); i++) { + if (vic == pre_timing[i].vic) { + hact = pre_timing[i].hactive; + hfp = pre_timing[i].hfp; + hs = pre_timing[i].hsync; + hbp = pre_timing[i].hbp; + htotal = pre_timing[i].htotal; + vact = pre_timing[i].vactive; + vfp = pre_timing[i].vfp; + vs = pre_timing[i].vsync; + vbp = pre_timing[i].vbp; + vtotal = pre_timing[i].vtotal; + tmds_clk = pre_timing[i].clock; + match = 1; + break; } } - rk628_dbg(rk628, "cnt_num:%d, tmds_cnt:%d, hs_cnt:%d, vs_cnt:%d, hofs:%d\n", - HDMIRX_MODETCLK_CNT_NUM, tmdsclk_cnt, modetclk_cnt_hs, modetclk_cnt_vs, hofs_pix); + if (!match) { + rk628_i2c_read(rk628, HDMI_RX_MD_HACT_PX, &val); + hact = val & 0xffff; + rk628_i2c_read(rk628, HDMI_RX_MD_VAL, &val); + vact = val & 0xffff; + rk628_i2c_read(rk628, HDMI_RX_MD_HT1, &val); + htotal = (val >> 16) & 0xffff; + rk628_i2c_read(rk628, HDMI_RX_MD_VTL, &val); + vtotal = val & 0xffff; + rk628_i2c_read(rk628, HDMI_RX_MD_HT1, &val); + hofs_pix = val & 0xffff; + rk628_i2c_read(rk628, HDMI_RX_MD_VOL, &val); + vbp = (val & 0xffff) + 1; + + tmdsclk_cnt = rk628_hdmirx_get_tmdsclk_cnt(rk628); + tmp_data = tmdsclk_cnt; + tmp_data = ((tmp_data * HDMIRX_MODETCLK_HZ) + HDMIRX_MODETCLK_CNT_NUM / 2); + do_div(tmp_data, HDMIRX_MODETCLK_CNT_NUM); + tmds_clk = tmp_data; + if (!htotal || !vtotal || bt->interlaced || vtotal > 3000) { + dev_err(rk628->dev, "timing err, %s htotal:%d, vtotal:%d\n", + bt->interlaced ? "interlaced is not supported," : "", + htotal, vtotal); + goto TIMING_ERR; + } + + rk628_i2c_read(rk628, HDMI_RX_MD_HT0, &val); + modetclk_cnt_hs = val & 0xffff; + hs = (tmdsclk_cnt * modetclk_cnt_hs + HDMIRX_MODETCLK_CNT_NUM / 2) / + HDMIRX_MODETCLK_CNT_NUM; + + rk628_i2c_read(rk628, HDMI_RX_MD_VSC, &val); + modetclk_cnt_vs = val & 0xffff; + vs = (tmdsclk_cnt * modetclk_cnt_vs + HDMIRX_MODETCLK_CNT_NUM / 2) / + HDMIRX_MODETCLK_CNT_NUM; + vs = (vs + htotal / 2) / htotal; + + if ((hofs_pix < hs) || (htotal < (hact + hofs_pix)) || + (vtotal < (vact + vs + vbp)) || !vs) { + dev_err(rk628->dev, "timing err, total:%dx%d, act:%dx%d, hofs:%d, hs:%d, vs:%d, vbp:%d\n", + htotal, vtotal, hact, vact, hofs_pix, hs, vs, vbp); + goto TIMING_ERR; + } + hbp = hofs_pix - hs; + hfp = htotal - hact - hofs_pix; + vfp = vtotal - vact - vs - vbp; + + if (video_fmt == BUS_FMT_YUV420) { + //format:color depth, 5: 10bit, 4: 8bit + if (format == 5) { + htotal = htotal * 2 * 8 / 10; + hact = hact * 2 * 8 / 10; + hfp = hfp * 2 * 8 / 10; + hbp = hbp * 2 * 8 / 10; + hs = hs * 2 * 8 / 10; + } else { + htotal *= 2; + hact *= 2; + hfp *= 2; + hbp *= 2; + hs *= 2; + } + } + + rk628_dbg(rk628, "cnt_num:%d, tmds_cnt:%d, hs_cnt:%d, vs_cnt:%d, hofs:%d\n", + HDMIRX_MODETCLK_CNT_NUM, tmdsclk_cnt, modetclk_cnt_hs, + modetclk_cnt_vs, hofs_pix); + } + rk628_dbg(rk628, "get current aviif: vic:%d, color_range: %s, color_space %s", vic, bus_color_range_str[color_range], bus_color_space_str[color_space]); + if (rk628->version >= RK628F_VERSION) + fps = tmds_clk / (htotal * vtotal); + else + fps = (tmds_clk + (htotal * vtotal) / 2) / (htotal * vtotal); bt->width = hact; bt->height = vact; bt->hfrontporch = hfp; @@ -1677,12 +1740,14 @@ static int rk628_hdmirx_read_timing(struct rk628 *rk628, bt->il_vsync = bt->vsync + 1; bt->pixelclock /= 2; } - if (video_fmt == BUS_FMT_YUV420) { - if (format == 5) { - bt->pixelclock = bt->pixelclock * 8 * 2; - do_div(bt->pixelclock, 10); - } else { - bt->pixelclock *= 2; + if (!match) { + if (video_fmt == BUS_FMT_YUV420) { + if (format == 5) { + bt->pixelclock = bt->pixelclock * 8 * 2; + do_div(bt->pixelclock, 10); + } else { + bt->pixelclock *= 2; + } } } From 757decd818c9d3f88ce524f97b3c29e93009aba0 Mon Sep 17 00:00:00 2001 From: Wei Dun Date: Tue, 15 Apr 2025 17:01:37 +0800 Subject: [PATCH 08/10] media: rockchip: vpss: set ROCKIT_BUF_NUM_MAX to 20 Signed-off-by: Wei Dun Change-Id: I1d2b0b30bccef8fce1a3f98e7c862a317b062e4c --- include/soc/rockchip/rockchip_rockit.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/soc/rockchip/rockchip_rockit.h b/include/soc/rockchip/rockchip_rockit.h index a9fd87681a67..6ced3b47ff88 100644 --- a/include/soc/rockchip/rockchip_rockit.h +++ b/include/soc/rockchip/rockchip_rockit.h @@ -8,7 +8,7 @@ #include #include -#define ROCKIT_BUF_NUM_MAX 5 +#define ROCKIT_BUF_NUM_MAX 20 #define ROCKIT_ISP_NUM_MAX 3 #define ROCKIT_STREAM_NUM_MAX 12 From d1ccccff54b30a3db662884a96bec798fa657ec4 Mon Sep 17 00:00:00 2001 From: Caesar Wang Date: Tue, 22 Apr 2025 11:06:43 +0800 Subject: [PATCH 09/10] ARM: configs: add rv1126b_linux_defconfig to support RV1126B SoC with Linux OS This defconfig targets the RV1126B SoC, enabling essential drivers for embedded Linux systems built with Buildroot. Verified on RV1126B evaluation board: boots to desktop GUI and runs rkipc demo app normally. Change-Id: I431c667fc0a560b2e3232667db95f5d8128c29cf Signed-off-by: Caesar Wang --- arch/arm/configs/rv1126b_linux_defconfig | 343 +++++++++++++++++++++++ 1 file changed, 343 insertions(+) create mode 100644 arch/arm/configs/rv1126b_linux_defconfig diff --git a/arch/arm/configs/rv1126b_linux_defconfig b/arch/arm/configs/rv1126b_linux_defconfig new file mode 100644 index 000000000000..10fba2635ff2 --- /dev/null +++ b/arch/arm/configs/rv1126b_linux_defconfig @@ -0,0 +1,343 @@ +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_KERNEL_XZ=y +CONFIG_DEFAULT_HOSTNAME="localhost" +CONFIG_SYSVIPC=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_LD_DEAD_CODE_DATA_ELIMINATION=y +# CONFIG_BUG is not set +# CONFIG_BASE_FULL is not set +# CONFIG_IO_URING is not set +CONFIG_EMBEDDED=y +CONFIG_ARCH_ROCKCHIP=y +# CONFIG_HARDEN_BRANCH_PREDICTOR is not set +# CONFIG_HARDEN_BRANCH_HISTORY is not set +# CONFIG_VDSO is not set +# CONFIG_CACHE_L2X0 is not set +# CONFIG_ARM_ERRATA_643719 is not set +CONFIG_SMP=y +CONFIG_SCHED_MC=y +CONFIG_VMSPLIT_3G_OPT=y +CONFIG_HOTPLUG_CPU=y +CONFIG_ARM_PSCI=y +CONFIG_THUMB2_KERNEL=y +CONFIG_HIGHMEM=y +# CONFIG_CPU_SW_DOMAIN_PAN is not set +CONFIG_ARCH_FORCE_MAX_ORDER=9 +CONFIG_UACCESS_WITH_MEMCPY=y +# CONFIG_STACKPROTECTOR_PER_TASK is not set +CONFIG_CMDLINE="user_debug=31" +CONFIG_CMDLINE_EXTEND=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPUFREQ_DT=y +CONFIG_ARM_ROCKCHIP_CPUFREQ=y +CONFIG_CPU_IDLE=y +CONFIG_ARM_CPUIDLE=y +CONFIG_ARM_PSCI_CPUIDLE=y +# CONFIG_ARM_PSCI_CPUIDLE_DOMAIN is not set +CONFIG_VFP=y +CONFIG_NEON=y +# CONFIG_SUSPEND is not set +CONFIG_JUMP_LABEL=y +# CONFIG_SECCOMP is not set +# CONFIG_STACKPROTECTOR_STRONG is not set +# CONFIG_STRICT_KERNEL_RWX is not set +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_PARTITION_ADVANCED=y +CONFIG_CMDLINE_PARTITION=y +# CONFIG_MQ_IOSCHED_KYBER is not set +CONFIG_IOSCHED_BFQ=y +# CONFIG_SWAP is not set +CONFIG_KSM=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_CMA=y +CONFIG_CMA_INACTIVE=y +# CONFIG_VM_EVENT_COUNTERS is not set +CONFIG_LRU_GEN=y +CONFIG_LRU_GEN_ENABLED=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_INET_TABLE_PERTURB_ORDER=8 +# CONFIG_INET_DIAG is not set +# CONFIG_IPV6_SIT is not set +CONFIG_BT=y +CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_H4=y +CONFIG_RFKILL=y +CONFIG_RFKILL_RK=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_ALLOW_DEV_COREDUMP is not set +CONFIG_ROCKCHIP_SIP=y +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_OF_PARTS is not set +CONFIG_MTD_BLOCK=y +CONFIG_MTD_SPI_NAND=y +CONFIG_MTD_SPI_NOR=y +CONFIG_MTD_SPI_NOR_MISC=y +# CONFIG_MTD_SPI_NOR_DEVICE_AUTOSELECT is not set +CONFIG_MTD_SPI_NOR_GIGADEVICE=y +CONFIG_MTD_SPI_NOR_MACRONIX=y +CONFIG_MTD_SPI_NOR_WINBOND=y +CONFIG_MTD_UBI=y +CONFIG_MTD_UBI_BLOCK=y +CONFIG_NETDEVICES=y +# CONFIG_NET_CORE is not set +CONFIG_STMMAC_ETH=y +# CONFIG_DWMAC_GENERIC is not set +CONFIG_ROCKCHIP_FEPHY=y +# CONFIG_USB_NET_DRIVERS is not set +# CONFIG_WLAN_VENDOR_ADMTEK is not set +# CONFIG_WLAN_VENDOR_ATH is not set +# CONFIG_WLAN_VENDOR_ATMEL is not set +# CONFIG_WLAN_VENDOR_BROADCOM is not set +# CONFIG_WLAN_VENDOR_CISCO is not set +# CONFIG_WLAN_VENDOR_INTEL is not set +# CONFIG_WLAN_VENDOR_INTERSIL is not set +# CONFIG_WLAN_VENDOR_MARVELL is not set +# CONFIG_WLAN_VENDOR_MEDIATEK is not set +# CONFIG_WLAN_VENDOR_MICROCHIP is not set +# CONFIG_WLAN_VENDOR_RALINK is not set +# CONFIG_WLAN_VENDOR_REALTEK is not set +# CONFIG_WLAN_VENDOR_RSI is not set +# CONFIG_WLAN_VENDOR_ST is not set +# CONFIG_WLAN_VENDOR_TI is not set +# CONFIG_WLAN_VENDOR_ZYDAS is not set +# CONFIG_WLAN_VENDOR_QUANTENNA is not set +CONFIG_WL_ROCKCHIP=y +# CONFIG_BCMDHD is not set +CONFIG_INPUT_EVDEV=y +CONFIG_KEYBOARD_ADC=y +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_SERIO is not set +# CONFIG_VT is not set +# CONFIG_LEGACY_PTYS is not set +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +# CONFIG_SERIAL_8250_16550A_VARIANTS is not set +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=8 +CONFIG_SERIAL_8250_RUNTIME_UARTS=8 +CONFIG_SERIAL_8250_DW=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_ROCKCHIP=y +# CONFIG_RANDOM_TRUST_BOOTLOADER is not set +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y +CONFIG_I2C_GPIO=y +CONFIG_I2C_RK3X=y +CONFIG_SPI=y +CONFIG_SPI_ROCKCHIP=y +CONFIG_SPI_ROCKCHIP_SFC=y +CONFIG_SPI_SPIDEV=y +# CONFIG_PTP_1588_CLOCK is not set +CONFIG_GPIO_SYSFS=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_RESTART=y +CONFIG_SYSCON_REBOOT_MODE=y +CONFIG_POWER_SUPPLY=y +# CONFIG_HWMON is not set +CONFIG_THERMAL=y +CONFIG_THERMAL_WRITABLE_TRIPS=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_CPU_THERMAL=y +CONFIG_DEVFREQ_THERMAL=y +CONFIG_ROCKCHIP_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_DW_WATCHDOG=y +CONFIG_MFD_RK808=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_PWM=y +CONFIG_REGULATOR_RK801=y +CONFIG_REGULATOR_RK808=y +CONFIG_MEDIA_SUPPORT=y +CONFIG_MEDIA_SUPPORT_FILTER=y +# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_PLATFORM_SUPPORT=y +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_ROCKCHIP_AIISP=y +CONFIG_VIDEO_ROCKCHIP_AVSP=y +CONFIG_VIDEO_ROCKCHIP_CIF=y +CONFIG_VIDEO_ROCKCHIP_FEC=y +CONFIG_VIDEO_ROCKCHIP_ISP=y +CONFIG_VIDEO_ROCKCHIP_VPSS=y +CONFIG_VIDEO_GC2053=y +CONFIG_VIDEO_GC8613=y +CONFIG_VIDEO_IMX415=y +CONFIG_VIDEO_OS04A10=y +CONFIG_VIDEO_PS5458=y +CONFIG_VIDEO_SC200AI=y +CONFIG_VIDEO_SC3336=y +CONFIG_VIDEO_SC401AI=y +CONFIG_VIDEO_SC4336=y +CONFIG_VIDEO_SC450AI=y +CONFIG_VIDEO_SC530AI=y +CONFIG_VIDEO_SC635HAI=y +CONFIG_VIDEO_SC850SL=y +CONFIG_VIDEO_TECHPOINT=y +CONFIG_DRM=y +CONFIG_DRM_IGNORE_IOTCL_PERMIT=y +CONFIG_DRM_ROCKCHIP=y +CONFIG_ROCKCHIP_DRM_DEBUG=y +CONFIG_ROCKCHIP_VOP=y +CONFIG_ROCKCHIP_DW_MIPI_DSI=y +CONFIG_ROCKCHIP_RGB=y +CONFIG_DRM_PANEL_SIMPLE=y +CONFIG_DRM_PANEL_SIMPLE_OF_ONLY=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_PWM=y +CONFIG_ROCKCHIP_MULTI_RGA=y +CONFIG_ROCKCHIP_RGA_PROC_FS=y +# CONFIG_ROCKCHIP_RGA_DEBUG_FS is not set +CONFIG_ROCKCHIP_MPP_OSAL=y +CONFIG_ROCKCHIP_DVBM=y +CONFIG_SOUND=y +CONFIG_SND=y +# CONFIG_SND_PCM_TIMER is not set +# CONFIG_SND_SUPPORT_OLD_API is not set +# CONFIG_SND_DRIVERS is not set +# CONFIG_SND_ARM is not set +# CONFIG_SND_SPI is not set +CONFIG_SND_SOC=y +CONFIG_SND_SOC_ROCKCHIP=y +CONFIG_SND_SOC_ROCKCHIP_ASRC=y +CONFIG_SND_SOC_ROCKCHIP_PDM_V2=y +CONFIG_SND_SOC_ROCKCHIP_SAI=y +CONFIG_SND_SOC_ROCKCHIP_MULTICODECS=y +CONFIG_SND_SOC_DUMMY_CODEC=y +CONFIG_SND_SOC_RK3506=y +CONFIG_SND_SOC_RK817=y +CONFIG_SND_SOC_RK_DSM=y +CONFIG_SND_SIMPLE_CARD=y +# CONFIG_HID is not set +# CONFIG_USB_HID is not set +CONFIG_USB=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_DWC3=y +CONFIG_USB_GADGET=y +CONFIG_USB_GADGET_VBUS_DRAW=500 +CONFIG_USB_CONFIGFS=y +CONFIG_USB_CONFIGFS_UEVENT=y +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_USB_CONFIGFS_F_UAC1=y +CONFIG_USB_CONFIGFS_F_UAC2=y +CONFIG_USB_CONFIGFS_F_HID=y +CONFIG_USB_CONFIGFS_F_UVC=y +CONFIG_MMC=y +# CONFIG_PWRSEQ_EMMC is not set +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_QUEUE_DEPTH=1 +CONFIG_MMC_DW=y +CONFIG_MMC_DW_ROCKCHIP=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_RK808=y +CONFIG_RTC_DRV_ROCKCHIP=y +CONFIG_DMADEVICES=y +CONFIG_ROCKCHIP_DMA=y +CONFIG_DMABUF_HEAPS=y +CONFIG_DMABUF_HEAPS_SYSTEM=y +CONFIG_DMABUF_HEAPS_ROCKCHIP=y +CONFIG_DMABUF_HEAPS_ROCKCHIP_CMA_HEAP=y +CONFIG_DMABUF_HEAPS_ROCKCHIP_CMA_ALIGNMENT=0 +CONFIG_DMABUF_RK_HEAPS_DEBUG=y +# CONFIG_VIRTIO_MENU is not set +# CONFIG_VHOST_MENU is not set +CONFIG_STAGING=y +CONFIG_COMMON_CLK_PROCFS=y +CONFIG_COMMON_CLK_RK808=y +CONFIG_ROCKCHIP_CLK_OUT=y +CONFIG_ROCKCHIP_CLK_PVTPLL=y +# CONFIG_ARM_ARCH_TIMER_EVTSTREAM is not set +CONFIG_ROCKCHIP_IOMMU=y +CONFIG_CPU_RV1126B=y +CONFIG_ROCKCHIP_AMP=y +CONFIG_ROCKCHIP_CPUINFO=y +CONFIG_ROCKCHIP_OPP=y +CONFIG_ROCKCHIP_PM_DOMAINS=y +CONFIG_ROCKCHIP_SYSTEM_MONITOR=y +CONFIG_ROCKCHIP_VENDOR_STORAGE=y +CONFIG_FIQ_DEBUGGER=y +CONFIG_FIQ_DEBUGGER_NO_SLEEP=y +CONFIG_FIQ_DEBUGGER_CONSOLE=y +CONFIG_FIQ_DEBUGGER_CONSOLE_DEFAULT_ENABLE=y +CONFIG_RK_CONSOLE_THREAD=y +CONFIG_ROCKCHIP_DEBUG=y +CONFIG_ROCKCHIP_MINI_KERNEL=y +CONFIG_ROCKCHIP_NPOR_POWERGOOD=y +CONFIG_RK_CMA_PROCFS=y +CONFIG_RK_DMABUF_PROCFS=y +CONFIG_RK_MEMBLOCK_PROCFS=y +CONFIG_PM_DEVFREQ=y +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y +CONFIG_DEVFREQ_GOV_USERSPACE=y +CONFIG_EXTCON=y +CONFIG_IIO=y +CONFIG_ROCKCHIP_SARADC=y +CONFIG_INV_ICM42670_SPI=y +CONFIG_PWM=y +CONFIG_PWM_ROCKCHIP=y +CONFIG_PHY_ROCKCHIP_CSI2_DPHY=y +CONFIG_PHY_ROCKCHIP_INNO_USB2=y +CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY=y +CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY=y +CONFIG_NVMEM_ROCKCHIP_OTP=y +CONFIG_ROCKCHIP_RKNPU=y +# CONFIG_ROCKCHIP_RKNPU_DEBUG_FS is not set +CONFIG_ROCKCHIP_RKNPU_PROC_FS=y +CONFIG_ROCKCHIP_RKNPU_DMA_HEAP=y +CONFIG_EXT4_FS=y +CONFIG_EXPORTFS_BLOCK_OPS=y +# CONFIG_DNOTIFY is not set +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +# CONFIG_JFFS2_RTIME is not set +CONFIG_UBIFS_FS=y +CONFIG_UBIFS_FS_ADVANCED_COMPR=y +# CONFIG_UBIFS_FS_ZSTD is not set +CONFIG_SQUASHFS=y +# CONFIG_SQUASHFS_ZLIB is not set +CONFIG_SQUASHFS_XZ=y +CONFIG_SQUASHFS_4K_DEVBLK_SIZE=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +# CONFIG_XZ_DEC_X86 is not set +# CONFIG_XZ_DEC_POWERPC is not set +# CONFIG_XZ_DEC_IA64 is not set +# CONFIG_XZ_DEC_SPARC is not set +CONFIG_DMA_CMA=y +CONFIG_CMA_SIZE_MBYTES=0 +CONFIG_PRINTK_TIME=y +CONFIG_PRINTK_TIME_FROM_ARM_ARCH_TIMER=y +# CONFIG_DEBUG_MISC is not set +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y +CONFIG_DEBUG_FS=y +# CONFIG_SLUB_DEBUG is not set +CONFIG_PANIC_ON_OOPS=y +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y +CONFIG_HARDLOCKUP_DETECTOR=y +CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y +# CONFIG_DETECT_HUNG_TASK is not set +# CONFIG_SCHED_DEBUG is not set +# CONFIG_RCU_TRACE is not set +# CONFIG_FTRACE is not set +# CONFIG_RUNTIME_TESTING_MENU is not set From f9324b0e31d0dbe11cc2faf6d360e838aa8b14c4 Mon Sep 17 00:00:00 2001 From: Tao Huang Date: Tue, 22 Apr 2025 16:21:04 +0800 Subject: [PATCH 10/10] ARM: configs: rv1126b_defconfig: Disable CONFIG_ROCKCHIP_PVTM Change-Id: Id185fa5984937c847a3c9982084d7960b04f3717 Signed-off-by: Tao Huang --- arch/arm/configs/rv1126b-recovery.config | 1 - arch/arm/configs/rv1126b_defconfig | 1 - 2 files changed, 2 deletions(-) diff --git a/arch/arm/configs/rv1126b-recovery.config b/arch/arm/configs/rv1126b-recovery.config index 9358af8e4a43..d6aa7bd6662a 100644 --- a/arch/arm/configs/rv1126b-recovery.config +++ b/arch/arm/configs/rv1126b-recovery.config @@ -17,7 +17,6 @@ CONFIG_NLS_CODEPAGE_936=y # CONFIG_PM_DEVFREQ is not set # CONFIG_PRINTK_TIME is not set # CONFIG_PWM is not set -# CONFIG_ROCKCHIP_PVTM is not set # CONFIG_RTC_CLASS is not set # CONFIG_SOUND is not set CONFIG_SPI=y diff --git a/arch/arm/configs/rv1126b_defconfig b/arch/arm/configs/rv1126b_defconfig index 4042073cd030..a4f3550d90fd 100644 --- a/arch/arm/configs/rv1126b_defconfig +++ b/arch/arm/configs/rv1126b_defconfig @@ -175,7 +175,6 @@ CONFIG_CPU_RV1126B=y CONFIG_ROCKCHIP_AMP=y CONFIG_ROCKCHIP_CPUINFO=y CONFIG_ROCKCHIP_PM_DOMAINS=y -CONFIG_ROCKCHIP_PVTM=y CONFIG_ROCKCHIP_SYSTEM_MONITOR=y CONFIG_FIQ_DEBUGGER=y CONFIG_FIQ_DEBUGGER_NO_SLEEP=y