On Sun, Jun 26, 2016 at 10:19 PM, Michel Dänzer <[email protected]> wrote: > From: Michel Dänzer <[email protected]> > > Fixes crash with Xinerama enabled, which disables RandR. > > Fixes: https://bugs.debian.org/827984 > Signed-off-by: Michel Dänzer <[email protected]>
Reviewed-by: Alex Deucher <[email protected]> > --- > src/drmmode_display.c | 2 +- > src/radeon_kms.c | 21 ++++++++++++--------- > 2 files changed, 13 insertions(+), 10 deletions(-) > > diff --git a/src/drmmode_display.c b/src/drmmode_display.c > index b5d3dc9..2555465 100644 > --- a/src/drmmode_display.c > +++ b/src/drmmode_display.c > @@ -2613,7 +2613,7 @@ restart_destroy: > changed = TRUE; > } > > - if (changed) { > + if (changed && dixPrivateKeyRegistered(rrPrivKey)) { > #if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,14,99,2,0) > RRSetChanged(xf86ScrnToScreen(scrn)); > #else > diff --git a/src/radeon_kms.c b/src/radeon_kms.c > index 940aad2..41ee597 100644 > --- a/src/radeon_kms.c > +++ b/src/radeon_kms.c > @@ -241,7 +241,6 @@ static Bool RADEONCreateScreenResources_KMS(ScreenPtr > pScreen) > { > ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); > RADEONInfoPtr info = RADEONPTR(pScrn); > - rrScrPrivPtr rrScrPriv = rrGetScrPriv(pScreen); > PixmapPtr pixmap; > struct radeon_surface *surface; > > @@ -251,17 +250,21 @@ static Bool RADEONCreateScreenResources_KMS(ScreenPtr > pScreen) > pScreen->CreateScreenResources = RADEONCreateScreenResources_KMS; > > /* Set the RandR primary output if Xorg hasn't */ > - if ( > + if (dixPrivateKeyRegistered(rrPrivKey)) { > + rrScrPrivPtr rrScrPriv = rrGetScrPriv(pScreen); > + > + if ( > #ifdef RADEON_PIXMAP_SHARING > - !pScreen->isGPU && > + !pScreen->isGPU && > #endif > - !rrScrPriv->primaryOutput) > - { > - xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); > + !rrScrPriv->primaryOutput) > + { > + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); > > - rrScrPriv->primaryOutput = xf86_config->output[0]->randr_output; > - RROutputChanged(rrScrPriv->primaryOutput, FALSE); > - rrScrPriv->layoutChanged = TRUE; > + rrScrPriv->primaryOutput = xf86_config->output[0]->randr_output; > + RROutputChanged(rrScrPriv->primaryOutput, FALSE); > + rrScrPriv->layoutChanged = TRUE; > + } > } > > if (!drmmode_set_desired_modes(pScrn, &info->drmmode, FALSE)) > -- > 2.8.1 > > _______________________________________________ > xorg-driver-ati mailing list > [email protected] > https://lists.x.org/mailman/listinfo/xorg-driver-ati _______________________________________________ xorg-driver-ati mailing list [email protected] https://lists.x.org/mailman/listinfo/xorg-driver-ati
