break;
 
        default:
-               if (priv->revid < ADM8211_REV_CA)
+               if (priv->pdev->revision < ADM8211_REV_CA)
                        priv->rf_type = ADM8211_TYPE_RFMD;
                else
                        priv->rf_type = ADM8211_TYPE_AIROHA;
        case ADM8211_TYPE_ADMTEK:
                break;
        default:
-               if (priv->revid < ADM8211_REV_CA)
+               if (priv->pdev->revision < ADM8211_REV_CA)
                        priv->bbp_type = ADM8211_TYPE_RFMD;
                else
                        priv->bbp_type = ADM8211_TYPE_ADMTEK;
                break;
 
        default:
-               if (priv->revid < ADM8211_REV_CA)
+               if (priv->pdev->revision < ADM8211_REV_CA)
                        priv->specific_bbptype = ADM8211_BBP_RFMD3000;
                else
                        priv->specific_bbptype = ADM8211_BBP_ADM8011;
                break;
 
        default:
-               if (priv->revid == ADM8211_REV_BA)
+               if (priv->pdev->revision == ADM8211_REV_BA)
                        priv->transceiver_type = ADM8211_RFMD2958_RF3000_CONTROL_POWER;
-               else if (priv->revid == ADM8211_REV_CA)
+               else if (priv->pdev->revision == ADM8211_REV_CA)
                        priv->transceiver_type = ADM8211_AL2210L;
-               else if (priv->revid == ADM8211_REV_AB)
+               else if (priv->pdev->revision == ADM8211_REV_AB)
                        priv->transceiver_type = ADM8211_RFMD2948;
 
                printk(KERN_WARNING "%s (adm8211): Unknown transceiver: %d\n",
        struct adm8211_priv *priv = dev->priv;
 
        ADM8211_CSR_WRITE(WEPCTL, addr | ADM8211_WEPCTL_TABLE_WR |
-                         (priv->revid < ADM8211_REV_BA ?
+                         (priv->pdev->revision < ADM8211_REV_BA ?
                           0 : ADM8211_WEPCTL_SEL_WEPTABLE ));
        ADM8211_CSR_READ(WEPCTL);
        msleep(1);
        u32 reg = ADM8211_CSR_READ(WEPCTL);
        unsigned int i;
 
-       if (priv->revid < ADM8211_REV_BA) {
+       if (priv->pdev->revision < ADM8211_REV_BA) {
                for (i = 0; i < len; i += 2) {
                        u16 val = buf[i] | (buf[i + 1] << 8);
                        adm8211_write_sram(dev, addr + i / 2, val);
                if (skb) {
                        struct ieee80211_rx_status rx_status = {0};
 
-                       if (priv->revid < ADM8211_REV_CA)
+                       if (priv->pdev->revision < ADM8211_REV_CA)
                                rx_status.ssi = rssi;
                        else
                                rx_status.ssi = 100 - rssi;
                adm8211_rf_write_syn_rfmd2958(dev, 0x0A, reg);
                /* set TXRX TX_GAIN */
                adm8211_rf_write_syn_rfmd2958(dev, 0x09, 0x00050 |
-                       (priv->revid < ADM8211_REV_CA ? tx_power : 0));
+                       (priv->pdev->revision < ADM8211_REV_CA ? tx_power : 0));
        } else {
                reg = ADM8211_CSR_READ(PLCPHD);
                reg &= 0xff00ffff;
                                  tx_power<<2);
        adm8211_write_bbp(dev, RF3000_LOW_GAIN_CALIB, lpf_cutoff);
        adm8211_write_bbp(dev, RF3000_HIGH_GAIN_CALIB, lnags_thresh);
-       adm8211_write_bbp(dev, 0x1c, priv->revid == ADM8211_REV_BA ?
+       adm8211_write_bbp(dev, 0x1c, priv->pdev->revision == ADM8211_REV_BA ?
                                     priv->eeprom->cr28 : 0);
        adm8211_write_bbp(dev, 0x1d, priv->eeprom->cr29);
 
                priv->nar |= ADM8211_NAR_EA | ADM8211_NAR_ST | ADM8211_NAR_SR;
 
                /* don't trust the error bits on rev 0x20 and up in adhoc */
-               if (priv->revid >= ADM8211_REV_BA)
+               if (priv->pdev->revision >= ADM8211_REV_BA)
                        priv->soft_rx_crc = 1;
                break;
        case IEEE80211_IF_TYPE_MNTR:
                        break;
                }
 
-               switch (priv->revid) {
+               switch (priv->pdev->revision) {
                case ADM8211_REV_CA:
                        if (priv->transceiver_type == ADM8211_RFMD2958 ||
                            priv->transceiver_type == ADM8211_RFMD2958_RF3000_CONTROL_POWER ||
                        adm8211_write_bbp(dev, 0x1c, 0x00);
                        adm8211_write_bbp(dev, 0x1d, 0x80);
                } else {
-                       if (priv->revid == ADM8211_REV_BA)
+                       if (priv->pdev->revision == ADM8211_REV_BA)
                                adm8211_write_bbp(dev, 0x1c, priv->eeprom->cr28);
                        else
                                adm8211_write_bbp(dev, 0x1c, 0x00);
        u8 rate_buf[12] = {0};
 
        /* write supported rates */
-       if (priv->revid != ADM8211_REV_BA) {
+       if (priv->pdev->revision != ADM8211_REV_BA) {
                rate_buf[0] = ARRAY_SIZE(adm8211_rates);
                for (i = 0; i < ARRAY_SIZE(adm8211_rates); i++)
                        rate_buf[i + 1] = (adm8211_rates[i].rate / 5) | 0x80;
         * PWR0PE2  = 13 us
         * PWR1PE2  = 1 us
         * PWR0TXPE = 8 or 6 */
-       if (priv->revid < ADM8211_REV_CA)
+       if (priv->pdev->revision < ADM8211_REV_CA)
                ADM8211_CSR_WRITE(TOFS2, 0x8815cd18);
        else
                ADM8211_CSR_WRITE(TOFS2, 0x8535cd16);
 
        /* SLOT=20 us, SIFS=110 cycles of 22 MHz (5 us),
         * DIFS=50 us, EIFS=100 us */
-       if (priv->revid < ADM8211_REV_CA)
+       if (priv->pdev->revision < ADM8211_REV_CA)
                ADM8211_CSR_WRITE(IFST, (20 << 23) | (110 << 15) |
                                        (50 << 9)  | 100);
        else
 
        ADM8211_CSR_WRITE(PAR, tmp);
 
-       if (priv->revid == ADM8211_REV_BA &&
+       if (priv->pdev->revision == ADM8211_REV_BA &&
            (priv->transceiver_type == ADM8211_RFMD2958_RF3000_CONTROL_POWER ||
             priv->transceiver_type == ADM8211_RFMD2958)) {
                reg = ADM8211_CSR_READ(CSR_TEST1);
                reg |= (1 << 4) | (1 << 5);
                ADM8211_CSR_WRITE(CSR_TEST1, reg);
-       } else if (priv->revid == ADM8211_REV_CA) {
+       } else if (priv->pdev->revision == ADM8211_REV_CA) {
                reg = ADM8211_CSR_READ(CSR_TEST1);
                reg &= ~((1 << 4) | (1 << 5));
                ADM8211_CSR_WRITE(CSR_TEST1, reg);
                goto err_iounmap;
        }
 
-       pci_read_config_byte(pdev, PCI_CLASS_REVISION, &priv->revid);
-
        *(u32 *)perm_addr = le32_to_cpu((__force __le32)ADM8211_CSR_READ(PAR0));
        *(u16 *)&perm_addr[4] =
                le16_to_cpu((__force __le16)ADM8211_CSR_READ(PAR1) & 0xFFFF);
        priv->mode = IEEE80211_IF_TYPE_MNTR;
 
        /* Power-on issue. EEPROM won't read correctly without */
-       if (priv->revid >= ADM8211_REV_BA) {
+       if (pdev->revision >= ADM8211_REV_BA) {
                ADM8211_CSR_WRITE(FRCTL, 0);
                ADM8211_CSR_READ(FRCTL);
                ADM8211_CSR_WRITE(FRCTL, 1);
 
        printk(KERN_INFO "%s: hwaddr %s, Rev 0x%02x\n",
               wiphy_name(dev->wiphy), print_mac(mac, dev->wiphy->perm_addr),
-              priv->revid);
+              pdev->revision);
 
        return 0;