lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <C80EF34A3D2E494DBAF9AC29C7AE4EB8099666A3@exchtp03.taipei.via.com.tw>
Date:	Fri, 17 Jul 2009 16:05:49 +0800
From:	<JosephChan@....com.tw>
To:	<vegard.nossum@...il.com>
Cc:	<linux-kernel@...r.kernel.org>, <HaraldWelte@...tech.com>,
	<linux-fbdev-devel@...ts.sourceforge.net>
Subject: RE: CONFIG_FB_VIA made the screen go black

 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();

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ