Patchwork [1/2] UBUNTU: SAUCE: agp/intel: Add second set of PCI-IDs for B43

login
register
mail settings
Submitter Ike Panhc
Date Oct. 4, 2010, 8:48 a.m.
Message ID <1286182110-5883-1-git-send-email-ike.pan@canonical.com>
Download mbox | patch
Permalink /patch/66625/
State Accepted
Delegated to: Brad Figg
Headers show

Comments

Ike Panhc - Oct. 4, 2010, 8:48 a.m.
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 the patch is accepted in mainline kernel[2].

Upstream codes has been modified for more easy maintaining. Cherry-pick from
upstream will cause line missing and conflicts. So I make the backport patches
for Karmic kernel in the same way when the first IDs added into kernel[3].

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

[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
[3] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=38d8a95621b20ed7868e232a35a26ee61bdcae6f

Signed-off-by: Ike Panhc <ike.pan@canonical.com>
---
 drivers/char/agp/intel-agp.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
Brad Figg - Oct. 4, 2010, 6:28 p.m.
Applied to the Karmic master linux repo.

On 10/04/2010 01:48 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 the patch is accepted in mainline kernel[2].
>
> Upstream codes has been modified for more easy maintaining. Cherry-pick from
> upstream will cause line missing and conflicts. So I make the backport patches
> for Karmic kernel in the same way when the first IDs added into kernel[3].
>
> BugLink: http://launchpad.net/bugs/640214
>
> [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
> [3] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=38d8a95621b20ed7868e232a35a26ee61bdcae6f
>
> Signed-off-by: Ike Panhc<ike.pan@canonical.com>
> ---
>   drivers/char/agp/intel-agp.c |    7 +++++++
>   1 files changed, 7 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c
> index f150be9..1bf8cb4 100644
> --- a/drivers/char/agp/intel-agp.c
> +++ b/drivers/char/agp/intel-agp.c
> @@ -38,6 +38,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
> @@ -85,6 +87,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 || \
> @@ -1238,6 +1241,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:
> @@ -2217,6 +2221,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,
> @@ -2420,6 +2426,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),

Patch

diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c
index f150be9..1bf8cb4 100644
--- a/drivers/char/agp/intel-agp.c
+++ b/drivers/char/agp/intel-agp.c
@@ -38,6 +38,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
@@ -85,6 +87,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 || \
@@ -1238,6 +1241,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:
@@ -2217,6 +2221,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,
@@ -2420,6 +2426,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),