diff --git a/drivers/staging/xgifb/XGI_main.h b/drivers/staging/xgifb/XGI_main.h index 467df83860ad2a5a13afcb42c0cc24043197e422..dacef51e9ff56211c5d10d32467f1d8c1f31c80c 100644 --- a/drivers/staging/xgifb/XGI_main.h +++ b/drivers/staging/xgifb/XGI_main.h @@ -125,9 +125,6 @@ MODULE_DEVICE_TABLE(pci, xgifb_pci_table); /* ------------------- Global Variables ----------------------------- */ -/* Fbcon variables */ -static struct fb_info *fb_info; - static struct fb_var_screeninfo default_var = { .xres = 0, .yres = 0, diff --git a/drivers/staging/xgifb/XGI_main_26.c b/drivers/staging/xgifb/XGI_main_26.c index 6957b65c11dfecef32789517b6508248ddecb95c..f7c0afe7fc789b2cb024d71397da5e5da81c5b57 100644 --- a/drivers/staging/xgifb/XGI_main_26.c +++ b/drivers/staging/xgifb/XGI_main_26.c @@ -1986,12 +1986,14 @@ static int __devinit xgifb_probe(struct pci_dev *pdev, u8 CR48, CR38; int ret; bool xgi21_drvlcdcaplist = false; + struct fb_info *fb_info; memset(&XGIhw_ext, 0, sizeof(struct xgi_hw_device_info)); fb_info = framebuffer_alloc(sizeof(struct fb_info), &pdev->dev); if (!fb_info) return -ENOMEM; + xgi_video_info.fb_info = fb_info; xgi_video_info.chip_id = pdev->device; pci_read_config_byte(pdev, PCI_REVISION_ID, @@ -2447,6 +2449,7 @@ static int __devinit xgifb_probe(struct pci_dev *pdev, static void __devexit xgifb_remove(struct pci_dev *pdev) { struct video_info *xgifb_info = pci_get_drvdata(pdev); + struct fb_info *fb_info = xgifb_info->fb_info; unregister_framebuffer(fb_info); #ifdef CONFIG_MTRR diff --git a/drivers/staging/xgifb/XGIfb.h b/drivers/staging/xgifb/XGIfb.h index f778293b553e6d7d697c627e4fb06a9048e1c6dd..83a191173081a2b2900f6b2ba75d1cc861f30e79 100644 --- a/drivers/staging/xgifb/XGIfb.h +++ b/drivers/staging/xgifb/XGIfb.h @@ -53,6 +53,8 @@ enum xgi_tv_plug { /* vicki@030226 */ }; struct video_info { + struct fb_info *fb_info; + int chip_id; unsigned int video_size; unsigned long video_base;