You have been requested to review the proposed merge of 
lp:~andrikos/ubuntu/quantal/xserver-xorg-video-intel/fix-ati-hybrid into 
lp:ubuntu/quantal/xserver-xorg-video-intel.

For more details, see:
https://code.launchpad.net/~andrikos/ubuntu/quantal/xserver-xorg-video-intel/fix-ati-hybrid/+merge/132956

This update includes a patch to revert a speicific commit of the upstream intel 
driver that breaks ati/intel hybrid systems.

-- 
https://code.launchpad.net/~andrikos/ubuntu/quantal/xserver-xorg-video-intel/fix-ati-hybrid/+merge/132956
Your team Ubuntu-X is requested to review the proposed merge of 
lp:~andrikos/ubuntu/quantal/xserver-xorg-video-intel/fix-ati-hybrid into 
lp:ubuntu/quantal/xserver-xorg-video-intel.
=== modified file 'debian/changelog'
--- debian/changelog	2012-10-01 15:39:54 +0000
+++ debian/changelog	2012-11-05 20:59:20 +0000
@@ -1,3 +1,10 @@
+xserver-xorg-video-intel (2:2.20.9-0ubuntu2+andrik1) quantal; urgency=low
+
+  * Add fix-ati-hybrid.patch to fix ATI/Intel hybrid setups
+    (LP: #1068661)
+
+ -- Nick Andrik <nick.and...@gmail.com>  Mon, 05 Nov 2012 21:54:26 +0100
+
 xserver-xorg-video-intel (2:2.20.9-0ubuntu2) quantal; urgency=low
 
   [ Maarten Lankhorst ]

=== added file 'debian/patches/fix-ati-hybrid.patch'
--- debian/patches/fix-ati-hybrid.patch	1970-01-01 00:00:00 +0000
+++ debian/patches/fix-ati-hybrid.patch	2012-11-05 20:59:20 +0000
@@ -0,0 +1,155 @@
+Fixes regression for ati/intel hybrid systems
+by reverting some commits of xf86-video-intel:
+
+	commit 05dcc5f1699ba90fc14c50882e8d4be89bc4a4f9
+	Author: Chris Wilson <ch...@chris-wilson.co.uk>
+	Date:   Fri Aug 3 15:08:45 2012 +0100
+
+	    Pass the chipset info through driverPrivate rather than a global pointer
+
+
+Nick Andrik <nick.and...@gmail.com>
+Index: xserver-xorg-video-intel-2.20.9/src/intel_driver.c
+===================================================================
+--- xserver-xorg-video-intel-2.20.9.orig/src/intel_driver.c	2012-10-30 02:54:05.456713161 +0100
++++ xserver-xorg-video-intel-2.20.9/src/intel_driver.c	2012-10-30 02:54:16.186075606 +0100
+@@ -185,7 +185,7 @@
+ static void intel_check_chipset_option(ScrnInfoPtr scrn)
+ {
+ 	intel_screen_private *intel = intel_get_screen_private(scrn);
+-	intel_detect_chipset(scrn, intel->pEnt, intel->PciInfo);
++	intel->info = intel_detect_chipset(scrn, intel->pEnt, intel->PciInfo);
+ }
+ 
+ static Bool I830GetEarlyOptions(ScrnInfoPtr scrn)
+@@ -491,15 +491,14 @@
+ 	if (flags & PROBE_DETECT)
+ 		return TRUE;
+ 
+-	if (((uintptr_t)scrn->driverPrivate) & 1) {
+-		intel = xnfcalloc(sizeof(*intel), 1);
++	intel = intel_get_screen_private(scrn);
++	if (intel == NULL) {
++		intel = xnfcalloc(sizeof(intel_screen_private), 1);
+ 		if (intel == NULL)
+ 			return FALSE;
+ 
+-		intel->info = (void *)((uintptr_t)scrn->driverPrivate & ~1);
+ 		scrn->driverPrivate = intel;
+ 	}
+-	intel = intel_get_screen_private(scrn);
+ 	intel->scrn = scrn;
+ 	intel->pEnt = pEnt;
+ 
+Index: xserver-xorg-video-intel-2.20.9/src/intel_driver.h
+===================================================================
+--- xserver-xorg-video-intel-2.20.9.orig/src/intel_driver.h	2012-10-30 02:54:05.456713161 +0100
++++ xserver-xorg-video-intel-2.20.9/src/intel_driver.h	2012-10-30 02:54:16.186075606 +0100
+@@ -277,9 +277,9 @@
+ 	int gen;
+ };
+ 
+-void intel_detect_chipset(ScrnInfoPtr scrn,
+-			  EntityInfoPtr ent,
+-			  struct pci_device *pci);
++const struct intel_device_info *
++intel_detect_chipset(ScrnInfoPtr scrn,
++		     EntityInfoPtr ent, struct pci_device *pci);
+ 
+ 
+ #endif /* INTEL_DRIVER_H */
+Index: xserver-xorg-video-intel-2.20.9/src/intel_module.c
+===================================================================
+--- xserver-xorg-video-intel-2.20.9.orig/src/intel_module.c	2012-10-30 02:54:05.456713161 +0100
++++ xserver-xorg-video-intel-2.20.9/src/intel_module.c	2012-10-30 02:54:16.186075606 +0100
+@@ -51,6 +51,8 @@
+ #include <xf86platformBus.h>
+ #endif
+ 
++static struct intel_device_info *chipset_info;
++
+ static const struct intel_device_info intel_generic_info = {
+ 	.gen = -1,
+ };
+@@ -315,10 +317,9 @@
+ 	{ 0, 0, 0 },
+ };
+ 
+-void
++const struct intel_device_info *
+ intel_detect_chipset(ScrnInfoPtr scrn,
+-		     EntityInfoPtr ent,
+-		     struct pci_device *pci)
++		     EntityInfoPtr ent, struct pci_device *pci)
+ {
+ 	MessageType from = X_PROBED;
+ 	const char *name = NULL;
+@@ -347,6 +348,7 @@
+ 	}
+ 
+ 	scrn->chipset = name;
++	return chipset_info;
+ }
+ 
+ /*
+@@ -481,6 +483,8 @@
+ 	PciChipsets intel_pci_chipsets[NUM_CHIPSETS];
+ 	unsigned i;
+ 
++	chipset_info = (void *)match_data;
++
+ 	if (!has_kernel_mode_setting(device)) {
+ #if KMS_ONLY
+ 		return FALSE;
+@@ -515,7 +519,6 @@
+ 	scrn->driverVersion = INTEL_VERSION;
+ 	scrn->driverName = INTEL_DRIVER_NAME;
+ 	scrn->name = INTEL_NAME;
+-	scrn->driverPrivate = (void *)(match_data | 1);
+ 	scrn->Probe = NULL;
+ 
+ #if !KMS_ONLY
+Index: xserver-xorg-video-intel-2.20.9/src/legacy/i810/i810_driver.c
+===================================================================
+--- xserver-xorg-video-intel-2.20.9.orig/src/legacy/i810/i810_driver.c	2012-10-30 02:54:05.456713161 +0100
++++ xserver-xorg-video-intel-2.20.9/src/legacy/i810/i810_driver.c	2012-10-30 02:54:16.186075606 +0100
+@@ -151,7 +151,7 @@
+ static Bool
+ I810GetRec(ScrnInfoPtr scrn)
+ {
+-   if (((uintptr_t)scrn->driverPrivate & 1) == 0)
++   if (scrn->driverPrivate)
+       return TRUE;
+ 
+    scrn->driverPrivate = xnfcalloc(sizeof(I810Rec), 1);
+Index: xserver-xorg-video-intel-2.20.9/src/sna/sna_driver.c
+===================================================================
+--- xserver-xorg-video-intel-2.20.9.orig/src/sna/sna_driver.c	2012-10-30 02:54:05.456713161 +0100
++++ xserver-xorg-video-intel-2.20.9/src/sna/sna_driver.c	2012-10-30 02:54:16.190077605 +0100
+@@ -407,15 +407,14 @@
+ 
+ 	sna_selftest();
+ 
+-	if (((uintptr_t)scrn->driverPrivate) & 1) {
++	sna = to_sna(scrn);
++	if (sna == NULL) {
+ 		sna = xnfcalloc(sizeof(struct sna), 1);
+ 		if (sna == NULL)
+ 			return FALSE;
+ 
+-		sna->info = (void *)((uintptr_t)scrn->driverPrivate & ~1);
+ 		scrn->driverPrivate = sna;
+ 	}
+-	sna = to_sna(scrn);
+ 	sna->scrn = scrn;
+ 	sna->pEnt = pEnt;
+ 
+@@ -465,7 +464,7 @@
+ 
+ 	sna_setup_capabilities(scrn, fd);
+ 
+-	intel_detect_chipset(scrn, sna->pEnt, sna->PciInfo);
++	sna->info = intel_detect_chipset(scrn, sna->pEnt, sna->PciInfo);
+ 
+ 	kgem_init(&sna->kgem, fd, sna->PciInfo, sna->info->gen);
+ 	if (xf86ReturnOptValBool(sna->Options, OPTION_ACCEL_DISABLE, FALSE)) {

=== modified file 'debian/patches/series'
--- debian/patches/series	2012-10-01 15:39:54 +0000
+++ debian/patches/series	2012-11-05 20:59:20 +0000
@@ -1,1 +1,2 @@
 fix-glamor-check.diff
+fix-ati-hybrid.patch

_______________________________________________
Mailing list: https://launchpad.net/~ubuntu-x-swat
Post to     : ubuntu-x-swat@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ubuntu-x-swat
More help   : https://help.launchpad.net/ListHelp

Reply via email to