diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2019-09-03 16:44:56 +0300 |
---|---|---|
committer | Adam Jackson <ajax@nwnk.net> | 2019-10-29 22:14:06 +0000 |
commit | 0e4bd71d02d09c320e76280ae8f14df169387507 (patch) | |
tree | c4e1d5ba3bd546dc58ca7ad02d508ee7375e02fd | |
parent | 334f1107146a2e6ebf6f7743b77aec2ad5c46f75 (diff) |
modesetting: Fix possible_crtcs
Populate outout possible_crtcs as the union of possible_crtcs from
the encoders rather than the intersection. Otherwise we're easily left
with possible_crtcs==0 when all the possible encoders have
non-overlapping possible_crtcs.
No idea what the magic 0x7f is about, but keep it around in case
it matters.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
-rw-r--r-- | hw/xfree86/drivers/modesetting/drmmode_display.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c index 0e06ae48e..ec729a4dc 100644 --- a/hw/xfree86/drivers/modesetting/drmmode_display.c +++ b/hw/xfree86/drivers/modesetting/drmmode_display.c @@ -2979,9 +2979,9 @@ drmmode_output_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, drmModeResPtr mode_r output->driver_private = drmmode_output; output->non_desktop = nonDesktop; - output->possible_crtcs = 0x7f; + output->possible_crtcs = 0; for (i = 0; i < koutput->count_encoders; i++) { - output->possible_crtcs &= kencoders[i]->possible_crtcs >> crtcshift; + output->possible_crtcs |= (kencoders[i]->possible_crtcs >> crtcshift) & 0x7f; } /* work out the possible clones later */ output->possible_clones = 0; |