On Sunday 30 August 2009 02:15:55 Gábor Stefanik wrote: > static void lpphy_pr41573_workaround(struct b43_wldev *dev) > { > struct b43_phy_lp *lpphy = dev->phy.lp; > @@ -1357,28 +1488,440 @@ static void lpphy_pr41573_workaround(struct b43_wldev *dev) > b43_lptab_read_bulk(dev, B43_LPTAB32(7, 0x140), > saved_tab_size, saved_tab); > } > + b43_put_phy_into_reset(dev); Are you sure you really want this? This function completely disables the PHY on the backplane and keeps the physical PHY reset pin asserted (even after return from the function). So the PHY will physically be powered down from this point on. The following PHY accesses could even hang the machine, because the PHY won't respond to register accesses anymore. We currently only use this function on A/G Multi-PHY devices to permanently hard-disable the PHY that's not used. > + b43_phy_mask(dev, B43_LPPHY_AFE_CTL_OVR, 0xFFF8); > + lpphy_table_init(dev); //FIXME is table init needed? > + lpphy_baseband_init(dev); > + b43_lpphy_op_software_rfkill(dev, false); > + lpphy_set_tx_power_control(dev, B43_LPPHY_TXPCTL_OFF); > + if (dev->phy.rev < 2) { > + b43_lptab_write_bulk(dev, B43_LPTAB32(10, 0x140), > + saved_tab_size, saved_tab); > + } else { > + b43_lptab_write_bulk(dev, B43_LPTAB32(7, 0x140), > + saved_tab_size, saved_tab); > + } > + b43_write16(dev, B43_MMIO_CHANNEL, lpphy->channel); > + lpphy->tssi_npt = tssi_npt; > + lpphy->tssi_idx = tssi_idx; > + lpphy_set_analog_filter(dev, lpphy->channel); > + if (tx_pwr_idx_over != -1) > + lpphy_set_tx_power_by_index(dev, tx_pwr_idx_over); > + if (lpphy->rc_cap) > + lpphy_set_rc_cap(dev); > + b43_lpphy_op_set_rx_antenna(dev, lpphy->antenna); > + lpphy_set_tx_power_control(dev, txpctl_mode); > + kfree(saved_tab); > +} -- 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