[kernel] r15289 - in dists/sid/linux-2.6/debian: . patches/bugfix/all patches/series

Ben Hutchings benh at alioth.debian.org
Sun Feb 28 01:17:17 UTC 2010


Author: benh
Date: Sun Feb 28 01:17:13 2010
New Revision: 15289

Log:
agpgart: Reprobe VGA devices when a new GART device is added (Closes: #570229)

Added:
   dists/sid/linux-2.6/debian/patches/bugfix/all/agpgart-Reprobe-VGA-devices-new-GART-device-added.patch
Modified:
   dists/sid/linux-2.6/debian/changelog
   dists/sid/linux-2.6/debian/patches/series/10

Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog	Sat Feb 27 21:59:28 2010	(r15288)
+++ dists/sid/linux-2.6/debian/changelog	Sun Feb 28 01:17:13 2010	(r15289)
@@ -8,6 +8,10 @@
 
   [ Aurelien Jarno ]
   * Fix signal stack alignement on sparc64 (Closes: #569797)
+  
+  [ Ben Hutchings ]
+  * agpgart: Reprobe VGA devices when a new GART device is added
+    (Closes: #570229)
 
  -- maximilian attems <maks at debian.org>  Thu, 25 Feb 2010 13:07:47 +0100
 

Added: dists/sid/linux-2.6/debian/patches/bugfix/all/agpgart-Reprobe-VGA-devices-new-GART-device-added.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/agpgart-Reprobe-VGA-devices-new-GART-device-added.patch	Sun Feb 28 01:17:13 2010	(r15289)
@@ -0,0 +1,64 @@
+From bd754879318076947fd4e18a8df8f3b28da73231 Mon Sep 17 00:00:00 2001
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Sat, 27 Feb 2010 23:41:58 +0000
+Subject: [PATCH] agpgart: Reprobe VGA devices when a new GART device is added
+
+This addresses <http://bugzilla.kernel.org/show_bug.cgi?id=15021>.
+
+DRM drivers may fail to probe their devices when the associated AGP
+GART does not yet have a driver, so we reprobe unbound VGA devices
+when a GART device is added.
+
+Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
+---
+ drivers/char/agp/backend.c |   20 ++++++++++++++++++++
+ 1 files changed, 20 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/char/agp/backend.c b/drivers/char/agp/backend.c
+index c3ab46d..f9680bf 100644
+--- a/drivers/char/agp/backend.c
++++ b/drivers/char/agp/backend.c
+@@ -36,6 +36,7 @@
+ #include <linux/agp_backend.h>
+ #include <linux/agpgart.h>
+ #include <linux/vmalloc.h>
++#include <linux/workqueue.h>
+ #include <asm/io.h>
+ #include "agp.h"
+ 
+@@ -281,6 +282,24 @@ void agp_put_bridge(struct agp_bridge_data *bridge)
+ EXPORT_SYMBOL(agp_put_bridge);
+ 
+ 
++/*
++ * DRM drivers may fail to probe their devices when the associated AGP
++ * GART does not yet have a driver, so we reprobe unbound VGA devices
++ * when a GART device is added.  This problem applies not only to true
++ * AGP devices which would be children of the affected bridge, but
++ * also to PCI Express devices that may be siblings of the GART
++ * device.  Therefore iterate over all PCI VGA devices.
++ */
++static void agp_probe_video(struct work_struct *work)
++{
++	struct pci_dev *pdev = NULL;
++
++	while ((pdev = pci_get_class(0x030000, pdev)) != NULL) {
++		if (!pdev->dev.driver && device_reprobe(&pdev->dev))
++			pr_err(PFX "failed to reprobe %s\n", pci_name(pdev));
++}
++static DECLARE_WORK(agp_probe_video_work, agp_probe_video);
++
+ int agp_add_bridge(struct agp_bridge_data *bridge)
+ {
+ 	int error;
+@@ -324,6 +343,7 @@ int agp_add_bridge(struct agp_bridge_data *bridge)
+ 	}
+ 
+ 	list_add(&bridge->list, &agp_bridges);
++	schedule_work(&agp_probe_video_work);
+ 	return 0;
+ 
+ frontend_err:
+-- 
+1.6.6.2
+

Modified: dists/sid/linux-2.6/debian/patches/series/10
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/10	Sat Feb 27 21:59:28 2010	(r15288)
+++ dists/sid/linux-2.6/debian/patches/series/10	Sun Feb 28 01:17:13 2010	(r15289)
@@ -1,2 +1,3 @@
 + bugfix/all/tcp-fix-ICMP-RTO-war.patch
 + bugfix/sparc/stack-alignment.patch
++ bugfix/all/agpgart-Reprobe-VGA-devices-new-GART-device-added.patch



More information about the Kernel-svn-changes mailing list