Message ID | 1285662354-2669-1-git-send-email-ike.pan@canonical.com |
---|---|
State | Rejected |
Delegated to: | Brad Figg |
Headers | show |
On 09/28/2010 10:25 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. > While adding IDs sounds reasonable for SRU, I am a bit confused by the patch: > 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]. > > This patch is made against Karmic current checkout and only for adding new ids. > > 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=commit;h=41a51428916ab04587bacee2dda61c4a0c4fc02f > > Signed-off-by: Ike Panhc <ike.pan@canonical.com> > --- > drivers/char/agp/intel-agp.c | 8 ++++++++ > drivers/gpu/drm/i915/i915_drv.h | 2 ++ > include/drm/drm_pciids.h | 1 + > 3 files changed, 11 insertions(+), 0 deletions(-) > > diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c > index f150be9..2c09d4c 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,8 @@ > 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_B43_1_HB || \ Why does that add the same line twice? I assume IG is the internal graphics part and HB the host bridge? The rest seems to add the ids to the correct places (as far as one can tell). > 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 +1242,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 +2222,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 +2427,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.h b/drivers/gpu/drm/i915/i915_drv.h > index 9919f9f..a62afae 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -907,6 +907,7 @@ 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 == 0x2E42 || \ > + (dev)->pci_device == 0x2E92 || \ > (dev)->pci_device == 0x0042 || \ > (dev)->pci_device == 0x0046) > It would be simpler to read if upstream had decided to stick with the defines rather than falling back to raw numbers, but that is like it is upstream. Just a thought. -Stefan > @@ -920,6 +921,7 @@ 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 == 0x2E42 || \ > + (dev)->pci_device == 0x2E92 || \ > IS_GM45(dev)) > > #define IS_IGDG(dev) ((dev)->pci_device == 0xa001) > diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h > index 3f6e545..eddcf57 100644 > --- a/include/drm/drm_pciids.h > +++ b/include/drm/drm_pciids.h > @@ -553,6 +553,7 @@ > {0x8086, 0x2e22, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ > {0x8086, 0x2e32, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ > {0x8086, 0x2e42, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ > + {0x8086, 0x2e92, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ > {0x8086, 0xa001, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ > {0x8086, 0xa011, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ > {0x8086, 0x35e8, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
On Tue, Sep 28, 2010 at 04:25:54PM +0800, 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]. > > This patch is made against Karmic current checkout and only for adding new ids. > > 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=commit;h=41a51428916ab04587bacee2dda61c4a0c4fc02f > > Signed-off-by: Ike Panhc <ike.pan@canonical.com> If this commit is in mainline we should be just cherry-picking this as an upstream patch. Though I see this upstream version is different. Is this therefore effectivly a backport to karmic ? > --- > drivers/char/agp/intel-agp.c | 8 ++++++++ > drivers/gpu/drm/i915/i915_drv.h | 2 ++ > include/drm/drm_pciids.h | 1 + > 3 files changed, 11 insertions(+), 0 deletions(-) > > diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c > index f150be9..2c09d4c 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,8 @@ > 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_B43_1_HB || \ Does this not add the new ID twice? I cannot see any difference between these two lines, and to my eye the second is redundant? > 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 +1242,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 +2222,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 +2427,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.h b/drivers/gpu/drm/i915/i915_drv.h > index 9919f9f..a62afae 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -907,6 +907,7 @@ 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 == 0x2E42 || \ > + (dev)->pci_device == 0x2E92 || \ > (dev)->pci_device == 0x0042 || \ > (dev)->pci_device == 0x0046) > > @@ -920,6 +921,7 @@ 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 == 0x2E42 || \ > + (dev)->pci_device == 0x2E92 || \ > IS_GM45(dev)) > > #define IS_IGDG(dev) ((dev)->pci_device == 0xa001) > diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h > index 3f6e545..eddcf57 100644 > --- a/include/drm/drm_pciids.h > +++ b/include/drm/drm_pciids.h > @@ -553,6 +553,7 @@ > {0x8086, 0x2e22, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ > {0x8086, 0x2e32, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ > {0x8086, 0x2e42, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ > + {0x8086, 0x2e92, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ > {0x8086, 0xa001, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ > {0x8086, 0xa011, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ > {0x8086, 0x35e8, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ > -- > 1.7.1 > > > -- > kernel-team mailing list > kernel-team@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/kernel-team
On 09/28/2010 05:15 PM, Stefan Bader wrote: >> + agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_B43_1_HB || \ >> + agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_B43_1_HB || \ > > Why does that add the same line twice? I assume IG is the internal graphics part > and HB the host bridge? The rest seems to add the ids to the correct places (as > far as one can tell). > Sorry, this is my fault. The second line is redundant. Will resend. >> (dev)->pci_device == 0x2E22 || \ >> (dev)->pci_device == 0x2E32 || \ >> (dev)->pci_device == 0x2E42 || \ >> + (dev)->pci_device == 0x2E92 || \ >> (dev)->pci_device == 0x0042 || \ >> (dev)->pci_device == 0x0046) >> > It would be simpler to read if upstream had decided to stick with the defines > rather than falling back to raw numbers, but that is like it is upstream. Just a > thought. > I have this patch remade against karmic not cherry-picked because the drm/i915 has been modified a lot from .31 to .36. I choose to follow .31 way so that the patch can be smaller as it can. On 09/28/2010 05:17 PM, Andy Whitcroft wrote: > > If this commit is in mainline we should be just cherry-picking this as > an upstream patch. Though I see this upstream version is different. Is > this therefore effectivly a backport to karmic ? > Since cherry-pick from upstream brings lots of conflicts, I think this is a backport patch.
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c index f150be9..2c09d4c 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,8 @@ 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_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 +1242,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 +2222,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 +2427,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.h b/drivers/gpu/drm/i915/i915_drv.h index 9919f9f..a62afae 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -907,6 +907,7 @@ 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 == 0x2E42 || \ + (dev)->pci_device == 0x2E92 || \ (dev)->pci_device == 0x0042 || \ (dev)->pci_device == 0x0046) @@ -920,6 +921,7 @@ 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 == 0x2E42 || \ + (dev)->pci_device == 0x2E92 || \ IS_GM45(dev)) #define IS_IGDG(dev) ((dev)->pci_device == 0xa001) diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h index 3f6e545..eddcf57 100644 --- a/include/drm/drm_pciids.h +++ b/include/drm/drm_pciids.h @@ -553,6 +553,7 @@ {0x8086, 0x2e22, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ {0x8086, 0x2e32, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ {0x8086, 0x2e42, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ + {0x8086, 0x2e92, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ {0x8086, 0xa001, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ {0x8086, 0xa011, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \ {0x8086, 0x35e8, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_DISPLAY_VGA << 8, 0xffff00, 0}, \
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]. This patch is made against Karmic current checkout and only for adding new ids. 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=commit;h=41a51428916ab04587bacee2dda61c4a0c4fc02f Signed-off-by: Ike Panhc <ike.pan@canonical.com> --- drivers/char/agp/intel-agp.c | 8 ++++++++ drivers/gpu/drm/i915/i915_drv.h | 2 ++ include/drm/drm_pciids.h | 1 + 3 files changed, 11 insertions(+), 0 deletions(-)