On Tuesday 13 February 2007 23:54, Larry Finger wrote: > The specifications for the bcm43xx driver have been modified. This patch > incorporates these changes in the code, which results in the BCM4311 and > BCM4312 working. The name of one of the PHY parameters, previously known > as "version", has been changed to "analog", short for "analog core version" . > > Signed-off-by: Larry Finger<Larry.Finger@xxxxxxxxxxxx> > --- Sorry for the late review. If this is already applied, please create a patch on top of it. > @@ -835,61 +843,24 @@ static void bcm43xx_phy_initb6(struct bc > struct bcm43xx_phyinfo *phy = bcm43xx_current_phy(bcm); > struct bcm43xx_radioinfo *radio = bcm43xx_current_radio(bcm); > u16 offset, val; > + u8 old_channel; > > bcm43xx_phy_write(bcm, 0x003E, 0x817A); > bcm43xx_radio_write16(bcm, 0x007A, > (bcm43xx_radio_read16(bcm, 0x007A) | 0x0058)); > - if ((radio->manufact == 0x17F) && > - (radio->version == 0x2050) && > - (radio->revision == 3 || > - radio->revision == 4 || > - radio->revision == 5)) { > - bcm43xx_radio_write16(bcm, 0x0051, 0x001F); > - bcm43xx_radio_write16(bcm, 0x0052, 0x0040); > - bcm43xx_radio_write16(bcm, 0x0053, 0x005B); > - bcm43xx_radio_write16(bcm, 0x0054, 0x0098); > + if (radio->revision == 4 || > + radio->revision == 5) { > + bcm43xx_radio_write16(bcm, 0x0051, 0x0037); > + bcm43xx_radio_write16(bcm, 0x0052, 0x0070); > + bcm43xx_radio_write16(bcm, 0x0053, 0x00B3); > + bcm43xx_radio_write16(bcm, 0x0054, 0x009B); > bcm43xx_radio_write16(bcm, 0x005A, 0x0088); > bcm43xx_radio_write16(bcm, 0x005B, 0x0088); > bcm43xx_radio_write16(bcm, 0x005D, 0x0088); > bcm43xx_radio_write16(bcm, 0x005E, 0x0088); > bcm43xx_radio_write16(bcm, 0x007D, 0x0088); Here should also be a "MicrocodeFlagsBitfield", which is HostFlags, write. > bcm43xx_phy_write(bcm, 0x0038, 0x0668); > bcm43xx_radio_set_txpower_bg(bcm, 0xFFFF, 0xFFFF, 0xFFFF); > - if (radio->version == 0x2050) { > - if (radio->revision == 3 || > - radio->revision == 4 || > - radio->revision == 5) > - bcm43xx_phy_write(bcm, 0x005D, bcm43xx_phy_read(bcm, 0x005D) | 0x0003); > - else if (radio->revision <= 2) > - bcm43xx_radio_write16(bcm, 0x005D, 0x000D); > - } > + if (radio->revision <= 5) > + bcm43xx_phy_write(bcm, 0x005D, bcm43xx_phy_read(bcm, 0x005D) | 0x0003); The above should be MaskSet PHYRegister 0x5D with mask 0xFF80 and set with 3 The rest is OK. Thanks for the patch! -- Greetings Michael. - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html