staging/xgifb: fix addressing issues on platform with long physical addressing
[cascardo/linux.git] / drivers / staging / xgifb / XGI_main_26.c
index 21c0378..1c93a03 100644 (file)
@@ -358,7 +358,6 @@ static int XGIfb_mode_rate_to_ddata(struct vb_device_info *XGI_Pr,
 
 static void XGIRegInit(struct vb_device_info *XGI_Pr, unsigned long BaseAddr)
 {
-       XGI_Pr->RelIO = BaseAddr;
        XGI_Pr->P3c4 = BaseAddr + 0x14;
        XGI_Pr->P3d4 = BaseAddr + 0x24;
        XGI_Pr->P3c0 = BaseAddr + 0x10;
@@ -1088,7 +1087,7 @@ static int XGIfb_do_set_var(struct fb_var_screeninfo *var, int isactive,
        unsigned int vtotal = var->upper_margin + var->yres + var->lower_margin
                        + var->vsync_len;
 #if defined(__powerpc__)
-       u8 sr_data, cr_data;
+       u8 cr_data;
 #endif
        unsigned int drate = 0, hrate = 0;
        int found_mode = 0;
@@ -1911,11 +1910,9 @@ static int __devinit xgifb_probe(struct pci_dev *pdev,
        xgifb_info->mmio_base = pci_resource_start(pdev, 1);
        xgifb_info->mmio_size = pci_resource_len(pdev, 1);
        xgifb_info->vga_base = pci_resource_start(pdev, 2) + 0x30;
-       hw_info->pjIOAddress = (unsigned char *)xgifb_info->vga_base;
-       /* XGI_Pr.RelIO  = ioremap(pci_resource_start(pdev, 2), 128) + 0x30; */
-       pr_info("Relocate IO address: %lx [%08lx]\n",
-              (unsigned long)pci_resource_start(pdev, 2),
-              xgifb_info->dev_info.RelIO);
+       pr_info("Relocate IO address: %Lx [%08lx]\n",
+              (u64) pci_resource_start(pdev, 2),
+              xgifb_info->vga_base);
 
        if (pci_enable_device(pdev)) {
                ret = -EIO;
@@ -1927,7 +1924,7 @@ static int __devinit xgifb_probe(struct pci_dev *pdev,
                xgifb_info->display2_force = true;
        }
 
-       XGIRegInit(&xgifb_info->dev_info, (unsigned long)hw_info->pjIOAddress);
+       XGIRegInit(&xgifb_info->dev_info, xgifb_info->vga_base);
 
        xgifb_reg_set(XGISR, IND_SIS_PASSWORD, SIS_PASSWORD);
        reg1 = xgifb_reg_get(XGISR, IND_SIS_PASSWORD);
@@ -2006,13 +2003,13 @@ static int __devinit xgifb_probe(struct pci_dev *pdev,
        xgifb_info->mmio_vbase = ioremap(xgifb_info->mmio_base,
                                            xgifb_info->mmio_size);
 
-       pr_info("Framebuffer at 0x%lx, mapped to 0x%p, size %dk\n",
-              xgifb_info->video_base,
+       pr_info("Framebuffer at 0x%Lx, mapped to 0x%p, size %dk\n",
+              (u64) xgifb_info->video_base,
               xgifb_info->video_vbase,
               xgifb_info->video_size / 1024);
 
-       pr_info("MMIO at 0x%lx, mapped to 0x%p, size %ldk\n",
-              xgifb_info->mmio_base, xgifb_info->mmio_vbase,
+       pr_info("MMIO at 0x%Lx, mapped to 0x%p, size %ldk\n",
+              (u64) xgifb_info->mmio_base, xgifb_info->mmio_vbase,
               xgifb_info->mmio_size / 1024);
 
        pci_set_drvdata(pdev, xgifb_info);