Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 27922b4260f65d317aabda37e42bbbff > files > 120

kernel-2.6.18-238.el5.src.rpm

From: John Villalovos <jvillalo@redhat.com>
Date: Mon, 20 Apr 2009 11:33:32 -0400
Subject: [agp] add pci ids for new video cards
Message-id: 20090420153332.GA3167@linuxjohn.usersys.redhat.com
O-Subject: [RHEL 5.4 BZ 474513] Add final branding strings for latest EagleLake graphics (McCreary) (like G41) to graphics driver
Bugzilla: 474513
RH-Acked-by: Brian Maly <bmaly@redhat.com>
RH-Acked-by: Pete Zaitcev <zaitcev@redhat.com>
RH-Acked-by: John Feeney <jfeeney@redhat.com>

Patch for:
https://bugzilla.redhat.com/show_bug.cgi?id=474513

This patch adds support for the Intel G41 (EagleLake) graphics chipset to the
kernel.

This has been brew built and all builds passed:
https://brewweb.devel.redhat.com//taskinfo?taskID=1765395

We have tested the kernel produced from Brew on the G41 platform.  With it, X
can start normally and can do 2D operations correctly.

diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c
index 8158400..9e4e7f3 100644
--- a/drivers/char/agp/intel-agp.c
+++ b/drivers/char/agp/intel-agp.c
@@ -38,6 +38,8 @@
 #define PCI_DEVICE_ID_INTEL_Q45_IG          0x2E12
 #define PCI_DEVICE_ID_INTEL_G45_HB          0x2E20
 #define PCI_DEVICE_ID_INTEL_G45_IG          0x2E22
+#define PCI_DEVICE_ID_INTEL_G41_HB          0x2E30
+#define PCI_DEVICE_ID_INTEL_G41_IG          0x2E32
 
 /* cover 915 and 945 variants */
 #define IS_I915 (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_E7221_HB || \
@@ -61,7 +63,8 @@
 #define IS_G4X (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_IGD_E_HB || \
 		agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q45_HB || \
 		agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_G45_HB || \
-		agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_GM45_HB)
+		agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_GM45_HB || \
+		agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_G41_HB)
 
 /* Intel 815 register */
 #define INTEL_815_APCONT	0x51
@@ -995,6 +998,7 @@ static void intel_i965_get_gtt_range(int *gtt_offset, int *gtt_size)
 	case PCI_DEVICE_ID_INTEL_IGD_E_HB:
 	case PCI_DEVICE_ID_INTEL_Q45_HB:
 	case PCI_DEVICE_ID_INTEL_G45_HB:
+	case PCI_DEVICE_ID_INTEL_G41_HB:
 		*gtt_offset = *gtt_size = MB(2);
 		break;
 	default:
@@ -2102,6 +2106,13 @@ static int __devinit agp_intel_probe(struct pci_dev *pdev,
 		} else
 			bridge->driver = NULL;
 		break;
+	case PCI_DEVICE_ID_INTEL_G41_HB:
+		if (find_i830(PCI_DEVICE_ID_INTEL_G41_IG)) {
+			bridge->driver = &intel_i965_driver;
+			name = "G41";
+		} else
+			bridge->driver = NULL;
+		break;
 	default:
 		if (cap_ptr)
 			printk(KERN_WARNING PFX "Unsupported Intel chipset (device id: %04x)\n",
@@ -2271,6 +2282,7 @@ static struct pci_device_id agp_intel_pci_table[] = {
 	ID(PCI_DEVICE_ID_INTEL_IGD_E_HB),
 	ID(PCI_DEVICE_ID_INTEL_Q45_HB),
 	ID(PCI_DEVICE_ID_INTEL_G45_HB),
+	ID(PCI_DEVICE_ID_INTEL_G41_HB),
 	{ }
 };