diff options
author | Geert Uytterhoeven <geert@linux-m68k.org> | 2011-10-20 07:42:25 -0400 |
---|---|---|
committer | Florian Tobias Schandinat <FlorianSchandinat@gmx.de> | 2011-11-11 11:55:55 -0500 |
commit | e78bb882bf318bb41e17b33729cca3bdd26b42a0 (patch) | |
tree | aebcc9a817fa7b411b3aa6b7d2e8e6aba92666e2 /drivers/video/cirrusfb.c | |
parent | 17bdf48952d3f5c0be8137058f81d398d4606820 (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.c | 6 |
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 | ||
320 | static const struct zorrocl zcl_picasso4_z2 __devinitconst = { | 320 | static 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)) { |