gxt4500: enable on non-PPC architectures
authorOndrej Zary <linux@rainbow-software.org>
Thu, 1 Oct 2015 21:22:51 +0000 (23:22 +0200)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Thu, 8 Oct 2015 09:19:38 +0000 (12:19 +0300)
These chips can be present at least on x86 too - Fire GL2 AGP has GXT6000P but
this driver is currently limited to PPC.
Enable it for all architectures and add chip configuration for little-endian.

Tested on x86 with Fire GL2 AGP.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/video/fbdev/Kconfig
drivers/video/fbdev/gxt4500.c

index 5d67226a1cee4f0e722b6c46496e0fdd6dbc8990..e6d16d65e4e6529501f3c50e670712fb5db076cf 100644 (file)
@@ -2134,7 +2134,7 @@ config FB_UDL
 
 config FB_IBM_GXT4500
        tristate "Framebuffer support for IBM GXT4000P/4500P/6000P/6500P adaptors"
-       depends on FB && PPC
+       depends on FB
        select FB_CFB_FILLRECT
        select FB_CFB_COPYAREA
        select FB_CFB_IMAGEBLIT
@@ -2142,7 +2142,8 @@ config FB_IBM_GXT4500
          Say Y here to enable support for the IBM GXT4000P/6000P and
          GXT4500P/6500P display adaptor based on Raster Engine RC1000,
          found on some IBM System P (pSeries) machines. This driver
-         doesn't use Geometry Engine GT1000.
+         doesn't use Geometry Engine GT1000. This driver also supports
+         AGP Fire GL2/3/4 cards on x86.
 
 config FB_PS3
        tristate "PS3 GPU framebuffer driver"
index f19133a80e8c3163a679c070253c285e2b2034d9..ae686962f3d35249abba4a29386f3887fb5440a6 100644 (file)
@@ -670,8 +670,15 @@ static int gxt4500_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 
        pci_set_drvdata(pdev, info);
 
+#ifdef __BIG_ENDIAN
        /* Set byte-swapping for DFA aperture for all pixel sizes */
        pci_write_config_dword(pdev, CFG_ENDIAN0, 0x333300);
+#else /* __LITTLE_ENDIAN */
+       /* not sure what this means but fgl23 driver does that */
+       pci_write_config_dword(pdev, CFG_ENDIAN0, 0x2300);
+/*     pci_write_config_dword(pdev, CFG_ENDIAN0 + 4, 0x400000);*/
+       pci_write_config_dword(pdev, CFG_ENDIAN0 + 8, 0x98530000);
+#endif
 
        info->fbops = &gxt4500_ops;
        info->flags = FBINFO_FLAG_DEFAULT;