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