xserver: Branch 'server-1.20-branch' - 2 commits

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jun 14 22:45:05 UTC 2021


 hw/xfree86/drivers/modesetting/drmmode_display.c |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

New commits:
commit d16f6403153596b62c555fb511881289f59f9e81
Author: Ville Syrjälä <ville.syrjala at linux.intel.com>
Date:   Tue Sep 3 16:44:56 2019 +0300

    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 at linux.intel.com>
    (cherry picked from commit 0e4bd71d02d09c320e76280ae8f14df169387507)

diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c
index 360434ebd..6f5f8caf6 100644
--- a/hw/xfree86/drivers/modesetting/drmmode_display.c
+++ b/hw/xfree86/drivers/modesetting/drmmode_display.c
@@ -2997,9 +2997,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;
commit f1e76731a02e77c73521134933e424a17df40a1c
Author: Ville Syrjälä <ville.syrjala at linux.intel.com>
Date:   Tue Aug 20 17:46:09 2019 +0300

    modesetting: Update props for dynamically added outputs
    
    Dynamically added outputs should have their properties
    properly updated as well. Otherwise we're left with an output
    with many of its propeties not exposed.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
    Reviewed-by: Michel Dänzer <michel at daenzer.net>
    Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1143
    (cherry picked from commit 0c5179c280a193a1dbbe29160906087f06eae6f2)

diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c
index 88992f521..360434ebd 100644
--- a/hw/xfree86/drivers/modesetting/drmmode_display.c
+++ b/hw/xfree86/drivers/modesetting/drmmode_display.c
@@ -3021,8 +3021,14 @@ drmmode_output_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, drmModeResPtr mode_r
                                 "DPMS");
     }
 
-    if (dynamic)
+    if (dynamic) {
         output->randr_output = RROutputCreate(xf86ScrnToScreen(pScrn), output->name, strlen(output->name), output);
+        if (output->randr_output) {
+            drmmode_output_create_resources(output);
+            RRPostPendingProperties(output->randr_output);
+        }
+    }
+
     return 1;
 
  out_free_encoders:


More information about the xorg-commit mailing list