On Sunday 17 June 2007, Michael Buesch wrote: > The backplane on the b44 chip seems to have a silicon bug > in the IRQ routing. The ethernet core IRQ routing does not work > with the routing bit returned from the backplaneflag register. > This patch adds a workaround for the b44 chip to use a hardcoded > constant. This constant was also used in the old b44 driver. > > Signed-off-by: Michael Buesch <[EMAIL PROTECTED]> > Cc: Maximilian Engelhardt <[EMAIL PROTECTED]> > Cc: Gary Zambrano <[EMAIL PROTECTED]>
Tested-by: Maximilian Engelhardt <[EMAIL PROTECTED]> > > Index: bu3sch-wireless-dev/drivers/ssb/driver_pcicore.c > =================================================================== > --- bu3sch-wireless-dev.orig/drivers/ssb/driver_pcicore.c 2007-06-17 > 13:35:45.000000000 +0200 +++ > bu3sch-wireless-dev/drivers/ssb/driver_pcicore.c 2007-06-17 > 14:19:05.000000000 +0200 @@ -496,9 +496,15 @@ int > ssb_pcicore_dev_irqvecs_enable(struc > u32 intvec; > > intvec = ssb_read32(pdev, SSB_INTVEC); > - tmp = ssb_read32(dev, SSB_TPSFLAG); > - tmp &= SSB_TPSFLAG_BPFLAG; > - intvec |= tmp; > + if ((bus->chip_id & 0xFF00) == 0x4400) { > + /* Workaround: On the BCM44XX the BPFLAG routing > + * bit is wrong. Use a hardcoded constant. */ > + intvec |= 0x00000002; > + } else { > + tmp = ssb_read32(dev, SSB_TPSFLAG); > + tmp &= SSB_TPSFLAG_BPFLAG; > + intvec |= tmp; > + } > ssb_write32(pdev, SSB_INTVEC, intvec); > } > > > Please apply this to wireless-dev. > This is also most likely the bug Uwe Bugla was > bullshitting about^W^Wreporting. Maxi
signature.asc
Description: This is a digitally signed message part.