不太熟悉,fimd 的5个window,应该对应5个/dev/videoX吧
看了代码 貌似是
video0对应window 2,
video1对应window 3,
video2对应window 4,
video3对应window 0,
video4对应window 1
而window的上下次序是window 4 在最上,window 0 在最下
qt用的应该是video0,也就是window 2
视频用video1的话就是window 3, 在window 2 上面了
不过我觉得这个好像无所谓,只要在上面的那个window把下面那个window需要显示的部分区域设为透明就行了吧
CONFIG_FB_S3C_DEFAULT_WINDOW=2
static struct s3c_platform_fb mini210_fb_data __initdata = {
.hw_ver = 0x62,
.clk_name = "sclk_fimd",
.nr_wins = 5,
.default_win = CONFIG_FB_S3C_DEFAULT_WINDOW,
.swap = FB_SWAP_WORD | FB_SWAP_HWORD,
.cfg_gpio = lcd_cfg_gpio,
.backlight_on = lcd_backlight_on,
.backlight_onoff= lcd_backlight_off,
.reset_lcd = lcd_reset_lcd,
};
static int s3cfb_register_framebuffer(struct s3cfb_global *ctrl)
{
struct s3c_platform_fb *pdata = to_fb_plat(ctrl->dev);
int ret, i, j;
for (i = pdata->default_win;
i < pdata->nr_wins + pdata->default_win; i++) {
j = i % pdata->nr_wins;
ret = register_framebuffer(ctrl->fb[j]);
if (ret) {
dev_err(ctrl->dev, "failed to register "
"framebuffer device\n");
ret = -EINVAL;
goto err_register_fb;
}
#ifndef CONFIG_FRAMEBUFFER_CONSOLE
if (j == pdata->default_win) {
s3cfb_check_var(&ctrl->fb[j]->var, ctrl->fb[j]);
s3cfb_set_par(ctrl->fb[j]);
s3cfb_draw_logo(ctrl->fb[j]);
}
#endif
}
return 0;
err_register_fb:
while (--i >= pdata->default_win) {
j = i % pdata->nr_wins;
unregister_framebuffer(ctrl->fb[j]);
}
return ret;
}