aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/cirrusfb.c
diff options
context:
space:
mode:
authorGeert Uytterhoeven <geert@linux-m68k.org>2011-10-20 07:42:25 -0400
committerFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>2011-11-11 11:55:55 -0500
commite78bb882bf318bb41e17b33729cca3bdd26b42a0 (patch)
treeaebcc9a817fa7b411b3aa6b7d2e8e6aba92666e2 /drivers/video/cirrusfb.c
parent17bdf48952d3f5c0be8137058f81d398d4606820 (diff)
fbdev/cirrusfb: Add support for "64 MiB" version of Picasso IV
Some Village Tronic Picasso IV graphics cards identify as a 64 MiB Zorro device in Zorro III mode. While the total graphics memory size is the same on such cards, the offset of the graphics memory differs. Add a quirk to handle this. Based on src/sys/arch/amiga/dev/grf_cl.c from NetBSD. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Jeff Garzik <jgarzik@redhat.com> Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Diffstat (limited to 'drivers/video/cirrusfb.c')
-rw-r--r--drivers/video/cirrusfb.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/video/cirrusfb.c b/drivers/video/cirrusfb.c
index 816433ffec9d..6ea505c6f0c8 100644
--- a/drivers/video/cirrusfb.c
+++ b/drivers/video/cirrusfb.c
@@ -314,7 +314,7 @@ static const struct zorrocl zcl_picasso4_z3 __devinitconst = {
314 .type = BT_PICASSO4, 314 .type = BT_PICASSO4,
315 .regoffset = 0x00600000, 315 .regoffset = 0x00600000,
316 .ramsize = 4 * MB_, 316 .ramsize = 4 * MB_,
317 .ramoffset = 0x01000000, 317 .ramoffset = 0x01000000, /* 0x02000000 for 64 MiB boards */
318}; 318};
319 319
320static const struct zorrocl zcl_picasso4_z2 __devinitconst = { 320static const struct zorrocl zcl_picasso4_z2 __devinitconst = {
@@ -2259,6 +2259,10 @@ static int __devinit cirrusfb_zorro_register(struct zorro_dev *z,
2259 ramsize = zcl->ramsize; 2259 ramsize = zcl->ramsize;
2260 if (ramsize) { 2260 if (ramsize) {
2261 rambase = zorro_resource_start(z) + zcl->ramoffset; 2261 rambase = zorro_resource_start(z) + zcl->ramoffset;
2262 if (zorro_resource_len(z) == 64 * MB_) {
2263 /* Quirk for 64 MiB Picasso IV */
2264 rambase += zcl->ramoffset;
2265 }
2262 } else { 2266 } else {
2263 struct zorro_dev *ram = zorro_find_device(zcl->ramid, NULL); 2267 struct zorro_dev *ram = zorro_find_device(zcl->ramid, NULL);
2264 if (!ram || !zorro_resource_len(ram)) { 2268 if (!ram || !zorro_resource_len(ram)) {