updated proposemode to handle singlehead tvout capable cards correctly
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17384 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
f89ce97661
commit
4fc8655349
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
Other authors for MGA driver:
|
Other authors for MGA driver:
|
||||||
Mark Watson,
|
Mark Watson,
|
||||||
Rudolf Cornelissen 9/2002-1/2006
|
Rudolf Cornelissen 9/2002-5/2006
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define MODULE_BIT 0x00400000
|
#define MODULE_BIT 0x00400000
|
||||||
|
@ -387,17 +387,22 @@ status_t PROPOSE_DISPLAY_MODE(display_mode *target, const display_mode *low, con
|
||||||
/* set TV_CAPABLE if suitable: pixelclock is not important (defined by TVstandard) */
|
/* set TV_CAPABLE if suitable: pixelclock is not important (defined by TVstandard) */
|
||||||
switch (si->ps.card_type)
|
switch (si->ps.card_type)
|
||||||
{
|
{
|
||||||
|
case G100:
|
||||||
|
case G200:
|
||||||
|
if (si->ps.tvout &&
|
||||||
|
(target->timing.h_display <= 1024) &&
|
||||||
|
(target->timing.v_display <= 768))
|
||||||
|
{
|
||||||
|
target->flags |= TV_CAPABLE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case G400:
|
case G400:
|
||||||
case G400MAX:
|
case G400MAX:
|
||||||
//fixme: in theory singlehead cards can do TVout as well (if MAVEN mounted)
|
if (si->ps.tvout &&
|
||||||
if (target->flags & DUALHEAD_CAPABLE)
|
(target->timing.h_display <= 1024) &&
|
||||||
|
(target->timing.v_display <= 768))
|
||||||
{
|
{
|
||||||
if (si->ps.tvout &&
|
target->flags |= TV_CAPABLE;
|
||||||
(target->timing.h_display <= 1024) &&
|
|
||||||
(target->timing.v_display <= 768))
|
|
||||||
{
|
|
||||||
target->flags |= TV_CAPABLE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case G450:
|
case G450:
|
||||||
|
@ -414,12 +419,11 @@ status_t PROPOSE_DISPLAY_MODE(display_mode *target, const display_mode *low, con
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
//fixme: setup for G100 and G200 TVout later on...
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TVout can only be done if the interface cable is connected */
|
/* TVout can only be done if the interface cable is connected on dualhead cards */
|
||||||
if ((i2c_sec_tv_adapter() != B_OK) && (target->flags & TV_CAPABLE))
|
if (si->ps.secondary_head && (i2c_sec_tv_adapter() != B_OK))
|
||||||
{
|
{
|
||||||
target->flags &= ~TV_CAPABLE;
|
target->flags &= ~TV_CAPABLE;
|
||||||
LOG(1, ("PROPOSEMODE: blocking TVout: no TVout cable connected!\n"));
|
LOG(1, ("PROPOSEMODE: blocking TVout: no TVout cable connected!\n"));
|
||||||
|
@ -431,8 +435,15 @@ status_t PROPOSE_DISPLAY_MODE(display_mode *target, const display_mode *low, con
|
||||||
target->flags &= ~TV_BITS;
|
target->flags &= ~TV_BITS;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* fixme: currently the matrox driver can only do secondary TVout */
|
/* the matrox driver can only do secondary TVout on dualhead cards */
|
||||||
target->flags &= ~TV_PRIMARY;
|
if ((target->flags & TV_BITS) && !si->ps.secondary_head)
|
||||||
|
{
|
||||||
|
target->flags |= TV_PRIMARY;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
target->flags &= ~TV_PRIMARY;
|
||||||
|
}
|
||||||
|
|
||||||
/* set HARDWARE_CURSOR mode if suitable */
|
/* set HARDWARE_CURSOR mode if suitable */
|
||||||
if (si->settings.hardcursor)
|
if (si->settings.hardcursor)
|
||||||
|
|
Loading…
Reference in New Issue