|
@@ -1084,7 +1084,7 @@ static void rt2500pci_disable_radio(struct rt2x00_dev *rt2x00dev)
|
|
|
static int rt2500pci_set_state(struct rt2x00_dev *rt2x00dev,
|
|
|
enum dev_state state)
|
|
|
{
|
|
|
- u32 reg;
|
|
|
+ u32 reg, reg2;
|
|
|
unsigned int i;
|
|
|
char put_to_sleep;
|
|
|
char bbp_state;
|
|
@@ -1105,11 +1105,12 @@ static int rt2500pci_set_state(struct rt2x00_dev *rt2x00dev,
|
|
|
* device has entered the correct state.
|
|
|
*/
|
|
|
for (i = 0; i < REGISTER_BUSY_COUNT; i++) {
|
|
|
- rt2x00pci_register_read(rt2x00dev, PWRCSR1, ®);
|
|
|
- bbp_state = rt2x00_get_field32(reg, PWRCSR1_BBP_CURR_STATE);
|
|
|
- rf_state = rt2x00_get_field32(reg, PWRCSR1_RF_CURR_STATE);
|
|
|
+ rt2x00pci_register_read(rt2x00dev, PWRCSR1, ®2);
|
|
|
+ bbp_state = rt2x00_get_field32(reg2, PWRCSR1_BBP_CURR_STATE);
|
|
|
+ rf_state = rt2x00_get_field32(reg2, PWRCSR1_RF_CURR_STATE);
|
|
|
if (bbp_state == state && rf_state == state)
|
|
|
return 0;
|
|
|
+ rt2x00pci_register_write(rt2x00dev, PWRCSR1, reg);
|
|
|
msleep(10);
|
|
|
}
|
|
|
|