RE: CONFIG_FB_VIA made the screen go black

From: <hidden>
Date: 2009-07-17 08:06:06
Also in: lkml

 Vegard,

We've patched this issue already. I also checked this patch with 2.6.31-rc2 kernel. It looks fine.
Would you please try this patch? Thanks.

BRs,
Joseph Chan 
========

diff -ruN a/drivers/video/via/hw.c b/drivers/video/via/hw.c
--- a/drivers/video/via/hw.c	2009-06-10 11:05:27.000000000 +0800
+++ b/drivers/video/via/hw.c	2009-07-13 15:41:52.000000000 +0800
@@ -508,7 +508,6 @@
 static void set_lcd_output_path(int set_iga, int output_interface);
 static int search_mode_setting(int ModeInfoIndex);
 static void load_fix_bit_crtc_reg(void);
-static void init_gfx_chip_info(void);
 static void init_tmds_chip_info(void);
 static void init_lvds_chip_info(void);
 static void device_screen_off(void);
@@ -1935,7 +1934,6 @@
 
 void viafb_init_chip_info(void)
 {
-	init_gfx_chip_info();
 	init_tmds_chip_info();
 	init_lvds_chip_info();
 
@@ -2008,7 +2006,7 @@
 	}
 }
 
-static void init_gfx_chip_info(void)
+bool viafb_init_gfx_chip_info(void)
 {
 	struct pci_dev *pdev = NULL;
 	u32 i;
@@ -2023,7 +2021,7 @@
 	}
 
 	if (!pciidlist[i].vendor)
-		return ;
+		return false;
 
 	viaparinfo->chip_info->gfx_chip_name = pciidlist[i].chip_index;
 
@@ -2058,6 +2056,8 @@
 	}
 
 	pci_dev_put(pdev);
+
+	return true;
 }
 
 static void init_tmds_chip_info(void)
diff -ruN a/drivers/video/via/hw.h b/drivers/video/via/hw.h
--- a/drivers/video/via/hw.h	2009-06-10 11:05:27.000000000 +0800
+++ b/drivers/video/via/hw.h	2009-07-13 15:35:29.000000000 +0800
@@ -929,5 +929,6 @@
 void viafb_set_iga_path(void);
 void viafb_set_start_addr(void);
 void viafb_get_fb_info(unsigned int *fb_base, unsigned int *fb_len);
+bool viafb_init_gfx_chip_info(void);
 
 #endif /* __HW_H__ */
diff -ruN a/drivers/video/via/viafbdev.c b/drivers/video/via/viafbdev.c
--- a/drivers/video/via/viafbdev.c	2009-06-10 11:05:27.000000000 +0800
+++ b/drivers/video/via/viafbdev.c	2009-07-13 15:41:31.000000000 +0800
@@ -2142,6 +2142,13 @@
 	viaparinfo->chip_info = (struct chip_information *)
 		((unsigned long)viaparinfo->crt_setting_info + crt_length);
 
+	/* Identify via chip first */
+	if (!viafb_init_gfx_chip_info()) {
+		DEBUG_MSG(KERN_INFO "Not a via graphic chip \n");
+		framebuffer_release(viafbinfo);
+		return false;
+	}
+
 	if (viafb_dual_fb)
 		viafb_SAMM_ON = 1;
 	parse_active_dev();
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help