1.修复回放界面有红条的问题

This commit is contained in:
payton 2024-01-03 14:37:48 +08:00
parent 29db87bf99
commit f8ef234da9
6 changed files with 169 additions and 23 deletions

View File

@ -259,16 +259,30 @@ UINT32 pll_get_pll_freq(PLL_ID id)
*/ */
UINT32 pll_get_clock_rate(PLL_CLKSEL clk_sel) UINT32 pll_get_clock_rate(PLL_CLKSEL clk_sel)
{ {
UINT32 ui_mask, ui_reg_offset; UINT32 ui_mask, ui_reg_offset;
REGVALUE reg_data; REGVALUE reg_data;
ui_reg_offset = 0x20; // ui_reg_offset = 0x20;
ui_mask = (0x7<<PLL_CLKSEL_IDE_CLKSRC_OFS); // ui_mask = (0x7<<PLL_CLKSEL_IDE_CLKSRC_OFS);
if (clk_sel == PLL_CLKSEL_IDE_CLKSRC) {
ui_reg_offset = 0x20;
ui_mask = (0x7<<PLL_CLKSEL_IDE_CLKSRC_OFS);
} else if (clk_sel == PLL_CLKSEL_IDE_CLKDIV) {
ui_reg_offset = 0x34;
ui_mask = (0xFF);
} else if (clk_sel == PLL_CLKSEL_IDE_OUTIF_CLKDIV) {
ui_reg_offset = 0x34;
ui_mask = (0xFF << 8);
} else {
DBG_WRN("pll_get_clock_rate fail, return 0\r\n");
return 0;
}
reg_data = INREG32(IOADDR_CG_REG_BASE + ui_reg_offset);
reg_data &= ui_mask;
return (UINT32)reg_data; reg_data = INREG32(IOADDR_CG_REG_BASE + ui_reg_offset);
reg_data &= ui_mask;
return (UINT32)reg_data;
} }
void pll_set_clock_rate(PLL_CLKSEL clk_sel, UINT32 ui_value) void pll_set_clock_rate(PLL_CLKSEL clk_sel, UINT32 ui_value)

View File

@ -224,7 +224,9 @@ const T_PANEL_CMD t_cmd_mode_rgb320[] = {
const T_LCD_PARAM t_mode[] = { const T_LCD_PARAM t_mode[] = {
/*********** RGB Serial MODE *************/ /*********** RGB Serial MODE *************/
{ {
// T_PANEL_PARAM // T_PANEL_PARAM
#if 0
{ {
/* Old prototype */ /* Old prototype */
PINMUX_LCDMODE_RGB_SERIAL, //!< LCDMode PINMUX_LCDMODE_RGB_SERIAL, //!< LCDMode
@ -264,6 +266,48 @@ const T_LCD_PARAM t_mode[] = {
0x0A, //!< uiHSyncSYNCwidth 0x0A, //!< uiHSyncSYNCwidth
0x04, //!< uiVSyncSYNCwidth 0x04, //!< uiVSyncSYNCwidth
}, },
#else
{
/* Old prototype */
PINMUX_LCDMODE_RGB_THROUGH, //!< LCDMode
// 18000000 / 3 , //24.0f, //!< fDCLK
5000000,
#if 1
1024 / 3,//PANELWIDTH + 69*2, //!< uiHSyncTotalPeriod
720 / 3,//PANELWIDTH, //!< uiHSyncActivePeriod
69 / 3, //!< uiHSyncBackPorch
384,//PANELHEIGHT + 40, //!< uiVSyncTotalPeriod
344, //!< uiVSyncActivePeriod
2, //!< uiVSyncBackPorchOdd
2, //!< uiVSyncBackPorchEven
720 / 3,//320,//PANELWIDTH, //!< uiBufferWidth
320,//720,//PANELHEIGHT, //!< uiBufferHeight
720 / 3,//320,//PANELWIDTH, //!< uiWindowWidth
320,//720,//PANELHEIGHT, //!< uiWindowHeight
#endif
#if 0
PANELWIDTH + 200, //!< uiHSyncTotalPeriod
PANELWIDTH, //!< uiHSyncActivePeriod
10, //!< uiHSyncBackPorch
PANELHEIGHT + 140, //!< uiVSyncTotalPeriod
PANELHEIGHT, //!< uiVSyncActivePeriod
4, //!< uiVSyncBackPorchOdd
4, //!< uiVSyncBackPorchEven
PANELWIDTH, //!< uiBufferWidth
PANELHEIGHT, //!< uiBufferHeight
PANELWIDTH, //!< uiWindowWidth
PANELHEIGHT, //!< uiWindowHeight
#endif
FALSE, //!< bYCbCrFormat
/* New added parameters */
0x0A, //!< uiHSyncSYNCwidth
0x04, //!< uiVSyncSYNCwidth
},
#endif
// tIDE_PARAM // tIDE_PARAM
{ {
@ -273,8 +317,8 @@ const T_LCD_PARAM t_mode[] = {
{FALSE,FALSE}, //!< dithering[2]; {FALSE,FALSE}, //!< dithering[2];
DISPLAY_DEVICE_TOPPOLY, //!< **DONT-CARE** DISPLAY_DEVICE_TOPPOLY, //!< **DONT-CARE**
IDE_PDIR_RBG, //!< pdir; IDE_PDIR_RBG, //!< pdir;
IDE_LCD_G, //!< odd; IDE_LCD_B, //!< odd;
IDE_LCD_G, //!< even; IDE_LCD_B, //!< even;
TRUE, //!< hsinv; TRUE, //!< hsinv;
TRUE, //!< vsinv; TRUE, //!< vsinv;
FALSE, //!< hvldinv; FALSE, //!< hvldinv;

View File

@ -237,7 +237,9 @@ const T_PANEL_CMD t_cmd_mode_rgb320[] = {
const T_LCD_PARAM t_mode[] = { const T_LCD_PARAM t_mode[] = {
/*********** RGB Serial MODE *************/ /*********** RGB Serial MODE *************/
{ {
// T_PANEL_PARAM // T_PANEL_PARAM
#if 0
{ {
/* Old prototype */ /* Old prototype */
PINMUX_LCDMODE_RGB_SERIAL, //!< LCDMode PINMUX_LCDMODE_RGB_SERIAL, //!< LCDMode
@ -277,6 +279,48 @@ const T_LCD_PARAM t_mode[] = {
0x0A, //!< uiHSyncSYNCwidth 0x0A, //!< uiHSyncSYNCwidth
0x04, //!< uiVSyncSYNCwidth 0x04, //!< uiVSyncSYNCwidth
}, },
#else
{
/* Old prototype */
PINMUX_LCDMODE_RGB_THROUGH, //!< LCDMode
// 18000000 / 3 , //24.0f, //!< fDCLK
5000000,
#if 1
1024 / 3,//PANELWIDTH + 69*2, //!< uiHSyncTotalPeriod
720 / 3,//PANELWIDTH, //!< uiHSyncActivePeriod
69 / 3, //!< uiHSyncBackPorch
384,//PANELHEIGHT + 40, //!< uiVSyncTotalPeriod
344, //!< uiVSyncActivePeriod
2, //!< uiVSyncBackPorchOdd
2, //!< uiVSyncBackPorchEven
720 / 3,//320,//PANELWIDTH, //!< uiBufferWidth
320,//720,//PANELHEIGHT, //!< uiBufferHeight
720 / 3,//320,//PANELWIDTH, //!< uiWindowWidth
320,//720,//PANELHEIGHT, //!< uiWindowHeight
#endif
#if 0
PANELWIDTH + 200, //!< uiHSyncTotalPeriod
PANELWIDTH, //!< uiHSyncActivePeriod
10, //!< uiHSyncBackPorch
PANELHEIGHT + 140, //!< uiVSyncTotalPeriod
PANELHEIGHT, //!< uiVSyncActivePeriod
4, //!< uiVSyncBackPorchOdd
4, //!< uiVSyncBackPorchEven
PANELWIDTH, //!< uiBufferWidth
PANELHEIGHT, //!< uiBufferHeight
PANELWIDTH, //!< uiWindowWidth
PANELHEIGHT, //!< uiWindowHeight
#endif
FALSE, //!< bYCbCrFormat
/* New added parameters */
0x0A, //!< uiHSyncSYNCwidth
0x04, //!< uiVSyncSYNCwidth
},
#endif
// tIDE_PARAM // tIDE_PARAM
{ {
@ -286,8 +330,8 @@ const T_LCD_PARAM t_mode[] = {
{FALSE,FALSE}, //!< dithering[2]; {FALSE,FALSE}, //!< dithering[2];
DISPLAY_DEVICE_TOPPOLY, //!< **DONT-CARE** DISPLAY_DEVICE_TOPPOLY, //!< **DONT-CARE**
IDE_PDIR_RBG, //!< pdir; IDE_PDIR_RBG, //!< pdir;
IDE_LCD_G, //!< odd; IDE_LCD_B, //!< odd;
IDE_LCD_G, //!< even; IDE_LCD_B, //!< even;
TRUE, //!< hsinv; TRUE, //!< hsinv;
TRUE, //!< vsinv; TRUE, //!< vsinv;
FALSE, //!< hvldinv; FALSE, //!< hvldinv;

View File

@ -17,7 +17,7 @@
pwm2{pinmux = <0x0000000>;}; pwm2{pinmux = <0x0000000>;};
ccnt{pinmux = <0x0>;}; ccnt{pinmux = <0x0>;};
audio{pinmux = <0x0>;}; audio{pinmux = <0x0>;};
lcd{pinmux = <0x10000000>;}; lcd{pinmux = <0x10000006>;};/* rgb through */
tv{pinmux = <0x0>;}; tv{pinmux = <0x0>;};
eth{pinmux = <0x0>;}; eth{pinmux = <0x0>;};
misc{pinmux = <0x0>;}; misc{pinmux = <0x0>;};

View File

@ -405,20 +405,20 @@ static THREAD_RETTYPE thread_videoout(void *ptr)
pxlfmt) != HD_OK){ pxlfmt) != HD_OK){
goto exit; goto exit;
} }
HD_URECT rect = (HD_URECT){0, 0, 720, 320}; // HD_URECT rect = (HD_URECT){0, 0, 720, 320};
//HD_URECT rect = (HD_URECT){0, 0, videoout_syscaps.output_dim.w, videoout_syscaps.output_dim.h}; HD_URECT rect = (HD_URECT){0, 0, videoout_syscaps.output_dim.w, videoout_syscaps.output_dim.h};
if(flow_boot_logo_videoout_set_param_in_win(path_id, rect) != HD_OK){ if(flow_boot_logo_videoout_set_param_in_win(path_id, rect) != HD_OK){
goto exit; goto exit;
} }
hd_videoout_start(path_id); hd_videoout_start(path_id);
exit: exit:
vos_flag_set(task_param->flag, FLAG_VIDEOOUT_TASK_EXIT); vos_flag_set(task_param->flag, FLAG_VIDEOOUT_TASK_EXIT);
LINUX_BOOT_MSG("%s exit\n", __func__); LINUX_BOOT_MSG("%s exit\n", __func__);
THREAD_RETURN(0); THREAD_RETURN(0);
} }
static THREAD_RETTYPE thread_videodec(void *ptr) static THREAD_RETTYPE thread_videodec(void *ptr)

View File

@ -237,7 +237,9 @@ const T_PANEL_CMD t_cmd_mode_rgb320[] = {
const T_LCD_PARAM t_mode[] = { const T_LCD_PARAM t_mode[] = {
/*********** RGB Serial MODE *************/ /*********** RGB Serial MODE *************/
{ {
// T_PANEL_PARAM // T_PANEL_PARAM
#if 0
{ {
/* Old prototype */ /* Old prototype */
PINMUX_LCDMODE_RGB_SERIAL, //!< LCDMode PINMUX_LCDMODE_RGB_SERIAL, //!< LCDMode
@ -277,6 +279,48 @@ const T_LCD_PARAM t_mode[] = {
0x0A, //!< uiHSyncSYNCwidth 0x0A, //!< uiHSyncSYNCwidth
0x04, //!< uiVSyncSYNCwidth 0x04, //!< uiVSyncSYNCwidth
}, },
#else
{
/* Old prototype */
PINMUX_LCDMODE_RGB_THROUGH, //!< LCDMode
// 18000000 / 3 , //24.0f, //!< fDCLK
5000000,
#if 1
1024 / 3,//PANELWIDTH + 69*2, //!< uiHSyncTotalPeriod
720 / 3,//PANELWIDTH, //!< uiHSyncActivePeriod
69 / 3, //!< uiHSyncBackPorch
384,//PANELHEIGHT + 40, //!< uiVSyncTotalPeriod
344, //!< uiVSyncActivePeriod
2, //!< uiVSyncBackPorchOdd
2, //!< uiVSyncBackPorchEven
720 / 3,//320,//PANELWIDTH, //!< uiBufferWidth
320,//720,//PANELHEIGHT, //!< uiBufferHeight
720 / 3,//320,//PANELWIDTH, //!< uiWindowWidth
320,//720,//PANELHEIGHT, //!< uiWindowHeight
#endif
#if 0
PANELWIDTH + 200, //!< uiHSyncTotalPeriod
PANELWIDTH, //!< uiHSyncActivePeriod
10, //!< uiHSyncBackPorch
PANELHEIGHT + 140, //!< uiVSyncTotalPeriod
PANELHEIGHT, //!< uiVSyncActivePeriod
4, //!< uiVSyncBackPorchOdd
4, //!< uiVSyncBackPorchEven
PANELWIDTH, //!< uiBufferWidth
PANELHEIGHT, //!< uiBufferHeight
PANELWIDTH, //!< uiWindowWidth
PANELHEIGHT, //!< uiWindowHeight
#endif
FALSE, //!< bYCbCrFormat
/* New added parameters */
0x0A, //!< uiHSyncSYNCwidth
0x04, //!< uiVSyncSYNCwidth
},
#endif
// tIDE_PARAM // tIDE_PARAM
{ {
@ -286,8 +330,8 @@ const T_LCD_PARAM t_mode[] = {
{FALSE,FALSE}, //!< dithering[2]; {FALSE,FALSE}, //!< dithering[2];
DISPLAY_DEVICE_TOPPOLY, //!< **DONT-CARE** DISPLAY_DEVICE_TOPPOLY, //!< **DONT-CARE**
IDE_PDIR_RBG, //!< pdir; IDE_PDIR_RBG, //!< pdir;
IDE_LCD_G, //!< odd; IDE_LCD_B, //!< odd;
IDE_LCD_G, //!< even; IDE_LCD_B, //!< even;
TRUE, //!< hsinv; TRUE, //!< hsinv;
TRUE, //!< vsinv; TRUE, //!< vsinv;
FALSE, //!< hvldinv; FALSE, //!< hvldinv;