Commit f2df8c09 authored by Aaro Koskinen's avatar Aaro Koskinen Committed by Greg Kroah-Hartman

staging: xgifb: eliminate global XGI_Pr data

Move vb_device_info into xgifb_video_info.
Signed-off-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
Reviewed-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 7d2ab0c6
...@@ -52,15 +52,15 @@ MODULE_DEVICE_TABLE(pci, xgifb_pci_table); ...@@ -52,15 +52,15 @@ MODULE_DEVICE_TABLE(pci, xgifb_pci_table);
#define SEQ_DATA 0x15 #define SEQ_DATA 0x15
#define XGISR XGI_Pr.P3c4 #define XGISR (xgifb_info->dev_info.P3c4)
#define XGICR XGI_Pr.P3d4 #define XGICR (xgifb_info->dev_info.P3d4)
#define XGIDACA XGI_Pr.P3c8 #define XGIDACA (xgifb_info->dev_info.P3c8)
#define XGIDACD XGI_Pr.P3c9 #define XGIDACD (xgifb_info->dev_info.P3c9)
#define XGIPART1 XGI_Pr.Part1Port #define XGIPART1 (xgifb_info->dev_info.Part1Port)
#define XGIPART2 XGI_Pr.Part2Port #define XGIPART2 (xgifb_info->dev_info.Part2Port)
#define XGIPART3 XGI_Pr.Part3Port #define XGIPART3 (xgifb_info->dev_info.Part3Port)
#define XGIPART4 XGI_Pr.Part4Port #define XGIPART4 (xgifb_info->dev_info.Part4Port)
#define XGIPART5 XGI_Pr.Part5Port #define XGIPART5 (xgifb_info->dev_info.Part5Port)
#define XGIDAC2A XGIPART5 #define XGIDAC2A XGIPART5
#define XGIDAC2D (XGIPART5 + 1) #define XGIDAC2D (XGIPART5 + 1)
...@@ -143,9 +143,6 @@ static int XGIfb_tvplug = -1; ...@@ -143,9 +143,6 @@ static int XGIfb_tvplug = -1;
/* TW: For ioctl XGIFB_GET_INFO */ /* TW: For ioctl XGIFB_GET_INFO */
/* XGIfb_info XGIfbinfo; */ /* XGIfb_info XGIfbinfo; */
/* TW: XGI private structure */
static struct vb_device_info XGI_Pr;
#define MD_XGI300 1 #define MD_XGI300 1
#define MD_XGI315 2 #define MD_XGI315 2
......
...@@ -1650,6 +1650,7 @@ static int XGIfb_pan_display(struct fb_var_screeninfo *var, ...@@ -1650,6 +1650,7 @@ static int XGIfb_pan_display(struct fb_var_screeninfo *var,
static int XGIfb_blank(int blank, struct fb_info *info) static int XGIfb_blank(int blank, struct fb_info *info)
{ {
struct xgifb_video_info *xgifb_info = info->par;
u8 reg; u8 reg;
reg = xgifb_reg_get(XGICR, 0x17); reg = xgifb_reg_get(XGICR, 0x17);
...@@ -2002,14 +2003,15 @@ static int __devinit xgifb_probe(struct pci_dev *pdev, ...@@ -2002,14 +2003,15 @@ static int __devinit xgifb_probe(struct pci_dev *pdev,
hw_info->pjIOAddress = (unsigned char *)xgifb_info->vga_base; hw_info->pjIOAddress = (unsigned char *)xgifb_info->vga_base;
/* XGI_Pr.RelIO = ioremap(pci_resource_start(pdev, 2), 128) + 0x30; */ /* XGI_Pr.RelIO = ioremap(pci_resource_start(pdev, 2), 128) + 0x30; */
printk("XGIfb: Relocate IO address: %lx [%08lx]\n", printk("XGIfb: Relocate IO address: %lx [%08lx]\n",
(unsigned long)pci_resource_start(pdev, 2), XGI_Pr.RelIO); (unsigned long)pci_resource_start(pdev, 2),
xgifb_info->dev_info.RelIO);
if (pci_enable_device(pdev)) { if (pci_enable_device(pdev)) {
ret = -EIO; ret = -EIO;
goto error; goto error;
} }
XGIRegInit(&XGI_Pr, (unsigned long)hw_info->pjIOAddress); XGIRegInit(&xgifb_info->dev_info, (unsigned long)hw_info->pjIOAddress);
xgifb_reg_set(XGISR, IND_XGI_PASSWORD, XGI_PASSWORD); xgifb_reg_set(XGISR, IND_XGI_PASSWORD, XGI_PASSWORD);
reg1 = xgifb_reg_get(XGISR, IND_XGI_PASSWORD); reg1 = xgifb_reg_get(XGISR, IND_XGI_PASSWORD);
...@@ -2292,7 +2294,9 @@ static int __devinit xgifb_probe(struct pci_dev *pdev, ...@@ -2292,7 +2294,9 @@ static int __devinit xgifb_probe(struct pci_dev *pdev,
XGIbios_mode[xgifb_info->mode_idx].xres) && XGIbios_mode[xgifb_info->mode_idx].xres) &&
(XGI21_LCDCapList[m].LVDSVDE == (XGI21_LCDCapList[m].LVDSVDE ==
XGIbios_mode[xgifb_info->mode_idx].yres)) { XGIbios_mode[xgifb_info->mode_idx].yres)) {
xgifb_reg_set(XGI_Pr.P3d4, 0x36, m); xgifb_reg_set(xgifb_info->dev_info.P3d4,
0x36,
m);
break; break;
} }
} }
...@@ -2364,11 +2368,12 @@ static int __devinit xgifb_probe(struct pci_dev *pdev, ...@@ -2364,11 +2368,12 @@ static int __devinit xgifb_probe(struct pci_dev *pdev,
XGIfb_bpp_to_var(xgifb_info, &fb_info->var); XGIfb_bpp_to_var(xgifb_info, &fb_info->var);
fb_info->var.pixclock = (u32) (1000000000 / fb_info->var.pixclock = (u32) (1000000000 /
XGIfb_mode_rate_to_dclock(&XGI_Pr, hw_info, XGIfb_mode_rate_to_dclock(&xgifb_info->dev_info,
hw_info,
XGIbios_mode[xgifb_info->mode_idx].mode_no, XGIbios_mode[xgifb_info->mode_idx].mode_no,
xgifb_info->rate_idx)); xgifb_info->rate_idx));
if (XGIfb_mode_rate_to_ddata(&XGI_Pr, hw_info, if (XGIfb_mode_rate_to_ddata(&xgifb_info->dev_info, hw_info,
XGIbios_mode[xgifb_info->mode_idx].mode_no, XGIbios_mode[xgifb_info->mode_idx].mode_no,
xgifb_info->rate_idx, xgifb_info->rate_idx,
&fb_info->var.left_margin, &fb_info->var.left_margin,
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
#include <linux/ioctl.h> #include <linux/ioctl.h>
#include <linux/types.h> #include <linux/types.h>
#include "vb_struct.h"
#include "vgatypes.h" #include "vgatypes.h"
#define DISPTYPE_CRT1 0x00000008L #define DISPTYPE_CRT1 0x00000008L
...@@ -57,6 +58,7 @@ enum xgi_tv_plug { /* vicki@030226 */ ...@@ -57,6 +58,7 @@ enum xgi_tv_plug { /* vicki@030226 */
struct xgifb_video_info { struct xgifb_video_info {
struct fb_info *fb_info; struct fb_info *fb_info;
struct xgi_hw_device_info hw_info; struct xgi_hw_device_info hw_info;
struct vb_device_info dev_info;
int mode_idx; int mode_idx;
int rate_idx; int rate_idx;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment