summaryrefslogtreecommitdiffstats
path: root/drivers/staging/xgifb
diff options
context:
space:
mode:
authorAaro Koskinen2011-10-11 20:47:20 +0200
committerGreg Kroah-Hartman2011-10-12 17:51:45 +0200
commitfcbdda90ef9bedd521c56f0c7529013f03c139e0 (patch)
tree2caa69c947631b89478fbfae15e384518ce87094 /drivers/staging/xgifb
parentstaging: xgifb: avoid direct references xgi_video_info (diff)
downloadkernel-qcow2-linux-fcbdda90ef9bedd521c56f0c7529013f03c139e0.tar.gz
kernel-qcow2-linux-fcbdda90ef9bedd521c56f0c7529013f03c139e0.tar.xz
kernel-qcow2-linux-fcbdda90ef9bedd521c56f0c7529013f03c139e0.zip
staging: xgifb: dynamically allocate xgifb_video_info
Delete global xgi_video_info and dynamically allocate the data. Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/xgifb')
-rw-r--r--drivers/staging/xgifb/XGI_main_26.c15
-rw-r--r--drivers/staging/xgifb/XGIfb.h3
2 files changed, 6 insertions, 12 deletions
diff --git a/drivers/staging/xgifb/XGI_main_26.c b/drivers/staging/xgifb/XGI_main_26.c
index bb53144e588e..355a1780fe27 100644
--- a/drivers/staging/xgifb/XGI_main_26.c
+++ b/drivers/staging/xgifb/XGI_main_26.c
@@ -141,9 +141,6 @@ static inline void dumpVGAReg(void)
}
#endif
-/* data for XGI components */
-struct xgifb_video_info xgi_video_info;
-
#if 1
#define DEBUGPRN(x)
#else
@@ -1964,14 +1961,15 @@ static int __devinit xgifb_probe(struct pci_dev *pdev,
int ret;
bool xgi21_drvlcdcaplist = false;
struct fb_info *fb_info;
- struct xgifb_video_info *xgifb_info = &xgi_video_info;
- struct xgi_hw_device_info *hw_info = &xgifb_info->hw_info;
+ struct xgifb_video_info *xgifb_info;
+ struct xgi_hw_device_info *hw_info;
- memset(hw_info, 0, sizeof(struct xgi_hw_device_info));
- fb_info = framebuffer_alloc(sizeof(struct fb_info), &pdev->dev);
+ fb_info = framebuffer_alloc(sizeof(*xgifb_info), &pdev->dev);
if (!fb_info)
return -ENOMEM;
+ xgifb_info = fb_info->par;
+ hw_info = &xgifb_info->hw_info;
xgifb_info->fb_info = fb_info;
xgifb_info->chip_id = pdev->device;
pci_read_config_byte(pdev,
@@ -2104,7 +2102,7 @@ static int __devinit xgifb_probe(struct pci_dev *pdev,
xgifb_info->mmio_base, xgifb_info->mmio_vbase,
xgifb_info->mmio_size / 1024);
printk("XGIfb: XGIInitNew() ...");
- pci_set_drvdata(pdev, &xgi_video_info);
+ pci_set_drvdata(pdev, xgifb_info);
if (XGIInitNew(pdev))
printk("OK\n");
else
@@ -2378,7 +2376,6 @@ static int __devinit xgifb_probe(struct pci_dev *pdev,
fb_info->flags = FBINFO_FLAG_DEFAULT;
fb_info->var = default_var;
fb_info->fix = XGIfb_fix;
- fb_info->par = &xgi_video_info;
fb_info->screen_base = xgifb_info->video_vbase;
fb_info->fbops = &XGIfb_ops;
XGIfb_get_fix(&fb_info->fix, -1, fb_info);
diff --git a/drivers/staging/xgifb/XGIfb.h b/drivers/staging/xgifb/XGIfb.h
index 0beda4268848..691129621089 100644
--- a/drivers/staging/xgifb/XGIfb.h
+++ b/drivers/staging/xgifb/XGIfb.h
@@ -101,7 +101,4 @@ struct xgifb_video_info {
char reserved[236];
};
-
-extern struct xgifb_video_info xgi_video_info;
-
#endif