xfree86/modes: Take rotation into account when checking mode size
Assume that a mode can be used in either landscape or portrait orientation. I suppose the correct thing to do would be to collect all the supported rotations from the CRTCs that can be used with a specific output, but that information doesn't seem to be readily available when these checks are done. So just assume that either orientation is fine. Signed-off-by: Ville Syrjälä <ville.syrjala@nokia.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
0ce25fd790
commit
2e781457d4
|
@ -355,15 +355,32 @@ xf86ValidateModesSize(ScrnInfoPtr pScrn, DisplayModePtr modeList,
|
|||
{
|
||||
DisplayModePtr mode;
|
||||
|
||||
if (maxPitch <= 0)
|
||||
maxPitch = MAXINT;
|
||||
if (maxX <= 0)
|
||||
maxX = MAXINT;
|
||||
if (maxY <= 0)
|
||||
maxY = MAXINT;
|
||||
|
||||
for (mode = modeList; mode != NULL; mode = mode->next) {
|
||||
if (maxPitch > 0 && mode->HDisplay > maxPitch)
|
||||
mode->status = MODE_BAD_WIDTH;
|
||||
if ((xf86ModeWidth(mode, RR_Rotate_0) > maxPitch ||
|
||||
xf86ModeWidth(mode, RR_Rotate_0) > maxX ||
|
||||
xf86ModeHeight(mode, RR_Rotate_0) > maxY) &&
|
||||
(xf86ModeWidth(mode, RR_Rotate_90) > maxPitch ||
|
||||
xf86ModeWidth(mode, RR_Rotate_90) > maxX ||
|
||||
xf86ModeHeight(mode, RR_Rotate_90) > maxY)) {
|
||||
if (xf86ModeWidth(mode, RR_Rotate_0) > maxPitch ||
|
||||
xf86ModeWidth(mode, RR_Rotate_90) > maxPitch)
|
||||
mode->status = MODE_BAD_WIDTH;
|
||||
|
||||
if (maxX > 0 && mode->HDisplay > maxX)
|
||||
mode->status = MODE_VIRTUAL_X;
|
||||
if (xf86ModeWidth(mode, RR_Rotate_0) > maxX ||
|
||||
xf86ModeWidth(mode, RR_Rotate_90) > maxX)
|
||||
mode->status = MODE_VIRTUAL_X;
|
||||
|
||||
if (maxY > 0 && mode->VDisplay > maxY)
|
||||
mode->status = MODE_VIRTUAL_Y;
|
||||
if (xf86ModeHeight(mode, RR_Rotate_0) > maxY ||
|
||||
xf86ModeHeight(mode, RR_Rotate_90) > maxY)
|
||||
mode->status = MODE_VIRTUAL_Y;
|
||||
}
|
||||
|
||||
if (mode->next == modeList)
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue