MSM7X平臺LCD_PCLK的設置 – Android移動開發技術文章_手機開發 Android移動開發教學課程

原始代碼中Pclk設置為8M但對於320*480的lcd需要提高到10M左右。
於是直接修改bootloader和kernel中的兩處
lcdc_clock_init(8000000);
pinfo->clk_rate = 8000000;


下載後開機失敗,打印log顯示:
Can't set MDP LCDC pixel clock to rate 10000000


ret = clk_set_rate(pixel_mdp_clk, mfd->fbi->var.pixclock);
if (ret) {
pr_err("%s: Can't set MDP LCDC pixel clock to rate %u\n",
__func__, mfd->fbi->var.pixclock);
goto out;
}


查找pixel_mdp_clk後顯示
pixel_mdp_clk = clk_get(NULL, "mdp_lcdc_pclk_clk");
CLK_PCOM("mdp_lcdc_pclk_clk", MDP_LCDC_PCLK_CLK, NULL, 0),
查到此處後發現clk是通過RPC共享內存的方式來調用ARM9端的設置。


再arm9段查找 MDP_LCDC_PCLK_CLK 可得到是使用此 clk_regime_sel_mdp_lcdc_clk()函數來設置pclk
一路查找(這代碼找得真鬱悶)
boolean clk_regime_bsp_init (void) //pclk的賦值
  clkrgm_bsp = &clkrgm_bsp_data; //值傳遞
clk_regime_bsp_load_mdp_lcdc_cfgs //傳遞數組的值


最後找到clkrgm_bsp_7627.c文件的
clkrgm_bsp_msm_clk_cfg_type clkrgm_bsp_msm_cfg_mdp_lcdc[]
{
//在此函數中添加你想要的pclk即可,尼嗎的,這代碼找得真蛋痛!
}

作者“qq413187589的專欄”

發佈留言