static int b43_aphy_op_switch_channel(struct b43_wldev *dev, unsigned int new_channel) { if (new_channel > 200) return -EINVAL; aphy_channel_switch(dev, new_channel); return 0; }
void b43_radio_init2060(struct b43_wldev *dev) { b43_radio_write16(dev, 0x0004, 0x00C0); b43_radio_write16(dev, 0x0005, 0x0008); b43_radio_write16(dev, 0x0009, 0x0040); b43_radio_write16(dev, 0x0005, 0x00AA); b43_radio_write16(dev, 0x0032, 0x008F); b43_radio_write16(dev, 0x0006, 0x008F); b43_radio_write16(dev, 0x0034, 0x008F); b43_radio_write16(dev, 0x002C, 0x0007); b43_radio_write16(dev, 0x0082, 0x0080); b43_radio_write16(dev, 0x0080, 0x0000); b43_radio_write16(dev, 0x003F, 0x00DA); b43_radio_write16(dev, 0x0005, b43_radio_read16(dev, 0x0005) & ~0x0008); b43_radio_write16(dev, 0x0081, b43_radio_read16(dev, 0x0081) & ~0x0010); b43_radio_write16(dev, 0x0081, b43_radio_read16(dev, 0x0081) & ~0x0020); b43_radio_write16(dev, 0x0081, b43_radio_read16(dev, 0x0081) & ~0x0020); msleep(1); /* delay 400usec */ b43_radio_write16(dev, 0x0081, (b43_radio_read16(dev, 0x0081) & ~0x0020) | 0x0010); msleep(1); /* delay 400usec */ b43_radio_write16(dev, 0x0005, (b43_radio_read16(dev, 0x0005) & ~0x0008) | 0x0008); b43_radio_write16(dev, 0x0085, b43_radio_read16(dev, 0x0085) & ~0x0010); b43_radio_write16(dev, 0x0005, b43_radio_read16(dev, 0x0005) & ~0x0008); b43_radio_write16(dev, 0x0081, b43_radio_read16(dev, 0x0081) & ~0x0040); b43_radio_write16(dev, 0x0081, (b43_radio_read16(dev, 0x0081) & ~0x0040) | 0x0040); b43_radio_write16(dev, 0x0005, (b43_radio_read16(dev, 0x0081) & ~0x0008) | 0x0008); b43_phy_write(dev, 0x0063, 0xDDC6); b43_phy_write(dev, 0x0069, 0x07BE); b43_phy_write(dev, 0x006A, 0x0000); aphy_channel_switch(dev, dev->phy.ops->get_default_chan(dev)); msleep(1); }