Failed to switch screen between framebuffer console and desktop

Hi All,
I found an issue that TK1 cannot switch desktop to fb console properly.
A similar issue to this post . But we use a 1080p monitor for testing.

This issue occurs if the framebuffer console and desktop have different resolutions.
For example. If the resolution of framebuffer console is 1080p while the desktop is 720p, the screen will be blanked after I switch to framebuffer console.

After I add codes below, it can switch to framebuffer console. But when I switched back to desktop, the screen became
black and only can see the cursor on the screen.

diff --git a/kernel/drivers/video/console/fbcon.c b/kernel/drivers/video/console/fbcon.c
index a92783e48..c01a85761 100644
--- a/kernel/drivers/video/console/fbcon.c
+++ b/kernel/drivers/video/console/fbcon.c
@@ -2360,6 +2360,7 @@ static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch)
 		ops->graphics = 1;
 
 		if (!blank) {
+			fb_blank(info, FB_BLANK_POWERDOWN);
 			var.activate = FB_ACTIVATE_NOW | FB_ACTIVATE_FORCE;
 			fb_set_var(info, &var);
 			ops->graphics = 0;

I run command below and find the dc keeps on triggering underflow irq.

$ cat /sys/kernel/debug/tegradc.1/stats 
underflows: 15890
underflows_a: 1
underflows_b: 0
underflows_c: 0
underflows_d: 0
underflows_h: 0
underflows_t: 0

How to fix this issue !?
Any comments or suggestions would be appreciated. Thanks.

Hi,
Not sure if it helps but you may try to blank and unblank display:

# echo 4 > /sys/class/graphics/fb0/blank
# echo 0 > /sys/class/graphics/fb0/blank

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.