return rt2x00_eeprom_addr(rt2x00dev, index);
 }
 
-static void rt2800_eeprom_read(struct rt2x00_dev *rt2x00dev,
-                              const enum rt2800_eeprom_word word, u16 *data)
+static u16 rt2800_eeprom_read(struct rt2x00_dev *rt2x00dev,
+                             const enum rt2800_eeprom_word word)
 {
        unsigned int index;
 
        index = rt2800_eeprom_word_index(rt2x00dev, word);
-       *data = rt2x00_eeprom_read(rt2x00dev, index);
+       return rt2x00_eeprom_read(rt2x00dev, index);
 }
 
 static void rt2800_eeprom_write(struct rt2x00_dev *rt2x00dev,
        rt2x00_eeprom_write(rt2x00dev, index, data);
 }
 
-static void rt2800_eeprom_read_from_array(struct rt2x00_dev *rt2x00dev,
-                                         const enum rt2800_eeprom_word array,
-                                         unsigned int offset,
-                                         u16 *data)
+static u16 rt2800_eeprom_read_from_array(struct rt2x00_dev *rt2x00dev,
+                                        const enum rt2800_eeprom_word array,
+                                        unsigned int offset)
 {
        unsigned int index;
 
        index = rt2800_eeprom_word_index(rt2x00dev, array);
-       *data = rt2x00_eeprom_read(rt2x00dev, index + offset);
+       return rt2x00_eeprom_read(rt2x00dev, index + offset);
 }
 
 static int rt2800_enable_wlan_rt3290(struct rt2x00_dev *rt2x00dev)
        u8 offset2;
 
        if (rt2x00dev->curr_band == NL80211_BAND_2GHZ) {
-               rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_BG, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_BG);
                offset0 = rt2x00_get_field16(eeprom, EEPROM_RSSI_BG_OFFSET0);
                offset1 = rt2x00_get_field16(eeprom, EEPROM_RSSI_BG_OFFSET1);
-               rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_BG2, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_BG2);
                offset2 = rt2x00_get_field16(eeprom, EEPROM_RSSI_BG2_OFFSET2);
        } else {
-               rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_A, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_A);
                offset0 = rt2x00_get_field16(eeprom, EEPROM_RSSI_A_OFFSET0);
                offset1 = rt2x00_get_field16(eeprom, EEPROM_RSSI_A_OFFSET1);
-               rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_A2, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_A2);
                offset2 = rt2x00_get_field16(eeprom, EEPROM_RSSI_A2_OFFSET2);
        }
 
        led_r_mode = rt2x00_get_field32(reg, LED_CFG_LED_POLAR) ? 0 : 3;
        if (led_g_mode != rt2x00_get_field32(reg, LED_CFG_G_LED_MODE) ||
            led_r_mode != rt2x00_get_field32(reg, LED_CFG_R_LED_MODE)) {
-               rt2800_eeprom_read(rt2x00dev, EEPROM_FREQ, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_FREQ);
                led_ctrl = rt2x00_get_field16(eeprom, EEPROM_FREQ_LED_MODE);
                if (led_ctrl == 0 || led_ctrl > 0x40) {
                        rt2x00_set_field32(®, LED_CFG_G_LED_MODE, led_g_mode);
                    rt2x00_rt(rt2x00dev, RT3090) ||
                    rt2x00_rt(rt2x00dev, RT3352) ||
                    rt2x00_rt(rt2x00dev, RT3390)) {
-                       rt2800_eeprom_read(rt2x00dev,
-                                          EEPROM_NIC_CONF1, &eeprom);
+                       eeprom = rt2800_eeprom_read(rt2x00dev,
+                                                   EEPROM_NIC_CONF1);
                        if (rt2x00_get_field16(eeprom,
                                                EEPROM_NIC_CONF1_ANT_DIVERSITY))
                                rt2800_set_ant_diversity(rt2x00dev,
        short lna_gain;
 
        if (libconf->rf.channel <= 14) {
-               rt2800_eeprom_read(rt2x00dev, EEPROM_LNA, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_LNA);
                lna_gain = rt2x00_get_field16(eeprom, EEPROM_LNA_BG);
        } else if (libconf->rf.channel <= 64) {
-               rt2800_eeprom_read(rt2x00dev, EEPROM_LNA, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_LNA);
                lna_gain = rt2x00_get_field16(eeprom, EEPROM_LNA_A0);
        } else if (libconf->rf.channel <= 128) {
                if (rt2x00_rt(rt2x00dev, RT3593)) {
-                       rt2800_eeprom_read(rt2x00dev, EEPROM_EXT_LNA2, &eeprom);
+                       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_EXT_LNA2);
                        lna_gain = rt2x00_get_field16(eeprom,
                                                      EEPROM_EXT_LNA2_A1);
                } else {
-                       rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_BG2, &eeprom);
+                       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_BG2);
                        lna_gain = rt2x00_get_field16(eeprom,
                                                      EEPROM_RSSI_BG2_LNA_A1);
                }
        } else {
                if (rt2x00_rt(rt2x00dev, RT3593)) {
-                       rt2800_eeprom_read(rt2x00dev, EEPROM_EXT_LNA2, &eeprom);
+                       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_EXT_LNA2);
                        lna_gain = rt2x00_get_field16(eeprom,
                                                      EEPROM_EXT_LNA2_A2);
                } else {
-                       rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_A2, &eeprom);
+                       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_A2);
                        lna_gain = rt2x00_get_field16(eeprom,
                                                      EEPROM_RSSI_A2_LNA_A2);
                }
        rt2x00_set_field32(®, TX_ALC_CFG_0_LIMIT_0, max_power);
        rt2x00_set_field32(®, TX_ALC_CFG_0_LIMIT_1, max_power);
 
-       rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1, &eeprom);
+       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1);
        if (rt2x00_get_field16(eeprom, EEPROM_NIC_CONF1_INTERNAL_TX_ALC)) {
                /* init base power by eeprom target power */
-               rt2800_eeprom_read(rt2x00dev, EEPROM_TXPOWER_INIT,
-                                  &target_power);
+               target_power = rt2800_eeprom_read(rt2x00dev,
+                                                 EEPROM_TXPOWER_INIT);
                rt2x00_set_field32(®, TX_ALC_CFG_0_CH_INIT_0, target_power);
                rt2x00_set_field32(®, TX_ALC_CFG_0_CH_INIT_1, target_power);
        }
        /*
         * First check if temperature compensation is supported.
         */
-       rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1, &eeprom);
+       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1);
        if (!rt2x00_get_field16(eeprom, EEPROM_NIC_CONF1_EXTERNAL_TX_ALC))
                return 0;
 
         * Example TSSI bounds  0xF0 0xD0 0xB5 0xA0 0x88 0x45 0x25 0x15 0x00
         */
        if (rt2x00dev->curr_band == NL80211_BAND_2GHZ) {
-               rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_BG1, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_BG1);
                tssi_bounds[0] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_BG1_MINUS4);
                tssi_bounds[1] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_BG1_MINUS3);
 
-               rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_BG2, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_BG2);
                tssi_bounds[2] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_BG2_MINUS2);
                tssi_bounds[3] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_BG2_MINUS1);
 
-               rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_BG3, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_BG3);
                tssi_bounds[4] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_BG3_REF);
                tssi_bounds[5] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_BG3_PLUS1);
 
-               rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_BG4, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_BG4);
                tssi_bounds[6] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_BG4_PLUS2);
                tssi_bounds[7] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_BG4_PLUS3);
 
-               rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_BG5, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_BG5);
                tssi_bounds[8] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_BG5_PLUS4);
 
                step = rt2x00_get_field16(eeprom,
                                          EEPROM_TSSI_BOUND_BG5_AGC_STEP);
        } else {
-               rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_A1, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_A1);
                tssi_bounds[0] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_A1_MINUS4);
                tssi_bounds[1] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_A1_MINUS3);
 
-               rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_A2, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_A2);
                tssi_bounds[2] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_A2_MINUS2);
                tssi_bounds[3] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_A2_MINUS1);
 
-               rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_A3, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_A3);
                tssi_bounds[4] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_A3_REF);
                tssi_bounds[5] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_A3_PLUS1);
 
-               rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_A4, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_A4);
                tssi_bounds[6] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_A4_PLUS2);
                tssi_bounds[7] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_A4_PLUS3);
 
-               rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_A5, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_TSSI_BOUND_A5);
                tssi_bounds[8] = rt2x00_get_field16(eeprom,
                                        EEPROM_TSSI_BOUND_A5_PLUS4);
 
        u8 comp_type;
        int comp_value = 0;
 
-       rt2800_eeprom_read(rt2x00dev, EEPROM_TXPOWER_DELTA, &eeprom);
+       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_TXPOWER_DELTA);
 
        /*
         * HT40 compensation not required.
                 * .11b data rate need add additional 4dbm
                 * when calculating eirp txpower.
                 */
-               rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
-                                             1, &eeprom);
+               eeprom = rt2800_eeprom_read_from_array(rt2x00dev,
+                                                      EEPROM_TXPOWER_BYRATE,
+                                                      1);
                criterion = rt2x00_get_field16(eeprom,
                                               EEPROM_TXPOWER_BYRATE_RATE0);
 
-               rt2800_eeprom_read(rt2x00dev, EEPROM_EIRP_MAX_TX_POWER,
-                                  &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_EIRP_MAX_TX_POWER);
 
                if (band == NL80211_BAND_2GHZ)
                        eirp_txpower_criterion = rt2x00_get_field16(eeprom,
                offset += 8;
 
        /* read the next four txpower values */
-       rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
-                                     offset, &eeprom);
+       eeprom = rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
+                                              offset);
 
        /* CCK 1MBS,2MBS */
        txpower = rt2x00_get_field16(eeprom, EEPROM_TXPOWER_BYRATE_RATE0);
                           TX_PWR_CFG_0_EXT_OFDM12_CH2, txpower);
 
        /* read the next four txpower values */
-       rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
-                                     offset + 1, &eeprom);
+       eeprom = rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
+                                              offset + 1);
 
        /* OFDM 24MBS,36MBS */
        txpower = rt2x00_get_field16(eeprom, EEPROM_TXPOWER_BYRATE_RATE0);
                           TX_PWR_CFG_7_OFDM54_CH2, txpower);
 
        /* read the next four txpower values */
-       rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
-                                     offset + 2, &eeprom);
+       eeprom = rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
+                                              offset + 2);
 
        /* MCS 0,1 */
        txpower = rt2x00_get_field16(eeprom, EEPROM_TXPOWER_BYRATE_RATE0);
                           TX_PWR_CFG_2_EXT_MCS6_CH2, txpower);
 
        /* read the next four txpower values */
-       rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
-                                     offset + 3, &eeprom);
+       eeprom = rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
+                                              offset + 3);
 
        /* MCS 7 */
        txpower = rt2x00_get_field16(eeprom, EEPROM_TXPOWER_BYRATE_RATE0);
                           TX_PWR_CFG_3_EXT_MCS12_CH2, txpower);
 
        /* read the next four txpower values */
-       rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
-                                     offset + 4, &eeprom);
+       eeprom = rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
+                                              offset + 4);
 
        /* MCS 14 */
        txpower = rt2x00_get_field16(eeprom, EEPROM_TXPOWER_BYRATE_RATE0);
                           TX_PWR_CFG_5_MCS18_CH2, txpower);
 
        /* read the next four txpower values */
-       rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
-                                     offset + 5, &eeprom);
+       eeprom = rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
+                                              offset + 5);
 
        /* MCS 20,21 */
        txpower = rt2x00_get_field16(eeprom, EEPROM_TXPOWER_BYRATE_RATE0);
                           TX_PWR_CFG_8_MCS23_CH2, txpower);
 
        /* read the next four txpower values */
-       rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
-                                     offset + 6, &eeprom);
+       eeprom = rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
+                                              offset + 6);
 
        /* STBC, MCS 0,1 */
        txpower = rt2x00_get_field16(eeprom, EEPROM_TXPOWER_BYRATE_RATE0);
                           txpower);
 
        /* read the next four txpower values */
-       rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
-                                     offset + 7, &eeprom);
+       eeprom = rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
+                                              offset + 7);
 
        /* STBC, MCS 7 */
        txpower = rt2x00_get_field16(eeprom, EEPROM_TXPOWER_BYRATE_RATE0);
         * board vendors expected when they populated the EEPROM...
         */
        for (i = 0; i < 5; i++) {
-               rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
-                                             i * 2, &eeprom);
+               eeprom = rt2800_eeprom_read_from_array(rt2x00dev,
+                                                      EEPROM_TXPOWER_BYRATE,
+                                                      i * 2);
 
                data = eeprom;
 
 
                gdata |= (t << 8);
 
-               rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
-                                             (i * 2) + 1, &eeprom);
+               eeprom = rt2800_eeprom_read_from_array(rt2x00dev,
+                                                      EEPROM_TXPOWER_BYRATE,
+                                                      (i * 2) + 1);
 
                t = eeprom & 0x3f;
                if (t == 32)
                reg = rt2800_register_read(rt2x00dev, offset);
 
                /* read the next four txpower values */
-               rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
-                                             i, &eeprom);
+               eeprom = rt2800_eeprom_read_from_array(rt2x00dev,
+                                                      EEPROM_TXPOWER_BYRATE,
+                                                      i);
 
                is_rate_b = i ? 0 : 1;
                /*
                rt2x00_set_field32(®, TX_PWR_CFG_RATE3, txpower);
 
                /* read the next four txpower values */
-               rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_TXPOWER_BYRATE,
-                                             i + 1, &eeprom);
+               eeprom = rt2800_eeprom_read_from_array(rt2x00dev,
+                                                      EEPROM_TXPOWER_BYRATE,
+                                                      i + 1);
 
                is_rate_b = 0;
                /*
                if (rt2x00_rt_rev_lt(rt2x00dev, RT3071, REV_RT3071E) ||
                    rt2x00_rt_rev_lt(rt2x00dev, RT3090, REV_RT3090E) ||
                    rt2x00_rt_rev_lt(rt2x00dev, RT3390, REV_RT3390E)) {
-                       rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1,
-                                          &eeprom);
+                       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1);
                        if (rt2x00_get_field16(eeprom, EEPROM_NIC_CONF1_DAC_TEST))
                                rt2800_register_write(rt2x00dev, TX_SW_CFG2,
                                                      0x0000002c);
                rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000402);
                rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00000000);
                if (rt2x00_rt_rev_lt(rt2x00dev, RT3593, REV_RT3593E)) {
-                       rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1,
-                                          &eeprom);
+                       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1);
                        if (rt2x00_get_field16(eeprom,
                                               EEPROM_NIC_CONF1_DAC_TEST))
                                rt2800_register_write(rt2x00dev, TX_SW_CFG2,
        u8 value;
 
        value = rt2800_bbp_read(rt2x00dev, 138);
-       rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF0, &eeprom);
+       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF0);
        if (rt2x00_get_field16(eeprom, EEPROM_NIC_CONF0_TXPATH) == 1)
                value |= 0x20;
        if (rt2x00_get_field16(eeprom, EEPROM_NIC_CONF0_RXPATH) == 1)
 
        rt2800_disable_unused_dac_adc(rt2x00dev);
 
-       rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1, &eeprom);
+       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1);
        div_mode = rt2x00_get_field16(eeprom,
                                      EEPROM_NIC_CONF1_ANT_DIVERSITY);
        ant = (div_mode == 3) ? 1 : 0;
 
        rt2800_bbp4_mac_if_ctrl(rt2x00dev);
 
-       rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1, &eeprom);
+       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1);
        div_mode = rt2x00_get_field16(eeprom, EEPROM_NIC_CONF1_ANT_DIVERSITY);
        ant = (div_mode == 3) ? 1 : 0;
        value = rt2800_bbp_read(rt2x00dev, 152);
        }
 
        for (i = 0; i < EEPROM_BBP_SIZE; i++) {
-               rt2800_eeprom_read_from_array(rt2x00dev, EEPROM_BBP_START, i,
-                                             &eeprom);
+               eeprom = rt2800_eeprom_read_from_array(rt2x00dev,
+                                                      EEPROM_BBP_START, i);
 
                if (eeprom != 0xffff && eeprom != 0x0000) {
                        reg_id = rt2x00_get_field16(eeprom, EEPROM_BBP_REG_ID);
        if (rt2x00_rt(rt2x00dev, RT3090)) {
                /*  Turn off unused DAC1 and ADC1 to reduce power consumption */
                bbp = rt2800_bbp_read(rt2x00dev, 138);
-               rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF0, &eeprom);
+               eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF0);
                if (rt2x00_get_field16(eeprom, EEPROM_NIC_CONF0_RXPATH) == 1)
                        rt2x00_set_field8(&bbp, BBP138_RX_ADC1, 0);
                if (rt2x00_get_field16(eeprom, EEPROM_NIC_CONF0_TXPATH) == 1)
 
        /*  Turn off unused DAC1 and ADC1 to reduce power consumption */
        reg = rt2800_bbp_read(rt2x00dev, 138);
-       rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF0, &eeprom);
+       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF0);
        if (rt2x00_get_field16(eeprom, EEPROM_NIC_CONF0_RXPATH) == 1)
                rt2x00_set_field8(®, BBP138_RX_ADC1, 0);
        if (rt2x00_get_field16(eeprom, EEPROM_NIC_CONF0_TXPATH) == 1)
                rt2x00_set_field32(®, LDO_CFG0_BGSEL, 1);
                if (rt2x00_rt_rev_lt(rt2x00dev, RT3071, REV_RT3071E) ||
                    rt2x00_rt_rev_lt(rt2x00dev, RT3090, REV_RT3090E)) {
-                       rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1,
-                                          &eeprom);
+                       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1);
                        if (rt2x00_get_field16(eeprom, EEPROM_NIC_CONF1_DAC_TEST))
                                rt2x00_set_field32(®, LDO_CFG0_LDO_CORE_VLEVEL, 3);
                        else
        /*
         * Initialize LED control
         */
-       rt2800_eeprom_read(rt2x00dev, EEPROM_LED_AG_CONF, &word);
+       word = rt2800_eeprom_read(rt2x00dev, EEPROM_LED_AG_CONF);
        rt2800_mcu_request(rt2x00dev, MCU_LED_AG_CONF, 0xff,
                           word & 0xff, (word >> 8) & 0xff);
 
-       rt2800_eeprom_read(rt2x00dev, EEPROM_LED_ACT_CONF, &word);
+       word = rt2800_eeprom_read(rt2x00dev, EEPROM_LED_ACT_CONF);
        rt2800_mcu_request(rt2x00dev, MCU_LED_ACT_CONF, 0xff,
                           word & 0xff, (word >> 8) & 0xff);
 
-       rt2800_eeprom_read(rt2x00dev, EEPROM_LED_POLARITY, &word);
+       word = rt2800_eeprom_read(rt2x00dev, EEPROM_LED_POLARITY);
        rt2800_mcu_request(rt2x00dev, MCU_LED_LED_POLARITY, 0xff,
                           word & 0xff, (word >> 8) & 0xff);
 
        if (rt2x00_rt(rt2x00dev, RT3593))
                return 0;
 
-       rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_BG, &word);
+       word = rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_BG);
        if ((word & 0x00ff) != 0x00ff)
                return rt2x00_get_field16(word, EEPROM_TXMIXER_GAIN_BG_VAL);
 
        if (rt2x00_rt(rt2x00dev, RT3593))
                return 0;
 
-       rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_A, &word);
+       word = rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_A);
        if ((word & 0x00ff) != 0x00ff)
                return rt2x00_get_field16(word, EEPROM_TXMIXER_GAIN_A_VAL);
 
        mac = rt2800_eeprom_addr(rt2x00dev, EEPROM_MAC_ADDR_0);
        rt2x00lib_set_mac_address(rt2x00dev, mac);
 
-       rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF0, &word);
+       word = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF0);
        if (word == 0xffff) {
                rt2x00_set_field16(&word, EEPROM_NIC_CONF0_RXPATH, 2);
                rt2x00_set_field16(&word, EEPROM_NIC_CONF0_TXPATH, 1);
                rt2800_eeprom_write(rt2x00dev, EEPROM_NIC_CONF0, word);
        }
 
-       rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1, &word);
+       word = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1);
        if (word == 0xffff) {
                rt2x00_set_field16(&word, EEPROM_NIC_CONF1_HW_RADIO, 0);
                rt2x00_set_field16(&word, EEPROM_NIC_CONF1_EXTERNAL_TX_ALC, 0);
                rt2x00_eeprom_dbg(rt2x00dev, "NIC: 0x%04x\n", word);
        }
 
-       rt2800_eeprom_read(rt2x00dev, EEPROM_FREQ, &word);
+       word = rt2800_eeprom_read(rt2x00dev, EEPROM_FREQ);
        if ((word & 0x00ff) == 0x00ff) {
                rt2x00_set_field16(&word, EEPROM_FREQ_OFFSET, 0);
                rt2800_eeprom_write(rt2x00dev, EEPROM_FREQ, word);
         * lna0 as correct value. Note that EEPROM_LNA
         * is never validated.
         */
-       rt2800_eeprom_read(rt2x00dev, EEPROM_LNA, &word);
+       word = rt2800_eeprom_read(rt2x00dev, EEPROM_LNA);
        default_lna_gain = rt2x00_get_field16(word, EEPROM_LNA_A0);
 
-       rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_BG, &word);
+       word = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_BG);
        if (abs(rt2x00_get_field16(word, EEPROM_RSSI_BG_OFFSET0)) > 10)
                rt2x00_set_field16(&word, EEPROM_RSSI_BG_OFFSET0, 0);
        if (abs(rt2x00_get_field16(word, EEPROM_RSSI_BG_OFFSET1)) > 10)
 
        drv_data->txmixer_gain_24g = rt2800_get_txmixer_gain_24g(rt2x00dev);
 
-       rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_BG2, &word);
+       word = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_BG2);
        if (abs(rt2x00_get_field16(word, EEPROM_RSSI_BG2_OFFSET2)) > 10)
                rt2x00_set_field16(&word, EEPROM_RSSI_BG2_OFFSET2, 0);
        if (!rt2x00_rt(rt2x00dev, RT3593)) {
 
        drv_data->txmixer_gain_5g = rt2800_get_txmixer_gain_5g(rt2x00dev);
 
-       rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_A, &word);
+       word = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_A);
        if (abs(rt2x00_get_field16(word, EEPROM_RSSI_A_OFFSET0)) > 10)
                rt2x00_set_field16(&word, EEPROM_RSSI_A_OFFSET0, 0);
        if (abs(rt2x00_get_field16(word, EEPROM_RSSI_A_OFFSET1)) > 10)
                rt2x00_set_field16(&word, EEPROM_RSSI_A_OFFSET1, 0);
        rt2800_eeprom_write(rt2x00dev, EEPROM_RSSI_A, word);
 
-       rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_A2, &word);
+       word = rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_A2);
        if (abs(rt2x00_get_field16(word, EEPROM_RSSI_A2_OFFSET2)) > 10)
                rt2x00_set_field16(&word, EEPROM_RSSI_A2_OFFSET2, 0);
        if (!rt2x00_rt(rt2x00dev, RT3593)) {
        rt2800_eeprom_write(rt2x00dev, EEPROM_RSSI_A2, word);
 
        if (rt2x00_rt(rt2x00dev, RT3593)) {
-               rt2800_eeprom_read(rt2x00dev, EEPROM_EXT_LNA2, &word);
+               word = rt2800_eeprom_read(rt2x00dev, EEPROM_EXT_LNA2);
                if (rt2x00_get_field16(word, EEPROM_EXT_LNA2_A1) == 0x00 ||
                    rt2x00_get_field16(word, EEPROM_EXT_LNA2_A1) == 0xff)
                        rt2x00_set_field16(&word, EEPROM_EXT_LNA2_A1,
        /*
         * Read EEPROM word for configuration.
         */
-       rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF0, &eeprom);
+       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF0);
 
        /*
         * Identify RF chipset by EEPROM value
            rt2x00_rt(rt2x00dev, RT5390) ||
            rt2x00_rt(rt2x00dev, RT5392) ||
            rt2x00_rt(rt2x00dev, RT6352))
-               rt2800_eeprom_read(rt2x00dev, EEPROM_CHIP_ID, &rf);
+               rf = rt2800_eeprom_read(rt2x00dev, EEPROM_CHIP_ID);
        else if (rt2x00_rt(rt2x00dev, RT3352))
                rf = RF3322;
        else if (rt2x00_rt(rt2x00dev, RT5350))
        rt2x00dev->default_ant.rx_chain_num =
            rt2x00_get_field16(eeprom, EEPROM_NIC_CONF0_RXPATH);
 
-       rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1, &eeprom);
+       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1);
 
        if (rt2x00_rt(rt2x00dev, RT3070) ||
            rt2x00_rt(rt2x00dev, RT3090) ||
        /*
         * Read frequency offset and RF programming sequence.
         */
-       rt2800_eeprom_read(rt2x00dev, EEPROM_FREQ, &eeprom);
+       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_FREQ);
        rt2x00dev->freq_offset = rt2x00_get_field16(eeprom, EEPROM_FREQ_OFFSET);
 
        /*
        /*
         * Check if support EIRP tx power limit feature.
         */
-       rt2800_eeprom_read(rt2x00dev, EEPROM_EIRP_MAX_TX_POWER, &eeprom);
+       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_EIRP_MAX_TX_POWER);
 
        if (rt2x00_get_field16(eeprom, EEPROM_EIRP_MAX_TX_POWER_2GHZ) <
                                        EIRP_MAX_TX_POWER_LIMIT)
        /*
         * Detect if device uses internal or external PA
         */
-       rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1, &eeprom);
+       eeprom = rt2800_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1);
 
        if (rt2x00_rt(rt2x00dev, RT3352)) {
                if (rt2x00_get_field16(eeprom,