Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: pu
Hi, the cirrus X driver is not compatible with the kms driver that was added to linux 3.5 for qemu. In 1:1.4.0-2, I cherry-picked a patch that makes the driver bail if it detected the kms driver. Unfortunately that didn't quite work as it still prevented falling back to another driver. This update intends to fix that, with a followup patch from upstream. This patch is in 1:1.5.2-1, just uploaded to sid; I'll try and confirm the fix in the next days. Cheers, Julien diff --git a/debian/changelog b/debian/changelog index d6bb0e0..4bdad5a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +xserver-xorg-video-cirrus (1:1.4.0-3) UNRELEASED; urgency=low + + * cirrus: fix falling back after kernel check. If we find a kernel driver + the code leaves the pci slot claimed which stops us falling back. Unclaim + the pci slot. + + -- Julien Cristau <jcris...@debian.org> Tue, 17 Sep 2013 08:43:20 +0200 + xserver-xorg-video-cirrus (1:1.4.0-2) unstable; urgency=low * cirrus: don't bind if there is a PCI kernel driver loaded, for diff --git a/src/cir_driver.c b/src/cir_driver.c index c6967da..dfbaf52 100644 --- a/src/cir_driver.c +++ b/src/cir_driver.c @@ -244,9 +244,10 @@ CIRProbe(DriverPtr drv, int flags) CIRChipsets, CIRPciChipsets, devSections, numDevSections, drv, &usedChips); /* Free it since we don't need that list after this */ - free(devSections); - if (numUsed <= 0) + if (numUsed <= 0) { + free(devSections); return FALSE; + } if (flags & PROBE_DETECT) foundScreen = TRUE; else for (i = 0; i < numUsed; i++) { @@ -264,6 +265,8 @@ CIRProbe(DriverPtr drv, int flags) pPci->device_id, pPci->bus, pPci->domain, pPci->dev, pPci->func); xf86DrvMsg(0, X_ERROR, "cirrus: This driver cannot operate until it has been unloaded.\n"); + xf86UnclaimPciSlot(pPci, devSections[0]); + free(devSections); return FALSE; } #endif @@ -297,6 +300,7 @@ CIRProbe(DriverPtr drv, int flags) pScrn->Probe = NULL; } } + free(devSections); free(usedChips); return foundScreen;
signature.asc
Description: Digital signature