diff --git a/src/add-ons/accelerants/matrox/ProposeDisplayMode.c b/src/add-ons/accelerants/matrox/ProposeDisplayMode.c index cdf3d0572b..3d80872061 100644 --- a/src/add-ons/accelerants/matrox/ProposeDisplayMode.c +++ b/src/add-ons/accelerants/matrox/ProposeDisplayMode.c @@ -157,6 +157,23 @@ status_t PROPOSE_DISPLAY_MODE(display_mode *target, const display_mode *low, con } #endif + /* check colorspace versus requested dualhead mode */ + switch (target->space) + { + case B_CMAP8: + case B_RGB15: + /* mode will be made 'outside limits' when dualhead was requested */ + if (target->flags & DUALHEAD_BITS) + { + status = B_BAD_VALUE; + LOG(4, ("PROPOSEMODE: WARNING: Colorspace can't be done in dualhead mode\n")); + } + /* clear dualhead bits if colorspace isn't supported to prevent ProposeMode + * from aborting */ + target->flags &= ~(DUALHEAD_BITS | DUALHEAD_CAPABLE); + break; + } + /*find a nearby valid timing from that given*/ result = gx00_crtc_validate_timing ( @@ -207,10 +224,6 @@ status_t PROPOSE_DISPLAY_MODE(display_mode *target, const display_mode *low, con { status = B_BAD_VALUE; } - else - { - status = B_OK; - } LOG(4, ("PROPOSEMODE: WARNING: horizontal timing deviates too much\n")); } @@ -232,10 +245,6 @@ status_t PROPOSE_DISPLAY_MODE(display_mode *target, const display_mode *low, con { status = B_BAD_VALUE; } - else - { - status = B_OK; - } LOG(4, ("PROPOSEMODE: WARNING: vertical timing deviates too much\n")); } @@ -260,10 +269,6 @@ status_t PROPOSE_DISPLAY_MODE(display_mode *target, const display_mode *low, con { status = B_BAD_VALUE; } - else - { - status = B_OK; - } LOG(4, ("PROPOSEMODE: WARNING: pixelclock deviates too much\n")); } diff --git a/src/add-ons/accelerants/matrox/engine/mga_general.c b/src/add-ons/accelerants/matrox/engine/mga_general.c index 276795e3ce..8f2bca6f4d 100644 --- a/src/add-ons/accelerants/matrox/engine/mga_general.c +++ b/src/add-ons/accelerants/matrox/engine/mga_general.c @@ -54,7 +54,7 @@ status_t gx00_general_powerup() status_t status; uint32 card_class; - LOG(1,("POWERUP: Haiku Matrox Accelerant 0.20 running.\n")); + LOG(1,("POWERUP: Haiku Matrox Accelerant 0.21 running.\n")); /* detect card type and power it up */ switch(CFGR(DEVID))