lkml.org 
[lkml]   [2009]   [Jul]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRE: CONFIG_FB_VIA made the screen go black
Date
From
 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();
\
 
 \ /
  Last update: 2009-07-17 10:09    [W:0.023 / U:0.820 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site