diff options
-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)) { |