fix(longan): fix rgb pro & debug uart pro
1. Fix the problem of garbled characters during power-on
2. Add the RGB patch
.. | .. |
---|
37 | 37 | # |
---|
38 | 38 | # debug printk function |
---|
39 | 39 | # |
---|
40 | | -CFG_DEBUGGER_PRINTF=y |
---|
41 | | -CFG_DEBUG_ERR=y |
---|
42 | | -CFG_DEBUG_LOG=y |
---|
43 | | -CFG_DEBUG_WRN=y |
---|
44 | | -# CFG_DEBUG_INF is not set |
---|
| 40 | +# CFG_DEBUGGER_PRINTF is not set |
---|
45 | 41 | |
---|
46 | 42 | # |
---|
47 | 43 | # shell function |
---|
.. | .. |
---|
654 | 654 | } |
---|
655 | 655 | |
---|
656 | 656 | static struct lcd_clk_info clk_tbl[] = { |
---|
657 | | - {LCD_IF_HV, 6, 1, 1, 0}, |
---|
| 657 | + {LCD_IF_HV, 0x10, 1, 1, 0}, |
---|
658 | 658 | {LCD_IF_CPU, 12, 1, 1, 0}, |
---|
659 | 659 | {LCD_IF_LVDS, 7, 1, 1, 0}, |
---|
660 | 660 | #if defined(DSI_VERSION_40) |
---|
.. | .. |
---|
689 | 689 | dsi_div = clk_tbl[i].dsi_div; |
---|
690 | 690 | dsi_rate = clk_tbl[i].dsi_rate; |
---|
691 | 691 | find = 1; |
---|
| 692 | + 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); |
---|
692 | 693 | break; |
---|
693 | 694 | } |
---|
694 | 695 | } |
---|
.. | .. |
---|
558 | 558 | memset(&clk_info, 0, sizeof(struct lcd_clk_info)); |
---|
559 | 559 | disp_al_lcd_get_clk_info(lcd->hwdev_index, &clk_info, |
---|
560 | 560 | &lcdp->panel_info); |
---|
561 | | - |
---|
| 561 | + printk("kickpi %s:%d \n", __func__, __LINE__); |
---|
562 | 562 | if (!lcdp->clk || !(&lcdp->panel_info)) { |
---|
563 | 563 | DE_WRN("NULL clk or panel_info!\n"); |
---|
564 | 564 | goto OUT; |
---|
.. | .. |
---|
613 | 613 | clk_info.tcon_div = lcdp->panel_info.lcd_tcon_div; |
---|
614 | 614 | disp_al_lcd_get_clk_info(lcd->hwdev_index, &clk_info, |
---|
615 | 615 | &lcdp->panel_info); |
---|
| 616 | + printk("kickpi %s:%d \n", __func__, __LINE__); |
---|
616 | 617 | dclk_rate = lcdp->panel_info.lcd_dclk_freq * 1000000; /* Mhz -> hz */ |
---|
617 | 618 | if (lcdp->panel_info.lcd_if == LCD_IF_DSI) { |
---|
618 | 619 | lcd_rate = dclk_rate * clk_info.dsi_div; |
---|
.. | .. |
---|
641 | 642 | else |
---|
642 | 643 | lcd_rate_set = pll_rate_set; |
---|
643 | 644 | |
---|
| 645 | + msleep(100); |
---|
644 | 646 | clk_set_rate(lcdp->clk, lcd_rate_set); |
---|
645 | 647 | lcd_rate_set = clk_get_rate(lcdp->clk); |
---|
646 | 648 | if (lcdp->panel_info.lcd_if == LCD_IF_DSI) { |
---|
.. | .. |
---|
96 | 96 | para->lcd_dclk_freq = dclk_rate; |
---|
97 | 97 | para->ccir_clk_div = vdevicep->intf.ccir_clk_div; |
---|
98 | 98 | disp_al_lcd_get_clk_info(vdevice->disp, &clk_info, para); |
---|
| 99 | + printk("kickpi %s:%d \n", __func__, __LINE__); |
---|
99 | 100 | kfree((void *)para); |
---|
100 | 101 | |
---|
101 | 102 | lcd_rate = dclk_rate * clk_info.tcon_div; |
---|
.. | .. |
---|
694 | 694 | }; |
---|
695 | 695 | #else |
---|
696 | 696 | static struct lcd_clk_info clk_tbl[] = { |
---|
697 | | - {LCD_IF_HV, 6, 1, 1, 0}, |
---|
| 697 | + {LCD_IF_HV, 0x10, 1, 1, 0}, |
---|
698 | 698 | {LCD_IF_CPU, 12, 1, 1, 0}, |
---|
699 | 699 | {LCD_IF_LVDS, 7, 1, 1, 0}, |
---|
700 | 700 | #if defined(DSI_VERSION_40) |
---|
.. | .. |
---|
732 | 732 | dsi_div = clk_tbl[i].dsi_div; |
---|
733 | 733 | dsi_rate = clk_tbl[i].dsi_rate; |
---|
734 | 734 | find = 1; |
---|
| 735 | + 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); |
---|
735 | 736 | break; |
---|
736 | 737 | } |
---|
737 | 738 | } |
---|
.. | .. |
---|
827 | 828 | |
---|
828 | 829 | tcon_init(screen_id); |
---|
829 | 830 | disp_al_lcd_get_clk_info(screen_id, &info, panel); |
---|
| 831 | + printk("kickpi %s:%d \n", __func__, __LINE__); |
---|
830 | 832 | tcon0_set_dclk_div(screen_id, info.tcon_div); |
---|
831 | 833 | |
---|
832 | 834 | #if !defined(TCON1_DRIVE_PANEL) |
---|
.. | .. |
---|
1304 | 1306 | info.lcd_hv_srgb_seq = para->sequence; |
---|
1305 | 1307 | tcon_init(screen_id); |
---|
1306 | 1308 | disp_al_lcd_get_clk_info(screen_id, &clk_info, &info); |
---|
| 1309 | + printk("kickpi %s:%d \n", __func__, __LINE__); |
---|
1307 | 1310 | tcon0_set_dclk_div(screen_id, clk_info.tcon_div); |
---|
1308 | 1311 | |
---|
1309 | 1312 | if (para->sub_intf == LCD_HV_IF_CCIR656_2CYC) |
---|
.. | .. |
---|
1602 | 1605 | |
---|
1603 | 1606 | tcon_init(screen_id); |
---|
1604 | 1607 | disp_al_lcd_get_clk_info(screen_id, &clk_info, &panel); |
---|
| 1608 | + printk("kickpi %s:%d \n", __func__, __LINE__); |
---|
1605 | 1609 | tcon0_set_dclk_div(screen_id, clk_info.tcon_div); |
---|
1606 | 1610 | if (tcon0_cfg(screen_id, &panel) != 0) |
---|
1607 | 1611 | DE_WRN("lcd cfg fail!\n"); |
---|