认认真真发一次,framebuffer 切换问题!!Android平台
Android平台,需要实现从LCD输出与DVI输出之间的切换,
在/dev/graphics下有三个fb,分别是fb0,fb1,fb2。
当我使用LCD作为默认输出时,我发现fb0是处理LCD输出的,fb1是用作DVI输出的。
当使用DVI作为默认输出时,fb0是DVI,fb1是LCD。
我可以通过 echo 0 > /sys/class/graphics/fb*使fb0,fb1都打开,Vsync信号和HSync信号都是正确的,clock信号也正确,但是只有一个地方会出现data信号,就是fb0。
那么,我怎么才可以实现data信号从fb0输出转到fb1的输出?
附上我的过程。
1. 使用framebuffer driver中带有的 swap_chan函数,我可以看到log out中,两个buffer的channel都是交换了,但是blank之后仍然只有fb0有数据,并没有改变什么。
2. 我使用fbcon.c中的一个函数。
在fbcon.c中有如下函数:
/** * set_con2fb_map - map console to frame buffer device * @unit: virtual console number to map * @newidx: frame buffer index to map virtual console to * @user: user request * * Maps a virtual console @unit to a frame buffer device * @newidx. */static int set_con2fb_map(int unit, int newidx, int user)