Patchwork [Lucid,SRU,0/2] Enable second PCI IDs for Intel B43 graphic

login
register
mail settings
Submitter Stefan Bader
Date Oct. 13, 2010, 3:09 p.m.
Message ID <4CB5CBC5.4030700@canonical.com>
Download mbox | patch
Permalink /patch/67702/
State Accepted
Delegated to: Stefan Bader
Headers show

Comments

Stefan Bader - Oct. 13, 2010, 3:09 p.m.
On 10/13/2010 10:21 AM, Ike Panhc wrote:
> We find there is another device id set for B43 chipset. After adding the device
> id 4E90/4E92 beside 4E40/4E42, the machine works fine with the same
> modification in xserver-xorg-video-intel.
> 
> After reporting to freedesktop bugzilla[1], Chris Wilson said the patch is
> queued for adding this id set and now the adding-ID patch is accepted in
> mainline kernel[2].
> 
> I tried to port on .32 stable kernel but lucid has .33 drm and lots modification
> between these two version. So, I make the backport patches against current lucid
> checkout.
> 
> These patches are available in the git repository at:
>   git://kernel.ubuntu.com/ikepanhc/public.git lp640214lucid
> 
> [1] https://bugs.freedesktop.org/show_bug.cgi?id=30221
> [2] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=41a51428916ab04587bacee2dda61c4a0c4fc02f
> 
> Ike Panhc (2):
>   UBUNTU: SAUCE: agp/intel: Add second set of PCI-IDs for B43
>   UBUNTU: SAUCE: drm/i915: Add second set of PCI-IDs for B43
> 
>  drivers/char/agp/intel-agp.c    |    7 +++++++
>  drivers/gpu/drm/i915/i915_drv.c |    1 +
>  drivers/gpu/drm/i915/i915_drv.h |    3 ++-
>  3 files changed, 10 insertions(+), 1 deletions(-)
> 
> 

Actually Ike, for Lucid the way the patch is split makes not that much sense as
the basic support for B43 has been added with 2.6.32 (while for Karmic you had
the two steps) and the additional support consists of just one update.
So I would rather do that in one patch for the drm33/lucid tree.

Would that combined patch look good for you?

-STefan
Ike Panhc - Oct. 14, 2010, 3:34 a.m.
On 10/13/2010 11:09 PM, Stefan Bader wrote:
> 
> Actually Ike, for Lucid the way the patch is split makes not that much sense as
> the basic support for B43 has been added with 2.6.32 (while for Karmic you had
> the two steps) and the additional support consists of just one update.
> So I would rather do that in one patch for the drm33/lucid tree.
> 
> Would that combined patch look good for you?
> 
> -STefan
> 

Looks great. more easy to tell what the patch for then mine :)
Stefan Bader - Oct. 14, 2010, 7:10 a.m.
On 10/14/2010 05:34 AM, Ike Panhc wrote:
> On 10/13/2010 11:09 PM, Stefan Bader wrote:
>>
>> Actually Ike, for Lucid the way the patch is split makes not that much sense as
>> the basic support for B43 has been added with 2.6.32 (while for Karmic you had
>> the two steps) and the additional support consists of just one update.
>> So I would rather do that in one patch for the drm33/lucid tree.
>>
>> Would that combined patch look good for you?
>>
>> -STefan
>>
> 
> Looks great. more easy to tell what the patch for then mine :)

Thanks, added to the queue then. Unfortunately it may take a bit until
everything flows back.

-Stefan

Patch

From 0510aa6d2693b6a3caf9e89d1bcad7a4dbe3da92 Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri, 17 Sep 2010 08:22:30 +0100
Subject: [PATCH] drm/i915,agp/intel: Add second set of PCI-IDs for B43

There is a second revision of B43 (a desktop gen4 part) floating around,
functionally equivalent to the original B43, so simply add the new
PCI-IDs.

Bugzilla: https://bugs.freedesktop.org/show_bugs.cgi?id=30221
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: stable@kernel.org

BugLink: http://launchpad.net/bugs/640214

(backported from commit 41a51428916ab04587bacee2dda61c4a0c4fc02f upstream)
Signed-off-by: Ike Panhc <ike.pan@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
---
 drivers/char/agp/intel-agp.c    |    7 +++++++
 drivers/gpu/drm/i915/i915_drv.c |    1 +
 drivers/gpu/drm/i915/i915_drv.h |    3 ++-
 3 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c
index 870e6a0..8728ec1 100644
--- a/drivers/char/agp/intel-agp.c
+++ b/drivers/char/agp/intel-agp.c
@@ -49,6 +49,8 @@ 
 #define PCI_DEVICE_ID_INTEL_Q33_IG          0x29D2
 #define PCI_DEVICE_ID_INTEL_B43_HB          0x2E40
 #define PCI_DEVICE_ID_INTEL_B43_IG          0x2E42
+#define PCI_DEVICE_ID_INTEL_B43_1_HB        0x2E90
+#define PCI_DEVICE_ID_INTEL_B43_1_IG        0x2E92
 #define PCI_DEVICE_ID_INTEL_GM45_HB         0x2A40
 #define PCI_DEVICE_ID_INTEL_GM45_IG         0x2A42
 #define PCI_DEVICE_ID_INTEL_IGD_E_HB        0x2E00
@@ -96,6 +98,7 @@ 
 		agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_GM45_HB || \
 		agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_G41_HB || \
 		agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_B43_HB || \
+		agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_B43_1_HB || \
 		agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_IGDNG_D_HB || \
 		agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_IGDNG_M_HB || \
 		agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_IGDNG_MA_HB || \
@@ -1353,6 +1356,7 @@  static void intel_i965_get_gtt_range(int *gtt_offset, int *gtt_size)
 	case PCI_DEVICE_ID_INTEL_G45_HB:
 	case PCI_DEVICE_ID_INTEL_G41_HB:
 	case PCI_DEVICE_ID_INTEL_B43_HB:
+	case PCI_DEVICE_ID_INTEL_B43_1_HB:
 	case PCI_DEVICE_ID_INTEL_IGDNG_D_HB:
 	case PCI_DEVICE_ID_INTEL_IGDNG_M_HB:
 	case PCI_DEVICE_ID_INTEL_IGDNG_MA_HB:
@@ -2352,6 +2356,8 @@  static const struct intel_driver_description {
 	    "G45/G43", NULL, &intel_i965_driver },
 	{ PCI_DEVICE_ID_INTEL_B43_HB, PCI_DEVICE_ID_INTEL_B43_IG, 0,
 	    "B43", NULL, &intel_i965_driver },
+	{ PCI_DEVICE_ID_INTEL_B43_1_HB, PCI_DEVICE_ID_INTEL_B43_1_IG, 0,
+	    "B43", NULL, &intel_i965_driver },
 	{ PCI_DEVICE_ID_INTEL_G41_HB, PCI_DEVICE_ID_INTEL_G41_IG, 0,
 	    "G41", NULL, &intel_i965_driver },
 	{ PCI_DEVICE_ID_INTEL_IGDNG_D_HB, PCI_DEVICE_ID_INTEL_IGDNG_D_IG, 0,
@@ -2564,6 +2570,7 @@  static struct pci_device_id agp_intel_pci_table[] = {
 	ID(PCI_DEVICE_ID_INTEL_G45_HB),
 	ID(PCI_DEVICE_ID_INTEL_G41_HB),
 	ID(PCI_DEVICE_ID_INTEL_B43_HB),
+	ID(PCI_DEVICE_ID_INTEL_B43_1_HB),
 	ID(PCI_DEVICE_ID_INTEL_IGDNG_D_HB),
 	ID(PCI_DEVICE_ID_INTEL_IGDNG_M_HB),
 	ID(PCI_DEVICE_ID_INTEL_IGDNG_MA_HB),
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 73bd7f4..28faa8c 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -164,6 +164,7 @@  const static struct pci_device_id pciidlist[] = {
 	INTEL_VGA_DEVICE(0x2e22, &intel_g45_info),
 	INTEL_VGA_DEVICE(0x2e32, &intel_g45_info),
 	INTEL_VGA_DEVICE(0x2e42, &intel_g45_info),
+	INTEL_VGA_DEVICE(0x2e92, &intel_g45_info),
 	INTEL_VGA_DEVICE(0xa001, &intel_pineview_info),
 	INTEL_VGA_DEVICE(0xa011, &intel_pineview_info),
 	INTEL_VGA_DEVICE(0x0042, &intel_ironlake_d_info),
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index b26d0ed..ecc4fbe 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1067,7 +1067,8 @@  extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
 			 (dev)->pci_device == 0x2E22 ||		\
 			 (dev)->pci_device == 0x2E32 ||		\
 			 (dev)->pci_device == 0x2A42 ||		\
-			 (dev)->pci_device == 0x2E42)
+			 (dev)->pci_device == 0x2E42 ||		\
+			 (dev)->pci_device == 0x2E92)
 
 #define I915_NEED_GFX_HWS(dev)	(INTEL_INFO(dev)->need_gfx_hws)
 
-- 
1.7.0.4