1. uboot:

video=mxcfb0:dev=hdmi,1920x1080M@60 设置到bootargs中

2. kernel:

2.1 

kernkel/fs/proc/proc_misc.c中: proc_misc_init()  -> cmdline_read_proc() 读出/proc/cmdline的值
2.2
drivers/video/fbmem.c
__setup("video=", video_setup);
static int __init video_setup(char *options) //把video的参数保存到options中
2.3
drivers/video/mxc/mxc_ipuv3_fb.c
static int mxcfb_option_setup(struct platform_device *pdev, struct fb_info *fbi) 解析字符串“ideo=mxcfb0:dev=hdmi,1920x1080M@60 ”把 
1920x1080M保存到pdata->mode_str
如果在uboot中没用设置到vidoe=参数
arch/arm/mach-mx6/board-mx6_xxx.c中有默认设置
static struct ipuv3_fb_platform_data board_fb_data[] = {
    { /*fb0*/
 	.disp_dev = "hdmi",
 	.interface_pix_fmt = IPU_PIX_FMT_RGB24,
 	.mode_str = "1920x1080M@60",
 	.default_bpp = 32,
 	.int_clk = false,
 	.late_init = false,
 	}
}
 static void __init fixup_mxc_board(struct machine_desc *desc, struct tag *tags,
 		char **cmdline, struct meminfo *mi)
 	{
 		char *str;
 		struct tag *t;
 		int i = 0;
 		struct ipuv3_fb_platform_data *pdata_fb = board_fb_data;
 	 
}

Logo

更多推荐