From c26084b3642f262f858535ab4e46c1e9b520d3a1 Mon Sep 17 00:00:00 2001 From: huangcm <1263938474@qq.com> Date: Thu, 03 Jul 2025 07:51:19 +0000 Subject: [PATCH] fix(longan): fix rgb pro & debug uart pro --- longan/brandy/arisc/ar100s/.config.old | 6 +----- longan/brandy/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/de/lowlevel_v2x/disp_al.c | 3 ++- longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/disp_lcd.c | 4 +++- longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/disp_vdevice.c | 1 + longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/disp_al.c | 6 +++++- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/longan/brandy/arisc/ar100s/.config.old b/longan/brandy/arisc/ar100s/.config.old index f28e527..6819289 100644 --- a/longan/brandy/arisc/ar100s/.config.old +++ b/longan/brandy/arisc/ar100s/.config.old @@ -37,11 +37,7 @@ # # debug printk function # -CFG_DEBUGGER_PRINTF=y -CFG_DEBUG_ERR=y -CFG_DEBUG_LOG=y -CFG_DEBUG_WRN=y -# CFG_DEBUG_INF is not set +# CFG_DEBUGGER_PRINTF is not set # # shell function diff --git a/longan/brandy/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/de/lowlevel_v2x/disp_al.c b/longan/brandy/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/de/lowlevel_v2x/disp_al.c index 339613a..8b22e90 100644 --- a/longan/brandy/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/de/lowlevel_v2x/disp_al.c +++ b/longan/brandy/brandy-2.0/u-boot-2018/drivers/video/sunxi/disp2/disp/de/lowlevel_v2x/disp_al.c @@ -654,7 +654,7 @@ } static struct lcd_clk_info clk_tbl[] = { - {LCD_IF_HV, 6, 1, 1, 0}, + {LCD_IF_HV, 0x10, 1, 1, 0}, {LCD_IF_CPU, 12, 1, 1, 0}, {LCD_IF_LVDS, 7, 1, 1, 0}, #if defined(DSI_VERSION_40) @@ -689,6 +689,7 @@ dsi_div = clk_tbl[i].dsi_div; dsi_rate = clk_tbl[i].dsi_rate; find = 1; + printf("kickpi v2x find %d tcon_div = %d lcd_div = %d dsi_div = %d dsi_rate %d \n", i, tcon_div, lcd_div, dsi_div, dsi_rate); break; } } diff --git a/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/disp_lcd.c b/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/disp_lcd.c index fcf5e6b..37fbc48 100644 --- a/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/disp_lcd.c +++ b/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/disp_lcd.c @@ -558,7 +558,7 @@ memset(&clk_info, 0, sizeof(struct lcd_clk_info)); disp_al_lcd_get_clk_info(lcd->hwdev_index, &clk_info, &lcdp->panel_info); - + printk("kickpi %s:%d \n", __func__, __LINE__); if (!lcdp->clk || !(&lcdp->panel_info)) { DE_WRN("NULL clk or panel_info!\n"); goto OUT; @@ -613,6 +613,7 @@ clk_info.tcon_div = lcdp->panel_info.lcd_tcon_div; disp_al_lcd_get_clk_info(lcd->hwdev_index, &clk_info, &lcdp->panel_info); + printk("kickpi %s:%d \n", __func__, __LINE__); dclk_rate = lcdp->panel_info.lcd_dclk_freq * 1000000; /* Mhz -> hz */ if (lcdp->panel_info.lcd_if == LCD_IF_DSI) { lcd_rate = dclk_rate * clk_info.dsi_div; @@ -641,6 +642,7 @@ else lcd_rate_set = pll_rate_set; + msleep(100); clk_set_rate(lcdp->clk, lcd_rate_set); lcd_rate_set = clk_get_rate(lcdp->clk); if (lcdp->panel_info.lcd_if == LCD_IF_DSI) { diff --git a/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/disp_vdevice.c b/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/disp_vdevice.c index 97ec459..13812db 100644 --- a/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/disp_vdevice.c +++ b/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/disp_vdevice.c @@ -96,6 +96,7 @@ para->lcd_dclk_freq = dclk_rate; para->ccir_clk_div = vdevicep->intf.ccir_clk_div; disp_al_lcd_get_clk_info(vdevice->disp, &clk_info, para); + printk("kickpi %s:%d \n", __func__, __LINE__); kfree((void *)para); lcd_rate = dclk_rate * clk_info.tcon_div; diff --git a/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/disp_al.c b/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/disp_al.c index e86d20f..af1da4f 100644 --- a/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/disp_al.c +++ b/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/disp_al.c @@ -694,7 +694,7 @@ }; #else static struct lcd_clk_info clk_tbl[] = { - {LCD_IF_HV, 6, 1, 1, 0}, + {LCD_IF_HV, 0x10, 1, 1, 0}, {LCD_IF_CPU, 12, 1, 1, 0}, {LCD_IF_LVDS, 7, 1, 1, 0}, #if defined(DSI_VERSION_40) @@ -732,6 +732,7 @@ dsi_div = clk_tbl[i].dsi_div; dsi_rate = clk_tbl[i].dsi_rate; find = 1; + printk("kickpi v2x find %d tcon_div = %d lcd_div = %d dsi_div = %d dsi_rate %d \n", i, tcon_div, lcd_div, dsi_div, dsi_rate); break; } } @@ -827,6 +828,7 @@ tcon_init(screen_id); disp_al_lcd_get_clk_info(screen_id, &info, panel); + printk("kickpi %s:%d \n", __func__, __LINE__); tcon0_set_dclk_div(screen_id, info.tcon_div); #if !defined(TCON1_DRIVE_PANEL) @@ -1304,6 +1306,7 @@ info.lcd_hv_srgb_seq = para->sequence; tcon_init(screen_id); disp_al_lcd_get_clk_info(screen_id, &clk_info, &info); + printk("kickpi %s:%d \n", __func__, __LINE__); tcon0_set_dclk_div(screen_id, clk_info.tcon_div); if (para->sub_intf == LCD_HV_IF_CCIR656_2CYC) @@ -1602,6 +1605,7 @@ tcon_init(screen_id); disp_al_lcd_get_clk_info(screen_id, &clk_info, &panel); + printk("kickpi %s:%d \n", __func__, __LINE__); tcon0_set_dclk_div(screen_id, clk_info.tcon_div); if (tcon0_cfg(screen_id, &panel) != 0) DE_WRN("lcd cfg fail!\n"); -- Gitblit v1.6.2