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 <[email protected]>
--
Untested, due to lack of hardware
---
 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 816433f..6ea505c 100644
--- a/drivers/video/cirrusfb.c
+++ b/drivers/video/cirrusfb.c
@@ -314,7 +314,7 @@ static const struct zorrocl zcl_picasso4_z3 __devinitconst 
= {
        .type           = BT_PICASSO4,
        .regoffset      = 0x00600000,
        .ramsize        = 4 * MB_,
-       .ramoffset      = 0x01000000,
+       .ramoffset      = 0x01000000,   /* 0x02000000 for 64 MiB boards */
 };
 
 static const struct zorrocl zcl_picasso4_z2 __devinitconst = {
@@ -2259,6 +2259,10 @@ static int __devinit cirrusfb_zorro_register(struct 
zorro_dev *z,
        ramsize = zcl->ramsize;
        if (ramsize) {
                rambase = zorro_resource_start(z) + zcl->ramoffset;
+               if (zorro_resource_len(z) == 64 * MB_) {
+                       /* Quirk for 64 MiB Picasso IV */
+                       rambase += zcl->ramoffset;
+               }
        } else {
                struct zorro_dev *ram = zorro_find_device(zcl->ramid, NULL);
                if (!ram || !zorro_resource_len(ram)) {
-- 
1.7.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to