diff options
author | Aaro Koskinen <aaro.koskinen@iki.fi> | 2011-10-11 18:47:20 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-10-12 15:51:45 (GMT) |
commit | fcbdda90ef9bedd521c56f0c7529013f03c139e0 (patch) | |
tree | 2caa69c947631b89478fbfae15e384518ce87094 | |
parent | fd26d42019cbc502769fde01d714126c2ec6abd1 (diff) | |
download | linux-fsl-qoriq-fcbdda90ef9bedd521c56f0c7529013f03c139e0.tar.xz |
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>
-rw-r--r-- | drivers/staging/xgifb/XGI_main_26.c | 15 | ||||
-rw-r--r-- | drivers/staging/xgifb/XGIfb.h | 3 |
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 bb53144..355a178 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 0beda42..6911296 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 |