rpms/kernel/F-11 drm-intel-g41.patch, NONE, 1.1 drm-intel-next.patch, 1.7, 1.8 kernel.spec, 1.1593, 1.1594

Kristian Høgsberg krh at fedoraproject.org
Thu May 7 16:48:48 UTC 2009


Author: krh

Update of /cvs/pkgs/rpms/kernel/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv27240

Modified Files:
	kernel.spec 
Added Files:
	drm-intel-g41.patch drm-intel-next.patch 
Log Message:
* Thu May  7 2009 Kristian Høgsberg <krh at redhat.com> 2.6.29.2-132
- drm intel fixes: Add PCI IDs for G41, fix tiling after resume.


drm-intel-g41.patch:

--- NEW FILE drm-intel-g41.patch ---
commit 72021788678523047161e97b3dfed695e802a5fd
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Mon Nov 17 13:58:11 2008 +0800

    drm/i915: add support for G41 chipset
    
    This had been delayed for some time due to failure to work on the one piece
    of G41 hardware we had, and lack of success reports from anybody else.
    Current hardware appears to be OK.
    
    Signed-off-by: Zhenyu Wang <zhenyu.z.wang at intel.com>
    [anholt: hand-applied due to conflicts with IGD patches]
    Signed-off-by: Eric Anholt <eric at anholt.net>

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index d7471fe..2506592 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -787,7 +787,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
 		       (dev)->pci_device == 0x2A42 || \
 		       (dev)->pci_device == 0x2E02 || \
 		       (dev)->pci_device == 0x2E12 || \
-		       (dev)->pci_device == 0x2E22)
+		       (dev)->pci_device == 0x2E22 || \
+		       (dev)->pci_device == 0x2E32)
 
 #define IS_I965GM(dev) ((dev)->pci_device == 0x2A02)
 
@@ -796,6 +797,7 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
 #define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \
 		     (dev)->pci_device == 0x2E12 || \
 		     (dev)->pci_device == 0x2E22 || \
+		     (dev)->pci_device == 0x2E32 || \
 		     IS_GM45(dev))
 
 #define IS_IGDG(dev) ((dev)->pci_device == 0xa001)
diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h
index 9477af0..fc55db7 100644
--- a/include/drm/drm_pciids.h
+++ b/include/drm/drm_pciids.h
@@ -532,6 +532,7 @@
 	{0x8086, 0x2e02, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
 	{0x8086, 0x2e12, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
 	{0x8086, 0x2e22, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
+	{0x8086, 0x2e32, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
 	{0x8086, 0xa001, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
 	{0x8086, 0xa011, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
 	{0x8086, 0x35e8, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \

drm-intel-next.patch:

Index: drm-intel-next.patch
===================================================================
RCS file: drm-intel-next.patch
diff -N drm-intel-next.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ drm-intel-next.patch	7 May 2009 16:48:48 -0000	1.8
@@ -0,0 +1,69 @@
+diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
+index 2506592..b47af07 100644
+--- a/drivers/gpu/drm/i915/i915_drv.h
++++ b/drivers/gpu/drm/i915/i915_drv.h
+@@ -283,6 +283,7 @@ typedef struct drm_i915_private {
+ 	u8 saveAR[21];
+ 	u8 saveDACMASK;
+ 	u8 saveCR[37];
++	uint64_t saveFENCE[16];
+ 
+ 	struct {
+ 		struct drm_mm gtt_space;
+@@ -705,13 +706,8 @@ extern void intel_modeset_cleanup(struct drm_device *dev);
+ #define I915_WRITE16(reg, val)	writel(val, dev_priv->regs + (reg))
+ #define I915_READ8(reg)		readb(dev_priv->regs + (reg))
+ #define I915_WRITE8(reg, val)	writeb(val, dev_priv->regs + (reg))
+-#ifdef writeq
+ #define I915_WRITE64(reg, val)	writeq(val, dev_priv->regs + (reg))
+-#else
+-#define I915_WRITE64(reg, val)	(writel(val, dev_priv->regs + (reg)), \
+-				 writel(upper_32_bits(val), dev_priv->regs + \
+-					(reg) + 4))
+-#endif
++#define I915_READ64(reg)	readq(dev_priv->regs + (reg))
+ #define POSTING_READ(reg)	(void)I915_READ(reg)
+ 
+ #define I915_VERBOSE 0
+diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
+index d669cc2..ce8a213 100644
+--- a/drivers/gpu/drm/i915/i915_suspend.c
++++ b/drivers/gpu/drm/i915/i915_suspend.c
+@@ -349,6 +349,18 @@ int i915_save_state(struct drm_device *dev)
+ 	for (i = 0; i < 3; i++)
+ 		dev_priv->saveSWF2[i] = I915_READ(SWF30 + (i << 2));
+ 
++	/* Fences */
++	if (IS_I965G(dev)) {
++		for (i = 0; i < 16; i++)
++			dev_priv->saveFENCE[i] = I915_READ64(FENCE_REG_965_0 + (i * 8));
++	} else {
++		for (i = 0; i < 8; i++)
++			dev_priv->saveFENCE[i] = I915_READ(FENCE_REG_830_0 + (i * 4));
++
++		if (IS_I945G(dev) || IS_I945GM(dev) || IS_G33(dev))
++			for (i = 0; i < 8; i++)
++				dev_priv->saveFENCE[i+8] = I915_READ(FENCE_REG_945_8 + (i * 4));
++	}
+ 	i915_save_vga(dev);
+ 
+ 	return 0;
+@@ -371,6 +383,18 @@ int i915_restore_state(struct drm_device *dev)
+ 	/* Display arbitration */
+ 	I915_WRITE(DSPARB, dev_priv->saveDSPARB);
+ 
++	/* Fences */
++	if (IS_I965G(dev)) {
++		for (i = 0; i < 16; i++)
++			I915_WRITE64(FENCE_REG_965_0 + (i * 8), dev_priv->saveFENCE[i]);
++	} else {
++		for (i = 0; i < 8; i++)
++			I915_WRITE(FENCE_REG_830_0 + (i * 4), dev_priv->saveFENCE[i]);
++		if (IS_I945G(dev) || IS_I945GM(dev) || IS_G33(dev))
++			for (i = 0; i < 8; i++)
++				I915_WRITE(FENCE_REG_945_8 + (i * 4), dev_priv->saveFENCE[i+8]);
++	}
++
+ 	/* Pipe & plane A info */
+ 	/* Prime the clock */
+ 	if (dev_priv->saveDPLL_A & DPLL_VCO_ENABLE) {


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/kernel.spec,v
retrieving revision 1.1593
retrieving revision 1.1594
diff -u -p -r1.1593 -r1.1594
--- kernel.spec	7 May 2009 00:50:35 -0000	1.1593
+++ kernel.spec	7 May 2009 16:48:48 -0000	1.1594
@@ -692,6 +692,8 @@ Patch1822: drm-intel-gen3-fb-hack.patch
 Patch1823: drm-intel-tiled-front.patch
 Patch1824: drm-intel-hdmi-edid-fix.patch
 Patch1825: drm-intel-tiling-transition.patch
+Patch1826: drm-intel-next.patch
+Patch1827: drm-intel-g41.patch
 
 # kludge to make ich9 e1000 work
 Patch2000: linux-2.6-e1000-ich9.patch
@@ -1345,6 +1347,8 @@ ApplyPatch drm-intel-gen3-fb-hack.patch
 ApplyPatch drm-intel-tiled-front.patch
 ApplyPatch drm-intel-hdmi-edid-fix.patch
 ApplyPatch drm-intel-tiling-transition.patch
+ApplyPatch drm-intel-next.patch
+ApplyPatch drm-intel-g41.patch
 
 # linux1394 git patches
 ApplyPatch linux-2.6-firewire-git-update.patch
@@ -1967,6 +1971,9 @@ fi
 # and build.
 
 %changelog
+* Thu May  7 2009 Kristian Høgsberg <krh at redhat.com> 2.6.29.2-132
+- drm intel fixes: Add PCI IDs for G41, fix tiling after resume.
+
 * Thu May 07 2009 Ben Skeggs <bskeggs at redhat.com> 2.6.29.2-131
 - drm-nouveau.patch: fix bar1 mtrr size
 




More information about the scm-commits mailing list