diff options
Diffstat (limited to 'drivers/net/wireless/ralink/rt2x00/rt73usb.c')
| -rw-r--r-- | drivers/net/wireless/ralink/rt2x00/rt73usb.c | 189 | 
1 files changed, 96 insertions, 93 deletions
| diff --git a/drivers/net/wireless/ralink/rt2x00/rt73usb.c b/drivers/net/wireless/ralink/rt2x00/rt73usb.c index bb8d307a789f..fd913222abd1 100644 --- a/drivers/net/wireless/ralink/rt2x00/rt73usb.c +++ b/drivers/net/wireless/ralink/rt2x00/rt73usb.c @@ -84,10 +84,11 @@ static void rt73usb_bbp_write(struct rt2x00_dev *rt2x00dev,  	mutex_unlock(&rt2x00dev->csr_mutex);  } -static void rt73usb_bbp_read(struct rt2x00_dev *rt2x00dev, -			     const unsigned int word, u8 *value) +static u8 rt73usb_bbp_read(struct rt2x00_dev *rt2x00dev, +			   const unsigned int word)  {  	u32 reg; +	u8 value;  	mutex_lock(&rt2x00dev->csr_mutex); @@ -110,9 +111,11 @@ static void rt73usb_bbp_read(struct rt2x00_dev *rt2x00dev,  		WAIT_FOR_BBP(rt2x00dev, ®);  	} -	*value = rt2x00_get_field32(reg, PHY_CSR3_VALUE); +	value = rt2x00_get_field32(reg, PHY_CSR3_VALUE);  	mutex_unlock(&rt2x00dev->csr_mutex); + +	return value;  }  static void rt73usb_rf_write(struct rt2x00_dev *rt2x00dev, @@ -185,7 +188,7 @@ static int rt73usb_rfkill_poll(struct rt2x00_dev *rt2x00dev)  {  	u32 reg; -	rt2x00usb_register_read(rt2x00dev, MAC_CSR13, ®); +	reg = rt2x00usb_register_read(rt2x00dev, MAC_CSR13);  	return rt2x00_get_field32(reg, MAC_CSR13_VAL7);  } @@ -238,7 +241,7 @@ static int rt73usb_blink_set(struct led_classdev *led_cdev,  	    container_of(led_cdev, struct rt2x00_led, led_dev);  	u32 reg; -	rt2x00usb_register_read(led->rt2x00dev, MAC_CSR14, ®); +	reg = rt2x00usb_register_read(led->rt2x00dev, MAC_CSR14);  	rt2x00_set_field32(®, MAC_CSR14_ON_PERIOD, *delay_on);  	rt2x00_set_field32(®, MAC_CSR14_OFF_PERIOD, *delay_off);  	rt2x00usb_register_write(led->rt2x00dev, MAC_CSR14, reg); @@ -283,7 +286,7 @@ static int rt73usb_config_shared_key(struct rt2x00_dev *rt2x00dev,  		 */  		mask = (0xf << crypto->bssidx); -		rt2x00usb_register_read(rt2x00dev, SEC_CSR0, ®); +		reg = rt2x00usb_register_read(rt2x00dev, SEC_CSR0);  		reg &= mask;  		if (reg && reg == mask) @@ -316,14 +319,14 @@ static int rt73usb_config_shared_key(struct rt2x00_dev *rt2x00dev,  			field.bit_offset = (3 * key->hw_key_idx);  			field.bit_mask = 0x7 << field.bit_offset; -			rt2x00usb_register_read(rt2x00dev, SEC_CSR1, ®); +			reg = rt2x00usb_register_read(rt2x00dev, SEC_CSR1);  			rt2x00_set_field32(®, field, crypto->cipher);  			rt2x00usb_register_write(rt2x00dev, SEC_CSR1, reg);  		} else {  			field.bit_offset = (3 * (key->hw_key_idx - 8));  			field.bit_mask = 0x7 << field.bit_offset; -			rt2x00usb_register_read(rt2x00dev, SEC_CSR5, ®); +			reg = rt2x00usb_register_read(rt2x00dev, SEC_CSR5);  			rt2x00_set_field32(®, field, crypto->cipher);  			rt2x00usb_register_write(rt2x00dev, SEC_CSR5, reg);  		} @@ -348,7 +351,7 @@ static int rt73usb_config_shared_key(struct rt2x00_dev *rt2x00dev,  	 */  	mask = 1 << key->hw_key_idx; -	rt2x00usb_register_read(rt2x00dev, SEC_CSR0, ®); +	reg = rt2x00usb_register_read(rt2x00dev, SEC_CSR0);  	if (crypto->cmd == SET_KEY)  		reg |= mask;  	else if (crypto->cmd == DISABLE_KEY) @@ -377,10 +380,10 @@ static int rt73usb_config_pairwise_key(struct rt2x00_dev *rt2x00dev,  		 * When both registers are full, we drop the key,  		 * otherwise we use the first invalid entry.  		 */ -		rt2x00usb_register_read(rt2x00dev, SEC_CSR2, ®); +		reg = rt2x00usb_register_read(rt2x00dev, SEC_CSR2);  		if (reg && reg == ~0) {  			key->hw_key_idx = 32; -			rt2x00usb_register_read(rt2x00dev, SEC_CSR3, ®); +			reg = rt2x00usb_register_read(rt2x00dev, SEC_CSR3);  			if (reg && reg == ~0)  				return -ENOSPC;  		} @@ -417,7 +420,7 @@ static int rt73usb_config_pairwise_key(struct rt2x00_dev *rt2x00dev,  		 * without this received frames will not be decrypted  		 * by the hardware.  		 */ -		rt2x00usb_register_read(rt2x00dev, SEC_CSR4, ®); +		reg = rt2x00usb_register_read(rt2x00dev, SEC_CSR4);  		reg |= (1 << crypto->bssidx);  		rt2x00usb_register_write(rt2x00dev, SEC_CSR4, reg); @@ -442,7 +445,7 @@ static int rt73usb_config_pairwise_key(struct rt2x00_dev *rt2x00dev,  	if (key->hw_key_idx < 32) {  		mask = 1 << key->hw_key_idx; -		rt2x00usb_register_read(rt2x00dev, SEC_CSR2, ®); +		reg = rt2x00usb_register_read(rt2x00dev, SEC_CSR2);  		if (crypto->cmd == SET_KEY)  			reg |= mask;  		else if (crypto->cmd == DISABLE_KEY) @@ -451,7 +454,7 @@ static int rt73usb_config_pairwise_key(struct rt2x00_dev *rt2x00dev,  	} else {  		mask = 1 << (key->hw_key_idx - 32); -		rt2x00usb_register_read(rt2x00dev, SEC_CSR3, ®); +		reg = rt2x00usb_register_read(rt2x00dev, SEC_CSR3);  		if (crypto->cmd == SET_KEY)  			reg |= mask;  		else if (crypto->cmd == DISABLE_KEY) @@ -473,7 +476,7 @@ static void rt73usb_config_filter(struct rt2x00_dev *rt2x00dev,  	 * and broadcast frames will always be accepted since  	 * there is no filter for it at this time.  	 */ -	rt2x00usb_register_read(rt2x00dev, TXRX_CSR0, ®); +	reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR0);  	rt2x00_set_field32(®, TXRX_CSR0_DROP_CRC,  			   !(filter_flags & FIF_FCSFAIL));  	rt2x00_set_field32(®, TXRX_CSR0_DROP_PHYSICAL, @@ -505,7 +508,7 @@ static void rt73usb_config_intf(struct rt2x00_dev *rt2x00dev,  		/*  		 * Enable synchronisation.  		 */ -		rt2x00usb_register_read(rt2x00dev, TXRX_CSR9, ®); +		reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR9);  		rt2x00_set_field32(®, TXRX_CSR9_TSF_SYNC, conf->sync);  		rt2x00usb_register_write(rt2x00dev, TXRX_CSR9, reg);  	} @@ -535,13 +538,13 @@ static void rt73usb_config_erp(struct rt2x00_dev *rt2x00dev,  {  	u32 reg; -	rt2x00usb_register_read(rt2x00dev, TXRX_CSR0, ®); +	reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR0);  	rt2x00_set_field32(®, TXRX_CSR0_RX_ACK_TIMEOUT, 0x32);  	rt2x00_set_field32(®, TXRX_CSR0_TSF_OFFSET, IEEE80211_HEADER);  	rt2x00usb_register_write(rt2x00dev, TXRX_CSR0, reg);  	if (changed & BSS_CHANGED_ERP_PREAMBLE) { -		rt2x00usb_register_read(rt2x00dev, TXRX_CSR4, ®); +		reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR4);  		rt2x00_set_field32(®, TXRX_CSR4_AUTORESPOND_ENABLE, 1);  		rt2x00_set_field32(®, TXRX_CSR4_AUTORESPOND_PREAMBLE,  				   !!erp->short_preamble); @@ -553,18 +556,18 @@ static void rt73usb_config_erp(struct rt2x00_dev *rt2x00dev,  					 erp->basic_rates);  	if (changed & BSS_CHANGED_BEACON_INT) { -		rt2x00usb_register_read(rt2x00dev, TXRX_CSR9, ®); +		reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR9);  		rt2x00_set_field32(®, TXRX_CSR9_BEACON_INTERVAL,  				   erp->beacon_int * 16);  		rt2x00usb_register_write(rt2x00dev, TXRX_CSR9, reg);  	}  	if (changed & BSS_CHANGED_ERP_SLOT) { -		rt2x00usb_register_read(rt2x00dev, MAC_CSR9, ®); +		reg = rt2x00usb_register_read(rt2x00dev, MAC_CSR9);  		rt2x00_set_field32(®, MAC_CSR9_SLOT_TIME, erp->slot_time);  		rt2x00usb_register_write(rt2x00dev, MAC_CSR9, reg); -		rt2x00usb_register_read(rt2x00dev, MAC_CSR8, ®); +		reg = rt2x00usb_register_read(rt2x00dev, MAC_CSR8);  		rt2x00_set_field32(®, MAC_CSR8_SIFS, erp->sifs);  		rt2x00_set_field32(®, MAC_CSR8_SIFS_AFTER_RX_OFDM, 3);  		rt2x00_set_field32(®, MAC_CSR8_EIFS, erp->eifs); @@ -580,9 +583,9 @@ static void rt73usb_config_antenna_5x(struct rt2x00_dev *rt2x00dev,  	u8 r77;  	u8 temp; -	rt73usb_bbp_read(rt2x00dev, 3, &r3); -	rt73usb_bbp_read(rt2x00dev, 4, &r4); -	rt73usb_bbp_read(rt2x00dev, 77, &r77); +	r3 = rt73usb_bbp_read(rt2x00dev, 3); +	r4 = rt73usb_bbp_read(rt2x00dev, 4); +	r77 = rt73usb_bbp_read(rt2x00dev, 77);  	rt2x00_set_field8(&r3, BBP_R3_SMART_MODE, 0); @@ -627,9 +630,9 @@ static void rt73usb_config_antenna_2x(struct rt2x00_dev *rt2x00dev,  	u8 r4;  	u8 r77; -	rt73usb_bbp_read(rt2x00dev, 3, &r3); -	rt73usb_bbp_read(rt2x00dev, 4, &r4); -	rt73usb_bbp_read(rt2x00dev, 77, &r77); +	r3 = rt73usb_bbp_read(rt2x00dev, 3); +	r4 = rt73usb_bbp_read(rt2x00dev, 4); +	r77 = rt73usb_bbp_read(rt2x00dev, 77);  	rt2x00_set_field8(&r3, BBP_R3_SMART_MODE, 0);  	rt2x00_set_field8(&r4, BBP_R4_RX_FRAME_END, @@ -715,7 +718,7 @@ static void rt73usb_config_ant(struct rt2x00_dev *rt2x00dev,  	for (i = 0; i < ARRAY_SIZE(antenna_sel_a); i++)  		rt73usb_bbp_write(rt2x00dev, sel[i].word, sel[i].value[lna]); -	rt2x00usb_register_read(rt2x00dev, PHY_CSR0, ®); +	reg = rt2x00usb_register_read(rt2x00dev, PHY_CSR0);  	rt2x00_set_field32(®, PHY_CSR0_PA_PE_BG,  			   (rt2x00dev->curr_band == NL80211_BAND_2GHZ)); @@ -740,10 +743,10 @@ static void rt73usb_config_lna_gain(struct rt2x00_dev *rt2x00dev,  		if (rt2x00_has_cap_external_lna_bg(rt2x00dev))  			lna_gain += 14; -		rt2x00_eeprom_read(rt2x00dev, EEPROM_RSSI_OFFSET_BG, &eeprom); +		eeprom = rt2x00_eeprom_read(rt2x00dev, EEPROM_RSSI_OFFSET_BG);  		lna_gain -= rt2x00_get_field16(eeprom, EEPROM_RSSI_OFFSET_BG_1);  	} else { -		rt2x00_eeprom_read(rt2x00dev, EEPROM_RSSI_OFFSET_A, &eeprom); +		eeprom = rt2x00_eeprom_read(rt2x00dev, EEPROM_RSSI_OFFSET_A);  		lna_gain -= rt2x00_get_field16(eeprom, EEPROM_RSSI_OFFSET_A_1);  	} @@ -762,7 +765,7 @@ static void rt73usb_config_channel(struct rt2x00_dev *rt2x00dev,  	smart = !(rt2x00_rf(rt2x00dev, RF5225) || rt2x00_rf(rt2x00dev, RF2527)); -	rt73usb_bbp_read(rt2x00dev, 3, &r3); +	r3 = rt73usb_bbp_read(rt2x00dev, 3);  	rt2x00_set_field8(&r3, BBP_R3_SMART_MODE, smart);  	rt73usb_bbp_write(rt2x00dev, 3, r3); @@ -796,10 +799,10 @@ static void rt73usb_config_txpower(struct rt2x00_dev *rt2x00dev,  {  	struct rf_channel rf; -	rt2x00_rf_read(rt2x00dev, 1, &rf.rf1); -	rt2x00_rf_read(rt2x00dev, 2, &rf.rf2); -	rt2x00_rf_read(rt2x00dev, 3, &rf.rf3); -	rt2x00_rf_read(rt2x00dev, 4, &rf.rf4); +	rf.rf1 = rt2x00_rf_read(rt2x00dev, 1); +	rf.rf2 = rt2x00_rf_read(rt2x00dev, 2); +	rf.rf3 = rt2x00_rf_read(rt2x00dev, 3); +	rf.rf4 = rt2x00_rf_read(rt2x00dev, 4);  	rt73usb_config_channel(rt2x00dev, &rf, txpower);  } @@ -809,7 +812,7 @@ static void rt73usb_config_retry_limit(struct rt2x00_dev *rt2x00dev,  {  	u32 reg; -	rt2x00usb_register_read(rt2x00dev, TXRX_CSR4, ®); +	reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR4);  	rt2x00_set_field32(®, TXRX_CSR4_OFDM_TX_RATE_DOWN, 1);  	rt2x00_set_field32(®, TXRX_CSR4_OFDM_TX_RATE_STEP, 0);  	rt2x00_set_field32(®, TXRX_CSR4_OFDM_TX_FALLBACK_CCK, 0); @@ -829,7 +832,7 @@ static void rt73usb_config_ps(struct rt2x00_dev *rt2x00dev,  	u32 reg;  	if (state == STATE_SLEEP) { -		rt2x00usb_register_read(rt2x00dev, MAC_CSR11, ®); +		reg = rt2x00usb_register_read(rt2x00dev, MAC_CSR11);  		rt2x00_set_field32(®, MAC_CSR11_DELAY_AFTER_TBCN,  				   rt2x00dev->beacon_int - 10);  		rt2x00_set_field32(®, MAC_CSR11_TBCN_BEFORE_WAKEUP, @@ -846,7 +849,7 @@ static void rt73usb_config_ps(struct rt2x00_dev *rt2x00dev,  		rt2x00usb_vendor_request_sw(rt2x00dev, USB_DEVICE_MODE, 0,  					    USB_MODE_SLEEP, REGISTER_TIMEOUT);  	} else { -		rt2x00usb_register_read(rt2x00dev, MAC_CSR11, ®); +		reg = rt2x00usb_register_read(rt2x00dev, MAC_CSR11);  		rt2x00_set_field32(®, MAC_CSR11_DELAY_AFTER_TBCN, 0);  		rt2x00_set_field32(®, MAC_CSR11_TBCN_BEFORE_WAKEUP, 0);  		rt2x00_set_field32(®, MAC_CSR11_AUTOWAKE, 0); @@ -888,13 +891,13 @@ static void rt73usb_link_stats(struct rt2x00_dev *rt2x00dev,  	/*  	 * Update FCS error count from register.  	 */ -	rt2x00usb_register_read(rt2x00dev, STA_CSR0, ®); +	reg = rt2x00usb_register_read(rt2x00dev, STA_CSR0);  	qual->rx_failed = rt2x00_get_field32(reg, STA_CSR0_FCS_ERROR);  	/*  	 * Update False CCA count from register.  	 */ -	rt2x00usb_register_read(rt2x00dev, STA_CSR1, ®); +	reg = rt2x00usb_register_read(rt2x00dev, STA_CSR1);  	qual->false_cca = rt2x00_get_field32(reg, STA_CSR1_FALSE_CCA_ERROR);  } @@ -1025,12 +1028,12 @@ static void rt73usb_start_queue(struct data_queue *queue)  	switch (queue->qid) {  	case QID_RX: -		rt2x00usb_register_read(rt2x00dev, TXRX_CSR0, ®); +		reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR0);  		rt2x00_set_field32(®, TXRX_CSR0_DISABLE_RX, 0);  		rt2x00usb_register_write(rt2x00dev, TXRX_CSR0, reg);  		break;  	case QID_BEACON: -		rt2x00usb_register_read(rt2x00dev, TXRX_CSR9, ®); +		reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR9);  		rt2x00_set_field32(®, TXRX_CSR9_TSF_TICKING, 1);  		rt2x00_set_field32(®, TXRX_CSR9_TBTT_ENABLE, 1);  		rt2x00_set_field32(®, TXRX_CSR9_BEACON_GEN, 1); @@ -1048,12 +1051,12 @@ static void rt73usb_stop_queue(struct data_queue *queue)  	switch (queue->qid) {  	case QID_RX: -		rt2x00usb_register_read(rt2x00dev, TXRX_CSR0, ®); +		reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR0);  		rt2x00_set_field32(®, TXRX_CSR0_DISABLE_RX, 1);  		rt2x00usb_register_write(rt2x00dev, TXRX_CSR0, reg);  		break;  	case QID_BEACON: -		rt2x00usb_register_read(rt2x00dev, TXRX_CSR9, ®); +		reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR9);  		rt2x00_set_field32(®, TXRX_CSR9_TSF_TICKING, 0);  		rt2x00_set_field32(®, TXRX_CSR9_TBTT_ENABLE, 0);  		rt2x00_set_field32(®, TXRX_CSR9_BEACON_GEN, 0); @@ -1112,7 +1115,7 @@ static int rt73usb_load_firmware(struct rt2x00_dev *rt2x00dev,  	 * Wait for stable hardware.  	 */  	for (i = 0; i < 100; i++) { -		rt2x00usb_register_read(rt2x00dev, MAC_CSR0, ®); +		reg = rt2x00usb_register_read(rt2x00dev, MAC_CSR0);  		if (reg)  			break;  		msleep(1); @@ -1150,13 +1153,13 @@ static int rt73usb_init_registers(struct rt2x00_dev *rt2x00dev)  {  	u32 reg; -	rt2x00usb_register_read(rt2x00dev, TXRX_CSR0, ®); +	reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR0);  	rt2x00_set_field32(®, TXRX_CSR0_AUTO_TX_SEQ, 1);  	rt2x00_set_field32(®, TXRX_CSR0_DISABLE_RX, 0);  	rt2x00_set_field32(®, TXRX_CSR0_TX_WITHOUT_WAITING, 0);  	rt2x00usb_register_write(rt2x00dev, TXRX_CSR0, reg); -	rt2x00usb_register_read(rt2x00dev, TXRX_CSR1, ®); +	reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR1);  	rt2x00_set_field32(®, TXRX_CSR1_BBP_ID0, 47); /* CCK Signal */  	rt2x00_set_field32(®, TXRX_CSR1_BBP_ID0_VALID, 1);  	rt2x00_set_field32(®, TXRX_CSR1_BBP_ID1, 30); /* Rssi */ @@ -1170,7 +1173,7 @@ static int rt73usb_init_registers(struct rt2x00_dev *rt2x00dev)  	/*  	 * CCK TXD BBP registers  	 */ -	rt2x00usb_register_read(rt2x00dev, TXRX_CSR2, ®); +	reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR2);  	rt2x00_set_field32(®, TXRX_CSR2_BBP_ID0, 13);  	rt2x00_set_field32(®, TXRX_CSR2_BBP_ID0_VALID, 1);  	rt2x00_set_field32(®, TXRX_CSR2_BBP_ID1, 12); @@ -1184,7 +1187,7 @@ static int rt73usb_init_registers(struct rt2x00_dev *rt2x00dev)  	/*  	 * OFDM TXD BBP registers  	 */ -	rt2x00usb_register_read(rt2x00dev, TXRX_CSR3, ®); +	reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR3);  	rt2x00_set_field32(®, TXRX_CSR3_BBP_ID0, 7);  	rt2x00_set_field32(®, TXRX_CSR3_BBP_ID0_VALID, 1);  	rt2x00_set_field32(®, TXRX_CSR3_BBP_ID1, 6); @@ -1193,21 +1196,21 @@ static int rt73usb_init_registers(struct rt2x00_dev *rt2x00dev)  	rt2x00_set_field32(®, TXRX_CSR3_BBP_ID2_VALID, 1);  	rt2x00usb_register_write(rt2x00dev, TXRX_CSR3, reg); -	rt2x00usb_register_read(rt2x00dev, TXRX_CSR7, ®); +	reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR7);  	rt2x00_set_field32(®, TXRX_CSR7_ACK_CTS_6MBS, 59);  	rt2x00_set_field32(®, TXRX_CSR7_ACK_CTS_9MBS, 53);  	rt2x00_set_field32(®, TXRX_CSR7_ACK_CTS_12MBS, 49);  	rt2x00_set_field32(®, TXRX_CSR7_ACK_CTS_18MBS, 46);  	rt2x00usb_register_write(rt2x00dev, TXRX_CSR7, reg); -	rt2x00usb_register_read(rt2x00dev, TXRX_CSR8, ®); +	reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR8);  	rt2x00_set_field32(®, TXRX_CSR8_ACK_CTS_24MBS, 44);  	rt2x00_set_field32(®, TXRX_CSR8_ACK_CTS_36MBS, 42);  	rt2x00_set_field32(®, TXRX_CSR8_ACK_CTS_48MBS, 42);  	rt2x00_set_field32(®, TXRX_CSR8_ACK_CTS_54MBS, 42);  	rt2x00usb_register_write(rt2x00dev, TXRX_CSR8, reg); -	rt2x00usb_register_read(rt2x00dev, TXRX_CSR9, ®); +	reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR9);  	rt2x00_set_field32(®, TXRX_CSR9_BEACON_INTERVAL, 0);  	rt2x00_set_field32(®, TXRX_CSR9_TSF_TICKING, 0);  	rt2x00_set_field32(®, TXRX_CSR9_TSF_SYNC, 0); @@ -1218,7 +1221,7 @@ static int rt73usb_init_registers(struct rt2x00_dev *rt2x00dev)  	rt2x00usb_register_write(rt2x00dev, TXRX_CSR15, 0x0000000f); -	rt2x00usb_register_read(rt2x00dev, MAC_CSR6, ®); +	reg = rt2x00usb_register_read(rt2x00dev, MAC_CSR6);  	rt2x00_set_field32(®, MAC_CSR6_MAX_FRAME_UNIT, 0xfff);  	rt2x00usb_register_write(rt2x00dev, MAC_CSR6, reg); @@ -1246,7 +1249,7 @@ static int rt73usb_init_registers(struct rt2x00_dev *rt2x00dev)  	rt2x00usb_register_write(rt2x00dev, PHY_CSR6, 0x00080606);  	rt2x00usb_register_write(rt2x00dev, PHY_CSR7, 0x00000408); -	rt2x00usb_register_read(rt2x00dev, MAC_CSR9, ®); +	reg = rt2x00usb_register_read(rt2x00dev, MAC_CSR9);  	rt2x00_set_field32(®, MAC_CSR9_CW_SELECT, 0);  	rt2x00usb_register_write(rt2x00dev, MAC_CSR9, reg); @@ -1266,24 +1269,24 @@ static int rt73usb_init_registers(struct rt2x00_dev *rt2x00dev)  	 * These registers are cleared on read,  	 * so we may pass a useless variable to store the value.  	 */ -	rt2x00usb_register_read(rt2x00dev, STA_CSR0, ®); -	rt2x00usb_register_read(rt2x00dev, STA_CSR1, ®); -	rt2x00usb_register_read(rt2x00dev, STA_CSR2, ®); +	reg = rt2x00usb_register_read(rt2x00dev, STA_CSR0); +	reg = rt2x00usb_register_read(rt2x00dev, STA_CSR1); +	reg = rt2x00usb_register_read(rt2x00dev, STA_CSR2);  	/*  	 * Reset MAC and BBP registers.  	 */ -	rt2x00usb_register_read(rt2x00dev, MAC_CSR1, ®); +	reg = rt2x00usb_register_read(rt2x00dev, MAC_CSR1);  	rt2x00_set_field32(®, MAC_CSR1_SOFT_RESET, 1);  	rt2x00_set_field32(®, MAC_CSR1_BBP_RESET, 1);  	rt2x00usb_register_write(rt2x00dev, MAC_CSR1, reg); -	rt2x00usb_register_read(rt2x00dev, MAC_CSR1, ®); +	reg = rt2x00usb_register_read(rt2x00dev, MAC_CSR1);  	rt2x00_set_field32(®, MAC_CSR1_SOFT_RESET, 0);  	rt2x00_set_field32(®, MAC_CSR1_BBP_RESET, 0);  	rt2x00usb_register_write(rt2x00dev, MAC_CSR1, reg); -	rt2x00usb_register_read(rt2x00dev, MAC_CSR1, ®); +	reg = rt2x00usb_register_read(rt2x00dev, MAC_CSR1);  	rt2x00_set_field32(®, MAC_CSR1_HOST_READY, 1);  	rt2x00usb_register_write(rt2x00dev, MAC_CSR1, reg); @@ -1296,7 +1299,7 @@ static int rt73usb_wait_bbp_ready(struct rt2x00_dev *rt2x00dev)  	u8 value;  	for (i = 0; i < REGISTER_USB_BUSY_COUNT; i++) { -		rt73usb_bbp_read(rt2x00dev, 0, &value); +		value = rt73usb_bbp_read(rt2x00dev, 0);  		if ((value != 0xff) && (value != 0x00))  			return 0;  		udelay(REGISTER_BUSY_DELAY); @@ -1343,7 +1346,7 @@ static int rt73usb_init_bbp(struct rt2x00_dev *rt2x00dev)  	rt73usb_bbp_write(rt2x00dev, 107, 0x04);  	for (i = 0; i < EEPROM_BBP_SIZE; i++) { -		rt2x00_eeprom_read(rt2x00dev, EEPROM_BBP_START + i, &eeprom); +		eeprom = rt2x00_eeprom_read(rt2x00dev, EEPROM_BBP_START + i);  		if (eeprom != 0xffff && eeprom != 0x0000) {  			reg_id = rt2x00_get_field16(eeprom, EEPROM_BBP_REG_ID); @@ -1390,7 +1393,7 @@ static int rt73usb_set_state(struct rt2x00_dev *rt2x00dev, enum dev_state state)  	put_to_sleep = (state != STATE_AWAKE); -	rt2x00usb_register_read(rt2x00dev, MAC_CSR12, ®); +	reg = rt2x00usb_register_read(rt2x00dev, MAC_CSR12);  	rt2x00_set_field32(®, MAC_CSR12_FORCE_WAKEUP, !put_to_sleep);  	rt2x00_set_field32(®, MAC_CSR12_PUT_TO_SLEEP, put_to_sleep);  	rt2x00usb_register_write(rt2x00dev, MAC_CSR12, reg); @@ -1401,7 +1404,7 @@ static int rt73usb_set_state(struct rt2x00_dev *rt2x00dev, enum dev_state state)  	 * device has entered the correct state.  	 */  	for (i = 0; i < REGISTER_BUSY_COUNT; i++) { -		rt2x00usb_register_read(rt2x00dev, MAC_CSR12, ®2); +		reg2 = rt2x00usb_register_read(rt2x00dev, MAC_CSR12);  		state = rt2x00_get_field32(reg2, MAC_CSR12_BBP_CURRENT_STATE);  		if (state == !put_to_sleep)  			return 0; @@ -1459,7 +1462,7 @@ static void rt73usb_write_tx_desc(struct queue_entry *entry,  	/*  	 * Start writing the descriptor words.  	 */ -	rt2x00_desc_read(txd, 0, &word); +	word = rt2x00_desc_read(txd, 0);  	rt2x00_set_field32(&word, TXD_W0_BURST,  			   test_bit(ENTRY_TXD_BURST, &txdesc->flags));  	rt2x00_set_field32(&word, TXD_W0_VALID, 1); @@ -1485,7 +1488,7 @@ static void rt73usb_write_tx_desc(struct queue_entry *entry,  	rt2x00_set_field32(&word, TXD_W0_CIPHER_ALG, txdesc->cipher);  	rt2x00_desc_write(txd, 0, word); -	rt2x00_desc_read(txd, 1, &word); +	word = rt2x00_desc_read(txd, 1);  	rt2x00_set_field32(&word, TXD_W1_HOST_Q_ID, entry->queue->qid);  	rt2x00_set_field32(&word, TXD_W1_AIFSN, entry->queue->aifs);  	rt2x00_set_field32(&word, TXD_W1_CWMIN, entry->queue->cw_min); @@ -1495,7 +1498,7 @@ static void rt73usb_write_tx_desc(struct queue_entry *entry,  			   test_bit(ENTRY_TXD_GENERATE_SEQ, &txdesc->flags));  	rt2x00_desc_write(txd, 1, word); -	rt2x00_desc_read(txd, 2, &word); +	word = rt2x00_desc_read(txd, 2);  	rt2x00_set_field32(&word, TXD_W2_PLCP_SIGNAL, txdesc->u.plcp.signal);  	rt2x00_set_field32(&word, TXD_W2_PLCP_SERVICE, txdesc->u.plcp.service);  	rt2x00_set_field32(&word, TXD_W2_PLCP_LENGTH_LOW, @@ -1509,7 +1512,7 @@ static void rt73usb_write_tx_desc(struct queue_entry *entry,  		_rt2x00_desc_write(txd, 4, skbdesc->iv[1]);  	} -	rt2x00_desc_read(txd, 5, &word); +	word = rt2x00_desc_read(txd, 5);  	rt2x00_set_field32(&word, TXD_W5_TX_POWER,  			   TXPOWER_TO_DEV(entry->queue->rt2x00dev->tx_power));  	rt2x00_set_field32(&word, TXD_W5_WAITING_DMA_DONE_INT, 1); @@ -1538,7 +1541,7 @@ static void rt73usb_write_beacon(struct queue_entry *entry,  	 * Disable beaconing while we are reloading the beacon data,  	 * otherwise we might be sending out invalid data.  	 */ -	rt2x00usb_register_read(rt2x00dev, TXRX_CSR9, ®); +	reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR9);  	orig_reg = reg;  	rt2x00_set_field32(®, TXRX_CSR9_BEACON_GEN, 0);  	rt2x00usb_register_write(rt2x00dev, TXRX_CSR9, reg); @@ -1603,7 +1606,7 @@ static void rt73usb_clear_beacon(struct queue_entry *entry)  	 * Disable beaconing while we are reloading the beacon data,  	 * otherwise we might be sending out invalid data.  	 */ -	rt2x00usb_register_read(rt2x00dev, TXRX_CSR9, &orig_reg); +	orig_reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR9);  	reg = orig_reg;  	rt2x00_set_field32(®, TXRX_CSR9_BEACON_GEN, 0);  	rt2x00usb_register_write(rt2x00dev, TXRX_CSR9, reg); @@ -1691,8 +1694,8 @@ static void rt73usb_fill_rxdone(struct queue_entry *entry,  	/*  	 * It is now safe to read the descriptor on all architectures.  	 */ -	rt2x00_desc_read(rxd, 0, &word0); -	rt2x00_desc_read(rxd, 1, &word1); +	word0 = rt2x00_desc_read(rxd, 0); +	word1 = rt2x00_desc_read(rxd, 1);  	if (rt2x00_get_field32(word0, RXD_W0_CRC_ERROR))  		rxdesc->flags |= RX_FLAG_FAILED_FCS_CRC; @@ -1701,11 +1704,11 @@ static void rt73usb_fill_rxdone(struct queue_entry *entry,  	rxdesc->cipher_status = rt2x00_get_field32(word0, RXD_W0_CIPHER_ERROR);  	if (rxdesc->cipher != CIPHER_NONE) { -		_rt2x00_desc_read(rxd, 2, &rxdesc->iv[0]); -		_rt2x00_desc_read(rxd, 3, &rxdesc->iv[1]); +		rxdesc->iv[0] = _rt2x00_desc_read(rxd, 2); +		rxdesc->iv[1] = _rt2x00_desc_read(rxd, 3);  		rxdesc->dev_flags |= RXDONE_CRYPTO_IV; -		_rt2x00_desc_read(rxd, 4, &rxdesc->icv); +		rxdesc->icv = _rt2x00_desc_read(rxd, 4);  		rxdesc->dev_flags |= RXDONE_CRYPTO_ICV;  		/* @@ -1768,7 +1771,7 @@ static int rt73usb_validate_eeprom(struct rt2x00_dev *rt2x00dev)  	mac = rt2x00_eeprom_addr(rt2x00dev, EEPROM_MAC_ADDR_0);  	rt2x00lib_set_mac_address(rt2x00dev, mac); -	rt2x00_eeprom_read(rt2x00dev, EEPROM_ANTENNA, &word); +	word = rt2x00_eeprom_read(rt2x00dev, EEPROM_ANTENNA);  	if (word == 0xffff) {  		rt2x00_set_field16(&word, EEPROM_ANTENNA_NUM, 2);  		rt2x00_set_field16(&word, EEPROM_ANTENNA_TX_DEFAULT, @@ -1783,14 +1786,14 @@ static int rt73usb_validate_eeprom(struct rt2x00_dev *rt2x00dev)  		rt2x00_eeprom_dbg(rt2x00dev, "Antenna: 0x%04x\n", word);  	} -	rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC, &word); +	word = rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC);  	if (word == 0xffff) {  		rt2x00_set_field16(&word, EEPROM_NIC_EXTERNAL_LNA, 0);  		rt2x00_eeprom_write(rt2x00dev, EEPROM_NIC, word);  		rt2x00_eeprom_dbg(rt2x00dev, "NIC: 0x%04x\n", word);  	} -	rt2x00_eeprom_read(rt2x00dev, EEPROM_LED, &word); +	word = rt2x00_eeprom_read(rt2x00dev, EEPROM_LED);  	if (word == 0xffff) {  		rt2x00_set_field16(&word, EEPROM_LED_POLARITY_RDY_G, 0);  		rt2x00_set_field16(&word, EEPROM_LED_POLARITY_RDY_A, 0); @@ -1806,7 +1809,7 @@ static int rt73usb_validate_eeprom(struct rt2x00_dev *rt2x00dev)  		rt2x00_eeprom_dbg(rt2x00dev, "Led: 0x%04x\n", word);  	} -	rt2x00_eeprom_read(rt2x00dev, EEPROM_FREQ, &word); +	word = rt2x00_eeprom_read(rt2x00dev, EEPROM_FREQ);  	if (word == 0xffff) {  		rt2x00_set_field16(&word, EEPROM_FREQ_OFFSET, 0);  		rt2x00_set_field16(&word, EEPROM_FREQ_SEQ, 0); @@ -1814,7 +1817,7 @@ static int rt73usb_validate_eeprom(struct rt2x00_dev *rt2x00dev)  		rt2x00_eeprom_dbg(rt2x00dev, "Freq: 0x%04x\n", word);  	} -	rt2x00_eeprom_read(rt2x00dev, EEPROM_RSSI_OFFSET_BG, &word); +	word = rt2x00_eeprom_read(rt2x00dev, EEPROM_RSSI_OFFSET_BG);  	if (word == 0xffff) {  		rt2x00_set_field16(&word, EEPROM_RSSI_OFFSET_BG_1, 0);  		rt2x00_set_field16(&word, EEPROM_RSSI_OFFSET_BG_2, 0); @@ -1830,7 +1833,7 @@ static int rt73usb_validate_eeprom(struct rt2x00_dev *rt2x00dev)  		rt2x00_eeprom_write(rt2x00dev, EEPROM_RSSI_OFFSET_BG, word);  	} -	rt2x00_eeprom_read(rt2x00dev, EEPROM_RSSI_OFFSET_A, &word); +	word = rt2x00_eeprom_read(rt2x00dev, EEPROM_RSSI_OFFSET_A);  	if (word == 0xffff) {  		rt2x00_set_field16(&word, EEPROM_RSSI_OFFSET_A_1, 0);  		rt2x00_set_field16(&word, EEPROM_RSSI_OFFSET_A_2, 0); @@ -1858,13 +1861,13 @@ static int rt73usb_init_eeprom(struct rt2x00_dev *rt2x00dev)  	/*  	 * Read EEPROM word for configuration.  	 */ -	rt2x00_eeprom_read(rt2x00dev, EEPROM_ANTENNA, &eeprom); +	eeprom = rt2x00_eeprom_read(rt2x00dev, EEPROM_ANTENNA);  	/*  	 * Identify RF chipset.  	 */  	value = rt2x00_get_field16(eeprom, EEPROM_ANTENNA_RF_TYPE); -	rt2x00usb_register_read(rt2x00dev, MAC_CSR0, ®); +	reg = rt2x00usb_register_read(rt2x00dev, MAC_CSR0);  	rt2x00_set_chip(rt2x00dev, rt2x00_get_field32(reg, MAC_CSR0_CHIPSET),  			value, rt2x00_get_field32(reg, MAC_CSR0_REVISION)); @@ -1904,13 +1907,13 @@ static int rt73usb_init_eeprom(struct rt2x00_dev *rt2x00dev)  	/*  	 * Read frequency offset.  	 */ -	rt2x00_eeprom_read(rt2x00dev, EEPROM_FREQ, &eeprom); +	eeprom = rt2x00_eeprom_read(rt2x00dev, EEPROM_FREQ);  	rt2x00dev->freq_offset = rt2x00_get_field16(eeprom, EEPROM_FREQ_OFFSET);  	/*  	 * Read external LNA informations.  	 */ -	rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC, &eeprom); +	eeprom = rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC);  	if (rt2x00_get_field16(eeprom, EEPROM_NIC_EXTERNAL_LNA)) {  		__set_bit(CAPABILITY_EXTERNAL_LNA_A, &rt2x00dev->cap_flags); @@ -1921,7 +1924,7 @@ static int rt73usb_init_eeprom(struct rt2x00_dev *rt2x00dev)  	 * Store led settings, for correct led behaviour.  	 */  #ifdef CONFIG_RT2X00_LIB_LEDS -	rt2x00_eeprom_read(rt2x00dev, EEPROM_LED, &eeprom); +	eeprom = rt2x00_eeprom_read(rt2x00dev, EEPROM_LED);  	rt73usb_init_led(rt2x00dev, &rt2x00dev->led_radio, LED_TYPE_RADIO);  	rt73usb_init_led(rt2x00dev, &rt2x00dev->led_assoc, LED_TYPE_ASSOC); @@ -2188,7 +2191,7 @@ static int rt73usb_probe_hw(struct rt2x00_dev *rt2x00dev)  	 * Enable rfkill polling by setting GPIO direction of the  	 * rfkill switch GPIO pin correctly.  	 */ -	rt2x00usb_register_read(rt2x00dev, MAC_CSR13, ®); +	reg = rt2x00usb_register_read(rt2x00dev, MAC_CSR13);  	rt2x00_set_field32(®, MAC_CSR13_DIR7, 0);  	rt2x00usb_register_write(rt2x00dev, MAC_CSR13, reg); @@ -2260,7 +2263,7 @@ static int rt73usb_conf_tx(struct ieee80211_hw *hw,  	field.bit_offset = (queue_idx & 1) * 16;  	field.bit_mask = 0xffff << field.bit_offset; -	rt2x00usb_register_read(rt2x00dev, offset, ®); +	reg = rt2x00usb_register_read(rt2x00dev, offset);  	rt2x00_set_field32(®, field, queue->txop);  	rt2x00usb_register_write(rt2x00dev, offset, reg); @@ -2268,15 +2271,15 @@ static int rt73usb_conf_tx(struct ieee80211_hw *hw,  	field.bit_offset = queue_idx * 4;  	field.bit_mask = 0xf << field.bit_offset; -	rt2x00usb_register_read(rt2x00dev, AIFSN_CSR, ®); +	reg = rt2x00usb_register_read(rt2x00dev, AIFSN_CSR);  	rt2x00_set_field32(®, field, queue->aifs);  	rt2x00usb_register_write(rt2x00dev, AIFSN_CSR, reg); -	rt2x00usb_register_read(rt2x00dev, CWMIN_CSR, ®); +	reg = rt2x00usb_register_read(rt2x00dev, CWMIN_CSR);  	rt2x00_set_field32(®, field, queue->cw_min);  	rt2x00usb_register_write(rt2x00dev, CWMIN_CSR, reg); -	rt2x00usb_register_read(rt2x00dev, CWMAX_CSR, ®); +	reg = rt2x00usb_register_read(rt2x00dev, CWMAX_CSR);  	rt2x00_set_field32(®, field, queue->cw_max);  	rt2x00usb_register_write(rt2x00dev, CWMAX_CSR, reg); @@ -2289,9 +2292,9 @@ static u64 rt73usb_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif)  	u64 tsf;  	u32 reg; -	rt2x00usb_register_read(rt2x00dev, TXRX_CSR13, ®); +	reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR13);  	tsf = (u64) rt2x00_get_field32(reg, TXRX_CSR13_HIGH_TSFTIMER) << 32; -	rt2x00usb_register_read(rt2x00dev, TXRX_CSR12, ®); +	reg = rt2x00usb_register_read(rt2x00dev, TXRX_CSR12);  	tsf |= rt2x00_get_field32(reg, TXRX_CSR12_LOW_TSFTIMER);  	return tsf; | 
