aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/mb862xx
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/video/mb862xx')
-rw-r--r--drivers/video/mb862xx/mb862xx_reg.h6
-rw-r--r--drivers/video/mb862xx/mb862xxfb.c14
2 files changed, 15 insertions, 5 deletions
diff --git a/drivers/video/mb862xx/mb862xx_reg.h b/drivers/video/mb862xx/mb862xx_reg.h
index 2ba65e118500..737fc011caff 100644
--- a/drivers/video/mb862xx/mb862xx_reg.h
+++ b/drivers/video/mb862xx/mb862xx_reg.h
@@ -5,11 +5,8 @@
5#ifndef _MB862XX_REG_H 5#ifndef _MB862XX_REG_H
6#define _MB862XX_REG_H 6#define _MB862XX_REG_H
7 7
8#ifdef MB862XX_MMIO_BOTTOM
9#define MB862XX_MMIO_BASE 0x03fc0000
10#else
11#define MB862XX_MMIO_BASE 0x01fc0000 8#define MB862XX_MMIO_BASE 0x01fc0000
12#endif 9#define MB862XX_MMIO_HIGH_BASE 0x03fc0000
13#define MB862XX_I2C_BASE 0x0000c000 10#define MB862XX_I2C_BASE 0x0000c000
14#define MB862XX_DISP_BASE 0x00010000 11#define MB862XX_DISP_BASE 0x00010000
15#define MB862XX_CAP_BASE 0x00018000 12#define MB862XX_CAP_BASE 0x00018000
@@ -23,6 +20,7 @@
23#define GC_IMASK 0x00000024 20#define GC_IMASK 0x00000024
24#define GC_SRST 0x0000002c 21#define GC_SRST 0x0000002c
25#define GC_CCF 0x00000038 22#define GC_CCF 0x00000038
23#define GC_RSW 0x0000005c
26#define GC_CID 0x000000f0 24#define GC_CID 0x000000f0
27#define GC_REVISION 0x00000084 25#define GC_REVISION 0x00000084
28 26
diff --git a/drivers/video/mb862xx/mb862xxfb.c b/drivers/video/mb862xx/mb862xxfb.c
index a1b81e73394c..ffb6a2c36d3c 100644
--- a/drivers/video/mb862xx/mb862xxfb.c
+++ b/drivers/video/mb862xx/mb862xxfb.c
@@ -742,6 +742,12 @@ static int coralp_init(struct mb862xxfb_par *par)
742 742
743 par->refclk = GC_DISP_REFCLK_400; 743 par->refclk = GC_DISP_REFCLK_400;
744 744
745 if (par->mapped_vram >= 0x2000000) {
746 /* relocate gdc registers space */
747 writel(1, par->fb_base + MB862XX_MMIO_BASE + GC_RSW);
748 udelay(1); /* wait at least 20 bus cycles */
749 }
750
745 ver = inreg(host, GC_CID); 751 ver = inreg(host, GC_CID);
746 cn = (ver & GC_CID_CNAME_MSK) >> 8; 752 cn = (ver & GC_CID_CNAME_MSK) >> 8;
747 ver = ver & GC_CID_VERSION_MSK; 753 ver = ver & GC_CID_VERSION_MSK;
@@ -907,7 +913,13 @@ static int __devinit mb862xx_pci_probe(struct pci_dev *pdev,
907 case PCI_DEVICE_ID_FUJITSU_CORALPA: 913 case PCI_DEVICE_ID_FUJITSU_CORALPA:
908 par->fb_base_phys = pci_resource_start(par->pdev, 0); 914 par->fb_base_phys = pci_resource_start(par->pdev, 0);
909 par->mapped_vram = CORALP_MEM_SIZE; 915 par->mapped_vram = CORALP_MEM_SIZE;
910 par->mmio_base_phys = par->fb_base_phys + MB862XX_MMIO_BASE; 916 if (par->mapped_vram >= 0x2000000) {
917 par->mmio_base_phys = par->fb_base_phys +
918 MB862XX_MMIO_HIGH_BASE;
919 } else {
920 par->mmio_base_phys = par->fb_base_phys +
921 MB862XX_MMIO_BASE;
922 }
911 par->mmio_len = MB862XX_MMIO_SIZE; 923 par->mmio_len = MB862XX_MMIO_SIZE;
912 par->type = BT_CORALP; 924 par->type = BT_CORALP;
913 break; 925 break;