rpms/kernel/F-10 drm-intel-fix-vt-switch-hang.patch, NONE, 1.1 kernel.spec, 1.1154, 1.1155
Jarod Wilson
jwilson at fedoraproject.org
Tue Nov 18 20:28:34 UTC 2008
Author: jwilson
Update of /cvs/pkgs/rpms/kernel/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv12299
Modified Files:
kernel.spec
Added Files:
drm-intel-fix-vt-switch-hang.patch
Log Message:
* Tue Nov 18 2008 Jarod Wilson <jarod at redhat.com> 2.6.27.5-119
- Fix hang on VT switch w/compiz on intel graphics (#467332)
drm-intel-fix-vt-switch-hang.patch:
--- NEW FILE drm-intel-fix-vt-switch-hang.patch ---
diff -Naurp linux-2.6.27.noarch/drivers/gpu/drm/drm_drv.c linux-2.6.27.noarch.fix/drivers/gpu/drm/drm_drv.c
--- linux-2.6.27.noarch/drivers/gpu/drm/drm_drv.c 2008-11-18 14:00:28.010882181 -0500
+++ linux-2.6.27.noarch.fix/drivers/gpu/drm/drm_drv.c 2008-11-18 14:05:02.326816339 -0500
@@ -302,6 +302,8 @@ static void drm_cleanup(struct drm_devic
return;
}
+ drm_vblank_cleanup(dev);
+
drm_lastclose(dev);
if (drm_core_has_MTRR(dev) && drm_core_has_AGP(dev) &&
diff -Naurp linux-2.6.27.noarch/drivers/gpu/drm/drm_irq.c linux-2.6.27.noarch.fix/drivers/gpu/drm/drm_irq.c
--- linux-2.6.27.noarch/drivers/gpu/drm/drm_irq.c 2008-11-18 14:00:28.013743068 -0500
+++ linux-2.6.27.noarch.fix/drivers/gpu/drm/drm_irq.c 2008-11-18 14:04:33.574816293 -0500
@@ -94,7 +94,7 @@ static void vblank_disable_fn(unsigned l
}
}
-static void drm_vblank_cleanup(struct drm_device *dev)
+void drm_vblank_cleanup(struct drm_device *dev)
{
/* Bail if the driver didn't call drm_vblank_init() */
if (dev->num_crtcs == 0)
@@ -278,8 +278,6 @@ int drm_irq_uninstall(struct drm_device
free_irq(dev->pdev->irq, dev);
- drm_vblank_cleanup(dev);
-
return 0;
}
EXPORT_SYMBOL(drm_irq_uninstall);
diff -Naurp linux-2.6.27.noarch/drivers/gpu/drm/i915/i915_dma.c linux-2.6.27.noarch.fix/drivers/gpu/drm/i915/i915_dma.c
--- linux-2.6.27.noarch/drivers/gpu/drm/i915/i915_dma.c 2008-11-18 14:00:28.111878144 -0500
+++ linux-2.6.27.noarch.fix/drivers/gpu/drm/i915/i915_dma.c 2008-11-18 14:03:44.108834217 -0500
@@ -867,6 +867,8 @@ int i915_driver_load(struct drm_device *
spin_lock_init(&dev_priv->user_irq_lock);
+ ret = drm_vblank_init(dev, I915_NUM_PIPE);
+
return ret;
}
diff -Naurp linux-2.6.27.noarch/drivers/gpu/drm/i915/i915_drv.h linux-2.6.27.noarch.fix/drivers/gpu/drm/i915/i915_drv.h
--- linux-2.6.27.noarch/drivers/gpu/drm/i915/i915_drv.h 2008-11-18 14:00:28.112880984 -0500
+++ linux-2.6.27.noarch.fix/drivers/gpu/drm/i915/i915_drv.h 2008-11-18 14:02:50.155816341 -0500
@@ -47,6 +47,8 @@ enum pipe {
PIPE_B,
};
+#define I915_NUM_PIPE 2
+
/* Interface history:
*
* 1.1: Original.
diff -Naurp linux-2.6.27.noarch/drivers/gpu/drm/i915/i915_irq.c linux-2.6.27.noarch.fix/drivers/gpu/drm/i915/i915_irq.c
--- linux-2.6.27.noarch/drivers/gpu/drm/i915/i915_irq.c 2008-11-18 14:00:28.021816082 -0500
+++ linux-2.6.27.noarch.fix/drivers/gpu/drm/i915/i915_irq.c 2008-11-18 14:02:31.547690738 -0500
@@ -478,11 +478,6 @@ void i915_driver_irq_preinstall(struct d
int i915_driver_irq_postinstall(struct drm_device *dev)
{
drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
- int ret, num_pipes = 2;
-
- ret = drm_vblank_init(dev, num_pipes);
- if (ret)
- return ret;
dev_priv->vblank_pipe = DRM_I915_VBLANK_PIPE_A | DRM_I915_VBLANK_PIPE_B;
diff -Naurp linux-2.6.27.noarch/include/drm/drmP.h linux-2.6.27.noarch.fix/include/drm/drmP.h
--- linux-2.6.27.noarch/include/drm/drmP.h 2008-11-18 14:00:28.107878728 -0500
+++ linux-2.6.27.noarch.fix/include/drm/drmP.h 2008-11-18 14:02:03.370816158 -0500
@@ -1252,6 +1252,7 @@ extern u32 drm_vblank_count(struct drm_d
extern void drm_handle_vblank(struct drm_device *dev, int crtc);
extern int drm_vblank_get(struct drm_device *dev, int crtc);
extern void drm_vblank_put(struct drm_device *dev, int crtc);
+extern void drm_vblank_cleanup(struct drm_device *dev);
/* Modesetting support */
extern int drm_modeset_ctl(struct drm_device *dev, void *data,
struct drm_file *file_priv);
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/kernel.spec,v
retrieving revision 1.1154
retrieving revision 1.1155
diff -u -r1.1154 -r1.1155
--- kernel.spec 18 Nov 2008 18:13:05 -0000 1.1154
+++ kernel.spec 18 Nov 2008 20:28:03 -0000 1.1155
@@ -665,6 +665,7 @@
Patch1814: drm-modesetting-i915.patch
Patch1815: drm-nouveau.patch
Patch1816: drm-intel-8xx-pae-no-gem.patch
+Patch1817: drm-intel-fix-vt-switch-hang.patch
# kludge to make ich9 e1000 work
Patch2000: linux-2.6-e1000-ich9.patch
@@ -1316,6 +1317,7 @@
#ApplyPatch drm-modesetting-i915.patch
ApplyPatch drm-nouveau.patch
ApplyPatch drm-intel-8xx-pae-no-gem.patch
+ApplyPatch drm-intel-fix-vt-switch-hang.patch
# linux1394 git patches
ApplyPatch linux-2.6-firewire-git-update.patch
@@ -1927,6 +1929,9 @@
%kernel_variant_files -k vmlinux %{with_kdump} kdump
%changelog
+* Tue Nov 18 2008 Jarod Wilson <jarod at redhat.com> 2.6.27.5-119
+- Fix hang on VT switch w/compiz on intel graphics (#467332)
+
* Tue Nov 18 2008 Dave Jones <davej at redhat.com> 2.6.27.5-118
- Disable autofs v3. (obsoleted by v4 some time ago.)
More information about the scm-commits
mailing list