| .. | .. |
|---|
| 1 | | -/****************************************************************************** |
|---|
| 2 | | - * |
|---|
| 3 | | - * Copyright(c) 2009-2012 Realtek Corporation. |
|---|
| 4 | | - * |
|---|
| 5 | | - * This program is free software; you can redistribute it and/or modify it |
|---|
| 6 | | - * under the terms of version 2 of the GNU General Public License as |
|---|
| 7 | | - * published by the Free Software Foundation. |
|---|
| 8 | | - * |
|---|
| 9 | | - * This program is distributed in the hope that it will be useful, but WITHOUT |
|---|
| 10 | | - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|---|
| 11 | | - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
|---|
| 12 | | - * more details. |
|---|
| 13 | | - * |
|---|
| 14 | | - * The full GNU General Public License is included in this distribution in the |
|---|
| 15 | | - * file called LICENSE. |
|---|
| 16 | | - * |
|---|
| 17 | | - * Contact Information: |
|---|
| 18 | | - * wlanfae <wlanfae@realtek.com> |
|---|
| 19 | | - * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, |
|---|
| 20 | | - * Hsinchu 300, Taiwan. |
|---|
| 21 | | - * |
|---|
| 22 | | - * Larry Finger <Larry.Finger@lwfinger.net> |
|---|
| 23 | | - * |
|---|
| 24 | | - *****************************************************************************/ |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0 |
|---|
| 2 | +/* Copyright(c) 2009-2012 Realtek Corporation.*/ |
|---|
| 25 | 3 | |
|---|
| 26 | 4 | #include "wifi.h" |
|---|
| 27 | 5 | #include "core.h" |
|---|
| .. | .. |
|---|
| 226 | 204 | return; |
|---|
| 227 | 205 | |
|---|
| 228 | 206 | if (pcibridge_vendor == PCI_BRIDGE_VENDOR_UNKNOWN) { |
|---|
| 229 | | - RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE, |
|---|
| 230 | | - "PCI(Bridge) UNKNOWN\n"); |
|---|
| 207 | + rtl_dbg(rtlpriv, COMP_POWER, DBG_TRACE, |
|---|
| 208 | + "PCI(Bridge) UNKNOWN\n"); |
|---|
| 231 | 209 | |
|---|
| 232 | 210 | return; |
|---|
| 233 | 211 | } |
|---|
| .. | .. |
|---|
| 276 | 254 | return; |
|---|
| 277 | 255 | |
|---|
| 278 | 256 | if (pcibridge_vendor == PCI_BRIDGE_VENDOR_UNKNOWN) { |
|---|
| 279 | | - RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE, |
|---|
| 280 | | - "PCI(Bridge) UNKNOWN\n"); |
|---|
| 257 | + rtl_dbg(rtlpriv, COMP_POWER, DBG_TRACE, |
|---|
| 258 | + "PCI(Bridge) UNKNOWN\n"); |
|---|
| 281 | 259 | return; |
|---|
| 282 | 260 | } |
|---|
| 283 | 261 | |
|---|
| .. | .. |
|---|
| 293 | 271 | pci_write_config_byte(rtlpci->pdev, (num4bytes << 2), |
|---|
| 294 | 272 | u_pcibridge_aspmsetting); |
|---|
| 295 | 273 | |
|---|
| 296 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 297 | | - "PlatformEnableASPM(): Write reg[%x] = %x\n", |
|---|
| 298 | | - (pcipriv->ndis_adapter.pcibridge_pciehdr_offset + 0x10), |
|---|
| 299 | | - u_pcibridge_aspmsetting); |
|---|
| 274 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 275 | + "PlatformEnableASPM(): Write reg[%x] = %x\n", |
|---|
| 276 | + (pcipriv->ndis_adapter.pcibridge_pciehdr_offset + 0x10), |
|---|
| 277 | + u_pcibridge_aspmsetting); |
|---|
| 300 | 278 | |
|---|
| 301 | 279 | udelay(50); |
|---|
| 302 | 280 | |
|---|
| .. | .. |
|---|
| 353 | 331 | list_for_each_entry(tpriv, &rtlpriv->glb_var->glb_priv_list, |
|---|
| 354 | 332 | list) { |
|---|
| 355 | 333 | tpcipriv = (struct rtl_pci_priv *)tpriv->priv; |
|---|
| 356 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 357 | | - "pcipriv->ndis_adapter.funcnumber %x\n", |
|---|
| 334 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 335 | + "pcipriv->ndis_adapter.funcnumber %x\n", |
|---|
| 358 | 336 | pcipriv->ndis_adapter.funcnumber); |
|---|
| 359 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 360 | | - "tpcipriv->ndis_adapter.funcnumber %x\n", |
|---|
| 337 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 338 | + "tpcipriv->ndis_adapter.funcnumber %x\n", |
|---|
| 361 | 339 | tpcipriv->ndis_adapter.funcnumber); |
|---|
| 362 | 340 | |
|---|
| 363 | 341 | if (pcipriv->ndis_adapter.busnumber == |
|---|
| .. | .. |
|---|
| 372 | 350 | } |
|---|
| 373 | 351 | } |
|---|
| 374 | 352 | |
|---|
| 375 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 376 | | - "find_buddy_priv %d\n", find_buddy_priv); |
|---|
| 353 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 354 | + "find_buddy_priv %d\n", find_buddy_priv); |
|---|
| 377 | 355 | |
|---|
| 378 | 356 | if (find_buddy_priv) |
|---|
| 379 | 357 | *buddy_priv = tpriv; |
|---|
| .. | .. |
|---|
| 410 | 388 | pcie_capability_read_word(pdev, PCI_EXP_LNKCTL, &linkctrl_reg); |
|---|
| 411 | 389 | pcipriv->ndis_adapter.linkctrl_reg = (u8)linkctrl_reg; |
|---|
| 412 | 390 | |
|---|
| 413 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "Link Control Register =%x\n", |
|---|
| 414 | | - pcipriv->ndis_adapter.linkctrl_reg); |
|---|
| 391 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_TRACE, "Link Control Register =%x\n", |
|---|
| 392 | + pcipriv->ndis_adapter.linkctrl_reg); |
|---|
| 415 | 393 | |
|---|
| 416 | 394 | pci_read_config_byte(pdev, 0x98, &tmp); |
|---|
| 417 | 395 | tmp |= BIT(4); |
|---|
| .. | .. |
|---|
| 521 | 499 | |
|---|
| 522 | 500 | memset(&tcb_desc, 0, sizeof(struct rtl_tcb_desc)); |
|---|
| 523 | 501 | |
|---|
| 524 | | - spin_lock_bh(&rtlpriv->locks.waitq_lock); |
|---|
| 502 | + spin_lock(&rtlpriv->locks.waitq_lock); |
|---|
| 525 | 503 | if (!skb_queue_empty(&mac->skb_waitq[tid]) && |
|---|
| 526 | 504 | (ring->entries - skb_queue_len(&ring->queue) > |
|---|
| 527 | 505 | rtlhal->max_earlymode_num)) { |
|---|
| 528 | 506 | skb = skb_dequeue(&mac->skb_waitq[tid]); |
|---|
| 529 | 507 | } else { |
|---|
| 530 | | - spin_unlock_bh(&rtlpriv->locks.waitq_lock); |
|---|
| 508 | + spin_unlock(&rtlpriv->locks.waitq_lock); |
|---|
| 531 | 509 | break; |
|---|
| 532 | 510 | } |
|---|
| 533 | | - spin_unlock_bh(&rtlpriv->locks.waitq_lock); |
|---|
| 511 | + spin_unlock(&rtlpriv->locks.waitq_lock); |
|---|
| 534 | 512 | |
|---|
| 535 | 513 | /* Some macaddr can't do early mode. like |
|---|
| 536 | 514 | * multicast/broadcast/no_qos data |
|---|
| .. | .. |
|---|
| 569 | 547 | ring->idx = (ring->idx + 1) % ring->entries; |
|---|
| 570 | 548 | |
|---|
| 571 | 549 | skb = __skb_dequeue(&ring->queue); |
|---|
| 572 | | - pci_unmap_single(rtlpci->pdev, |
|---|
| 573 | | - rtlpriv->cfg->ops-> |
|---|
| 574 | | - get_desc(hw, (u8 *)entry, true, |
|---|
| 575 | | - HW_DESC_TXBUFF_ADDR), |
|---|
| 576 | | - skb->len, PCI_DMA_TODEVICE); |
|---|
| 550 | + dma_unmap_single(&rtlpci->pdev->dev, |
|---|
| 551 | + rtlpriv->cfg->ops->get_desc(hw, (u8 *)entry, |
|---|
| 552 | + true, HW_DESC_TXBUFF_ADDR), |
|---|
| 553 | + skb->len, DMA_TO_DEVICE); |
|---|
| 577 | 554 | |
|---|
| 578 | 555 | /* remove early mode header */ |
|---|
| 579 | 556 | if (rtlpriv->rtlhal.earlymode_enable) |
|---|
| 580 | 557 | skb_pull(skb, EM_HDR_LEN); |
|---|
| 581 | 558 | |
|---|
| 582 | | - RT_TRACE(rtlpriv, (COMP_INTR | COMP_SEND), DBG_TRACE, |
|---|
| 583 | | - "new ring->idx:%d, free: skb_queue_len:%d, free: seq:%x\n", |
|---|
| 584 | | - ring->idx, |
|---|
| 585 | | - skb_queue_len(&ring->queue), |
|---|
| 586 | | - *(u16 *)(skb->data + 22)); |
|---|
| 559 | + rtl_dbg(rtlpriv, (COMP_INTR | COMP_SEND), DBG_TRACE, |
|---|
| 560 | + "new ring->idx:%d, free: skb_queue_len:%d, free: seq:%x\n", |
|---|
| 561 | + ring->idx, |
|---|
| 562 | + skb_queue_len(&ring->queue), |
|---|
| 563 | + *(u16 *)(skb->data + 22)); |
|---|
| 587 | 564 | |
|---|
| 588 | 565 | if (prio == TXCMD_QUEUE) { |
|---|
| 589 | 566 | dev_kfree_skb(skb); |
|---|
| .. | .. |
|---|
| 630 | 607 | } |
|---|
| 631 | 608 | |
|---|
| 632 | 609 | if ((ring->entries - skb_queue_len(&ring->queue)) <= 4) { |
|---|
| 633 | | - RT_TRACE(rtlpriv, COMP_ERR, DBG_DMESG, |
|---|
| 634 | | - "more desc left, wake skb_queue@%d, ring->idx = %d, skb_queue_len = 0x%x\n", |
|---|
| 635 | | - prio, ring->idx, |
|---|
| 636 | | - skb_queue_len(&ring->queue)); |
|---|
| 610 | + rtl_dbg(rtlpriv, COMP_ERR, DBG_DMESG, |
|---|
| 611 | + "more desc left, wake skb_queue@%d, ring->idx = %d, skb_queue_len = 0x%x\n", |
|---|
| 612 | + prio, ring->idx, |
|---|
| 613 | + skb_queue_len(&ring->queue)); |
|---|
| 637 | 614 | |
|---|
| 638 | 615 | ieee80211_wake_queue(hw, skb_get_queue_mapping(skb)); |
|---|
| 639 | 616 | } |
|---|
| .. | .. |
|---|
| 644 | 621 | if (((rtlpriv->link_info.num_rx_inperiod + |
|---|
| 645 | 622 | rtlpriv->link_info.num_tx_inperiod) > 8) || |
|---|
| 646 | 623 | rtlpriv->link_info.num_rx_inperiod > 2) |
|---|
| 647 | | - rtl_lps_leave(hw); |
|---|
| 624 | + rtl_lps_leave(hw, false); |
|---|
| 648 | 625 | } |
|---|
| 649 | 626 | |
|---|
| 650 | 627 | static int _rtl_pci_init_one_rxdesc(struct ieee80211_hw *hw, |
|---|
| .. | .. |
|---|
| 668 | 645 | remap: |
|---|
| 669 | 646 | /* just set skb->cb to mapping addr for pci_unmap_single use */ |
|---|
| 670 | 647 | *((dma_addr_t *)skb->cb) = |
|---|
| 671 | | - pci_map_single(rtlpci->pdev, skb_tail_pointer(skb), |
|---|
| 672 | | - rtlpci->rxbuffersize, PCI_DMA_FROMDEVICE); |
|---|
| 648 | + dma_map_single(&rtlpci->pdev->dev, skb_tail_pointer(skb), |
|---|
| 649 | + rtlpci->rxbuffersize, DMA_FROM_DEVICE); |
|---|
| 673 | 650 | bufferaddress = *((dma_addr_t *)skb->cb); |
|---|
| 674 | | - if (pci_dma_mapping_error(rtlpci->pdev, bufferaddress)) |
|---|
| 651 | + if (dma_mapping_error(&rtlpci->pdev->dev, bufferaddress)) |
|---|
| 675 | 652 | return 0; |
|---|
| 676 | 653 | rtlpci->rx_ring[rxring_idx].rx_buf[desc_idx] = skb; |
|---|
| 677 | 654 | if (rtlpriv->use_new_trx_flow) { |
|---|
| .. | .. |
|---|
| 795 | 772 | * AAAAAAttention !!! |
|---|
| 796 | 773 | * We can NOT access 'skb' before 'pci_unmap_single' |
|---|
| 797 | 774 | */ |
|---|
| 798 | | - pci_unmap_single(rtlpci->pdev, *((dma_addr_t *)skb->cb), |
|---|
| 799 | | - rtlpci->rxbuffersize, PCI_DMA_FROMDEVICE); |
|---|
| 775 | + dma_unmap_single(&rtlpci->pdev->dev, *((dma_addr_t *)skb->cb), |
|---|
| 776 | + rtlpci->rxbuffersize, DMA_FROM_DEVICE); |
|---|
| 800 | 777 | |
|---|
| 801 | 778 | /* get a new skb - if fail, old one will be reused */ |
|---|
| 802 | 779 | new_skb = dev_alloc_skb(rtlpci->rxbuffersize); |
|---|
| .. | .. |
|---|
| 823 | 800 | skb_reserve(skb, stats.rx_drvinfo_size + |
|---|
| 824 | 801 | stats.rx_bufshift); |
|---|
| 825 | 802 | } else { |
|---|
| 826 | | - RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, |
|---|
| 827 | | - "skb->end - skb->tail = %d, len is %d\n", |
|---|
| 828 | | - skb->end - skb->tail, len); |
|---|
| 803 | + rtl_dbg(rtlpriv, COMP_ERR, DBG_WARNING, |
|---|
| 804 | + "skb->end - skb->tail = %d, len is %d\n", |
|---|
| 805 | + skb->end - skb->tail, len); |
|---|
| 829 | 806 | dev_kfree_skb_any(skb); |
|---|
| 830 | 807 | goto new_trx_end; |
|---|
| 831 | 808 | } |
|---|
| .. | .. |
|---|
| 844 | 821 | hdr = rtl_get_hdr(skb); |
|---|
| 845 | 822 | fc = rtl_get_fc(skb); |
|---|
| 846 | 823 | |
|---|
| 847 | | - if (!stats.crc && !stats.hwerror) { |
|---|
| 824 | + if (!stats.crc && !stats.hwerror && (skb->len > FCS_LEN)) { |
|---|
| 848 | 825 | memcpy(IEEE80211_SKB_RXCB(skb), &rx_status, |
|---|
| 849 | 826 | sizeof(rx_status)); |
|---|
| 850 | 827 | |
|---|
| .. | .. |
|---|
| 881 | 858 | _rtl_pci_rx_to_mac80211(hw, skb, rx_status); |
|---|
| 882 | 859 | } |
|---|
| 883 | 860 | } else { |
|---|
| 861 | + /* drop packets with errors or those too short */ |
|---|
| 884 | 862 | dev_kfree_skb_any(skb); |
|---|
| 885 | 863 | } |
|---|
| 886 | 864 | new_trx_end: |
|---|
| .. | .. |
|---|
| 896 | 874 | if (((rtlpriv->link_info.num_rx_inperiod + |
|---|
| 897 | 875 | rtlpriv->link_info.num_tx_inperiod) > 8) || |
|---|
| 898 | 876 | rtlpriv->link_info.num_rx_inperiod > 2) |
|---|
| 899 | | - rtl_lps_leave(hw); |
|---|
| 877 | + rtl_lps_leave(hw, false); |
|---|
| 900 | 878 | skb = new_skb; |
|---|
| 901 | 879 | no_new: |
|---|
| 902 | 880 | if (rtlpriv->use_new_trx_flow) { |
|---|
| .. | .. |
|---|
| 946 | 924 | |
|---|
| 947 | 925 | /*<1> beacon related */ |
|---|
| 948 | 926 | if (intvec.inta & rtlpriv->cfg->maps[RTL_IMR_TBDOK]) |
|---|
| 949 | | - RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 950 | | - "beacon ok interrupt!\n"); |
|---|
| 927 | + rtl_dbg(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 928 | + "beacon ok interrupt!\n"); |
|---|
| 951 | 929 | |
|---|
| 952 | 930 | if (unlikely(intvec.inta & rtlpriv->cfg->maps[RTL_IMR_TBDER])) |
|---|
| 953 | | - RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 954 | | - "beacon err interrupt!\n"); |
|---|
| 931 | + rtl_dbg(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 932 | + "beacon err interrupt!\n"); |
|---|
| 955 | 933 | |
|---|
| 956 | 934 | if (intvec.inta & rtlpriv->cfg->maps[RTL_IMR_BDOK]) |
|---|
| 957 | | - RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, "beacon interrupt!\n"); |
|---|
| 935 | + rtl_dbg(rtlpriv, COMP_INTR, DBG_TRACE, "beacon interrupt!\n"); |
|---|
| 958 | 936 | |
|---|
| 959 | 937 | if (intvec.inta & rtlpriv->cfg->maps[RTL_IMR_BCNINT]) { |
|---|
| 960 | | - RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 961 | | - "prepare beacon for interrupt!\n"); |
|---|
| 938 | + rtl_dbg(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 939 | + "prepare beacon for interrupt!\n"); |
|---|
| 962 | 940 | tasklet_schedule(&rtlpriv->works.irq_prepare_bcn_tasklet); |
|---|
| 963 | 941 | } |
|---|
| 964 | 942 | |
|---|
| 965 | 943 | /*<2> Tx related */ |
|---|
| 966 | 944 | if (unlikely(intvec.intb & rtlpriv->cfg->maps[RTL_IMR_TXFOVW])) |
|---|
| 967 | | - RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, "IMR_TXFOVW!\n"); |
|---|
| 945 | + rtl_dbg(rtlpriv, COMP_ERR, DBG_WARNING, "IMR_TXFOVW!\n"); |
|---|
| 968 | 946 | |
|---|
| 969 | 947 | if (intvec.inta & rtlpriv->cfg->maps[RTL_IMR_MGNTDOK]) { |
|---|
| 970 | | - RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 971 | | - "Manage ok interrupt!\n"); |
|---|
| 948 | + rtl_dbg(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 949 | + "Manage ok interrupt!\n"); |
|---|
| 972 | 950 | _rtl_pci_tx_isr(hw, MGNT_QUEUE); |
|---|
| 973 | 951 | } |
|---|
| 974 | 952 | |
|---|
| 975 | 953 | if (intvec.inta & rtlpriv->cfg->maps[RTL_IMR_HIGHDOK]) { |
|---|
| 976 | | - RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 977 | | - "HIGH_QUEUE ok interrupt!\n"); |
|---|
| 954 | + rtl_dbg(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 955 | + "HIGH_QUEUE ok interrupt!\n"); |
|---|
| 978 | 956 | _rtl_pci_tx_isr(hw, HIGH_QUEUE); |
|---|
| 979 | 957 | } |
|---|
| 980 | 958 | |
|---|
| 981 | 959 | if (intvec.inta & rtlpriv->cfg->maps[RTL_IMR_BKDOK]) { |
|---|
| 982 | 960 | rtlpriv->link_info.num_tx_inperiod++; |
|---|
| 983 | 961 | |
|---|
| 984 | | - RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 985 | | - "BK Tx OK interrupt!\n"); |
|---|
| 962 | + rtl_dbg(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 963 | + "BK Tx OK interrupt!\n"); |
|---|
| 986 | 964 | _rtl_pci_tx_isr(hw, BK_QUEUE); |
|---|
| 987 | 965 | } |
|---|
| 988 | 966 | |
|---|
| 989 | 967 | if (intvec.inta & rtlpriv->cfg->maps[RTL_IMR_BEDOK]) { |
|---|
| 990 | 968 | rtlpriv->link_info.num_tx_inperiod++; |
|---|
| 991 | 969 | |
|---|
| 992 | | - RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 993 | | - "BE TX OK interrupt!\n"); |
|---|
| 970 | + rtl_dbg(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 971 | + "BE TX OK interrupt!\n"); |
|---|
| 994 | 972 | _rtl_pci_tx_isr(hw, BE_QUEUE); |
|---|
| 995 | 973 | } |
|---|
| 996 | 974 | |
|---|
| 997 | 975 | if (intvec.inta & rtlpriv->cfg->maps[RTL_IMR_VIDOK]) { |
|---|
| 998 | 976 | rtlpriv->link_info.num_tx_inperiod++; |
|---|
| 999 | 977 | |
|---|
| 1000 | | - RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 1001 | | - "VI TX OK interrupt!\n"); |
|---|
| 978 | + rtl_dbg(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 979 | + "VI TX OK interrupt!\n"); |
|---|
| 1002 | 980 | _rtl_pci_tx_isr(hw, VI_QUEUE); |
|---|
| 1003 | 981 | } |
|---|
| 1004 | 982 | |
|---|
| 1005 | 983 | if (intvec.inta & rtlpriv->cfg->maps[RTL_IMR_VODOK]) { |
|---|
| 1006 | 984 | rtlpriv->link_info.num_tx_inperiod++; |
|---|
| 1007 | 985 | |
|---|
| 1008 | | - RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 1009 | | - "Vo TX OK interrupt!\n"); |
|---|
| 986 | + rtl_dbg(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 987 | + "Vo TX OK interrupt!\n"); |
|---|
| 1010 | 988 | _rtl_pci_tx_isr(hw, VO_QUEUE); |
|---|
| 1011 | 989 | } |
|---|
| 1012 | 990 | |
|---|
| .. | .. |
|---|
| 1014 | 992 | if (intvec.intd & rtlpriv->cfg->maps[RTL_IMR_H2CDOK]) { |
|---|
| 1015 | 993 | rtlpriv->link_info.num_tx_inperiod++; |
|---|
| 1016 | 994 | |
|---|
| 1017 | | - RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 1018 | | - "H2C TX OK interrupt!\n"); |
|---|
| 995 | + rtl_dbg(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 996 | + "H2C TX OK interrupt!\n"); |
|---|
| 1019 | 997 | _rtl_pci_tx_isr(hw, H2C_QUEUE); |
|---|
| 1020 | 998 | } |
|---|
| 1021 | 999 | } |
|---|
| .. | .. |
|---|
| 1024 | 1002 | if (intvec.inta & rtlpriv->cfg->maps[RTL_IMR_COMDOK]) { |
|---|
| 1025 | 1003 | rtlpriv->link_info.num_tx_inperiod++; |
|---|
| 1026 | 1004 | |
|---|
| 1027 | | - RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 1028 | | - "CMD TX OK interrupt!\n"); |
|---|
| 1005 | + rtl_dbg(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 1006 | + "CMD TX OK interrupt!\n"); |
|---|
| 1029 | 1007 | _rtl_pci_tx_isr(hw, TXCMD_QUEUE); |
|---|
| 1030 | 1008 | } |
|---|
| 1031 | 1009 | } |
|---|
| 1032 | 1010 | |
|---|
| 1033 | 1011 | /*<3> Rx related */ |
|---|
| 1034 | 1012 | if (intvec.inta & rtlpriv->cfg->maps[RTL_IMR_ROK]) { |
|---|
| 1035 | | - RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, "Rx ok interrupt!\n"); |
|---|
| 1013 | + rtl_dbg(rtlpriv, COMP_INTR, DBG_TRACE, "Rx ok interrupt!\n"); |
|---|
| 1036 | 1014 | _rtl_pci_rx_interrupt(hw); |
|---|
| 1037 | 1015 | } |
|---|
| 1038 | 1016 | |
|---|
| 1039 | 1017 | if (unlikely(intvec.inta & rtlpriv->cfg->maps[RTL_IMR_RDU])) { |
|---|
| 1040 | | - RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, |
|---|
| 1041 | | - "rx descriptor unavailable!\n"); |
|---|
| 1018 | + rtl_dbg(rtlpriv, COMP_ERR, DBG_WARNING, |
|---|
| 1019 | + "rx descriptor unavailable!\n"); |
|---|
| 1042 | 1020 | _rtl_pci_rx_interrupt(hw); |
|---|
| 1043 | 1021 | } |
|---|
| 1044 | 1022 | |
|---|
| 1045 | 1023 | if (unlikely(intvec.intb & rtlpriv->cfg->maps[RTL_IMR_RXFOVW])) { |
|---|
| 1046 | | - RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, "rx overflow !\n"); |
|---|
| 1024 | + rtl_dbg(rtlpriv, COMP_ERR, DBG_WARNING, "rx overflow !\n"); |
|---|
| 1047 | 1025 | _rtl_pci_rx_interrupt(hw); |
|---|
| 1048 | 1026 | } |
|---|
| 1049 | 1027 | |
|---|
| 1050 | 1028 | /*<4> fw related*/ |
|---|
| 1051 | 1029 | if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723AE) { |
|---|
| 1052 | 1030 | if (intvec.inta & rtlpriv->cfg->maps[RTL_IMR_C2HCMD]) { |
|---|
| 1053 | | - RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 1054 | | - "firmware interrupt!\n"); |
|---|
| 1031 | + rtl_dbg(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 1032 | + "firmware interrupt!\n"); |
|---|
| 1055 | 1033 | queue_delayed_work(rtlpriv->works.rtl_wq, |
|---|
| 1056 | 1034 | &rtlpriv->works.fwevt_wq, 0); |
|---|
| 1057 | 1035 | } |
|---|
| .. | .. |
|---|
| 1067 | 1045 | rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) { |
|---|
| 1068 | 1046 | if (unlikely(intvec.inta & |
|---|
| 1069 | 1047 | rtlpriv->cfg->maps[RTL_IMR_HSISR_IND])) { |
|---|
| 1070 | | - RT_TRACE(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 1071 | | - "hsisr interrupt!\n"); |
|---|
| 1048 | + rtl_dbg(rtlpriv, COMP_INTR, DBG_TRACE, |
|---|
| 1049 | + "hsisr interrupt!\n"); |
|---|
| 1072 | 1050 | _rtl_pci_hs_interrupt(hw); |
|---|
| 1073 | 1051 | } |
|---|
| 1074 | 1052 | } |
|---|
| .. | .. |
|---|
| 1082 | 1060 | return ret; |
|---|
| 1083 | 1061 | } |
|---|
| 1084 | 1062 | |
|---|
| 1085 | | -static void _rtl_pci_irq_tasklet(unsigned long data) |
|---|
| 1063 | +static void _rtl_pci_irq_tasklet(struct tasklet_struct *t) |
|---|
| 1086 | 1064 | { |
|---|
| 1087 | | - struct ieee80211_hw *hw = (struct ieee80211_hw *)data; |
|---|
| 1065 | + struct rtl_priv *rtlpriv = from_tasklet(rtlpriv, t, works.irq_tasklet); |
|---|
| 1066 | + struct ieee80211_hw *hw = rtlpriv->hw; |
|---|
| 1088 | 1067 | _rtl_pci_tx_chk_waitq(hw); |
|---|
| 1089 | 1068 | } |
|---|
| 1090 | 1069 | |
|---|
| 1091 | | -static void _rtl_pci_prepare_bcn_tasklet(unsigned long data) |
|---|
| 1070 | +static void _rtl_pci_prepare_bcn_tasklet(struct tasklet_struct *t) |
|---|
| 1092 | 1071 | { |
|---|
| 1093 | | - struct ieee80211_hw *hw = (struct ieee80211_hw *)data; |
|---|
| 1094 | | - struct rtl_priv *rtlpriv = rtl_priv(hw); |
|---|
| 1072 | + struct rtl_priv *rtlpriv = from_tasklet(rtlpriv, t, |
|---|
| 1073 | + works.irq_prepare_bcn_tasklet); |
|---|
| 1074 | + struct ieee80211_hw *hw = rtlpriv->hw; |
|---|
| 1095 | 1075 | struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); |
|---|
| 1096 | 1076 | struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); |
|---|
| 1097 | 1077 | struct rtl8192_tx_ring *ring = NULL; |
|---|
| .. | .. |
|---|
| 1113 | 1093 | else |
|---|
| 1114 | 1094 | entry = (u8 *)(&ring->desc[ring->idx]); |
|---|
| 1115 | 1095 | if (pskb) { |
|---|
| 1116 | | - pci_unmap_single(rtlpci->pdev, |
|---|
| 1117 | | - rtlpriv->cfg->ops->get_desc( |
|---|
| 1118 | | - hw, (u8 *)entry, true, HW_DESC_TXBUFF_ADDR), |
|---|
| 1119 | | - pskb->len, PCI_DMA_TODEVICE); |
|---|
| 1096 | + dma_unmap_single(&rtlpci->pdev->dev, |
|---|
| 1097 | + rtlpriv->cfg->ops->get_desc(hw, (u8 *)entry, |
|---|
| 1098 | + true, HW_DESC_TXBUFF_ADDR), |
|---|
| 1099 | + pskb->len, DMA_TO_DEVICE); |
|---|
| 1120 | 1100 | kfree_skb(pskb); |
|---|
| 1121 | 1101 | } |
|---|
| 1122 | 1102 | |
|---|
| .. | .. |
|---|
| 1215 | 1195 | rtlpci->acm_method = EACMWAY2_SW; |
|---|
| 1216 | 1196 | |
|---|
| 1217 | 1197 | /*task */ |
|---|
| 1218 | | - tasklet_init(&rtlpriv->works.irq_tasklet, |
|---|
| 1219 | | - _rtl_pci_irq_tasklet, |
|---|
| 1220 | | - (unsigned long)hw); |
|---|
| 1221 | | - tasklet_init(&rtlpriv->works.irq_prepare_bcn_tasklet, |
|---|
| 1222 | | - _rtl_pci_prepare_bcn_tasklet, |
|---|
| 1223 | | - (unsigned long)hw); |
|---|
| 1198 | + tasklet_setup(&rtlpriv->works.irq_tasklet, _rtl_pci_irq_tasklet); |
|---|
| 1199 | + tasklet_setup(&rtlpriv->works.irq_prepare_bcn_tasklet, |
|---|
| 1200 | + _rtl_pci_prepare_bcn_tasklet); |
|---|
| 1224 | 1201 | INIT_WORK(&rtlpriv->works.lps_change_work, |
|---|
| 1225 | 1202 | rtl_lps_change_work_callback); |
|---|
| 1226 | 1203 | } |
|---|
| .. | .. |
|---|
| 1239 | 1216 | /* alloc tx buffer desc for new trx flow*/ |
|---|
| 1240 | 1217 | if (rtlpriv->use_new_trx_flow) { |
|---|
| 1241 | 1218 | buffer_desc = |
|---|
| 1242 | | - pci_zalloc_consistent(rtlpci->pdev, |
|---|
| 1243 | | - sizeof(*buffer_desc) * entries, |
|---|
| 1244 | | - &buffer_desc_dma); |
|---|
| 1219 | + dma_alloc_coherent(&rtlpci->pdev->dev, |
|---|
| 1220 | + sizeof(*buffer_desc) * entries, |
|---|
| 1221 | + &buffer_desc_dma, GFP_KERNEL); |
|---|
| 1245 | 1222 | |
|---|
| 1246 | 1223 | if (!buffer_desc || (unsigned long)buffer_desc & 0xFF) { |
|---|
| 1247 | 1224 | pr_err("Cannot allocate TX ring (prio = %d)\n", |
|---|
| .. | .. |
|---|
| 1257 | 1234 | } |
|---|
| 1258 | 1235 | |
|---|
| 1259 | 1236 | /* alloc dma for this ring */ |
|---|
| 1260 | | - desc = pci_zalloc_consistent(rtlpci->pdev, |
|---|
| 1261 | | - sizeof(*desc) * entries, &desc_dma); |
|---|
| 1237 | + desc = dma_alloc_coherent(&rtlpci->pdev->dev, sizeof(*desc) * entries, |
|---|
| 1238 | + &desc_dma, GFP_KERNEL); |
|---|
| 1262 | 1239 | |
|---|
| 1263 | 1240 | if (!desc || (unsigned long)desc & 0xFF) { |
|---|
| 1264 | 1241 | pr_err("Cannot allocate TX ring (prio = %d)\n", prio); |
|---|
| .. | .. |
|---|
| 1272 | 1249 | rtlpci->tx_ring[prio].entries = entries; |
|---|
| 1273 | 1250 | skb_queue_head_init(&rtlpci->tx_ring[prio].queue); |
|---|
| 1274 | 1251 | |
|---|
| 1275 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "queue:%d, ring_addr:%p\n", |
|---|
| 1276 | | - prio, desc); |
|---|
| 1252 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD, "queue:%d, ring_addr:%p\n", |
|---|
| 1253 | + prio, desc); |
|---|
| 1277 | 1254 | |
|---|
| 1278 | 1255 | /* init every desc in this ring */ |
|---|
| 1279 | 1256 | if (!rtlpriv->use_new_trx_flow) { |
|---|
| .. | .. |
|---|
| 1301 | 1278 | struct rtl_rx_buffer_desc *entry = NULL; |
|---|
| 1302 | 1279 | /* alloc dma for this ring */ |
|---|
| 1303 | 1280 | rtlpci->rx_ring[rxring_idx].buffer_desc = |
|---|
| 1304 | | - pci_zalloc_consistent(rtlpci->pdev, |
|---|
| 1305 | | - sizeof(*rtlpci->rx_ring[rxring_idx]. |
|---|
| 1306 | | - buffer_desc) * |
|---|
| 1307 | | - rtlpci->rxringcount, |
|---|
| 1308 | | - &rtlpci->rx_ring[rxring_idx].dma); |
|---|
| 1281 | + dma_alloc_coherent(&rtlpci->pdev->dev, |
|---|
| 1282 | + sizeof(*rtlpci->rx_ring[rxring_idx].buffer_desc) * |
|---|
| 1283 | + rtlpci->rxringcount, |
|---|
| 1284 | + &rtlpci->rx_ring[rxring_idx].dma, GFP_KERNEL); |
|---|
| 1309 | 1285 | if (!rtlpci->rx_ring[rxring_idx].buffer_desc || |
|---|
| 1310 | 1286 | (ulong)rtlpci->rx_ring[rxring_idx].buffer_desc & 0xFF) { |
|---|
| 1311 | 1287 | pr_err("Cannot allocate RX ring\n"); |
|---|
| .. | .. |
|---|
| 1325 | 1301 | u8 tmp_one = 1; |
|---|
| 1326 | 1302 | /* alloc dma for this ring */ |
|---|
| 1327 | 1303 | rtlpci->rx_ring[rxring_idx].desc = |
|---|
| 1328 | | - pci_zalloc_consistent(rtlpci->pdev, |
|---|
| 1329 | | - sizeof(*rtlpci->rx_ring[rxring_idx]. |
|---|
| 1330 | | - desc) * rtlpci->rxringcount, |
|---|
| 1331 | | - &rtlpci->rx_ring[rxring_idx].dma); |
|---|
| 1304 | + dma_alloc_coherent(&rtlpci->pdev->dev, |
|---|
| 1305 | + sizeof(*rtlpci->rx_ring[rxring_idx].desc) * |
|---|
| 1306 | + rtlpci->rxringcount, |
|---|
| 1307 | + &rtlpci->rx_ring[rxring_idx].dma, GFP_KERNEL); |
|---|
| 1332 | 1308 | if (!rtlpci->rx_ring[rxring_idx].desc || |
|---|
| 1333 | 1309 | (unsigned long)rtlpci->rx_ring[rxring_idx].desc & 0xFF) { |
|---|
| 1334 | 1310 | pr_err("Cannot allocate RX ring\n"); |
|---|
| .. | .. |
|---|
| 1368 | 1344 | else |
|---|
| 1369 | 1345 | entry = (u8 *)(&ring->desc[ring->idx]); |
|---|
| 1370 | 1346 | |
|---|
| 1371 | | - pci_unmap_single(rtlpci->pdev, |
|---|
| 1347 | + dma_unmap_single(&rtlpci->pdev->dev, |
|---|
| 1372 | 1348 | rtlpriv->cfg->ops->get_desc(hw, (u8 *)entry, |
|---|
| 1373 | | - true, |
|---|
| 1374 | | - HW_DESC_TXBUFF_ADDR), |
|---|
| 1375 | | - skb->len, PCI_DMA_TODEVICE); |
|---|
| 1349 | + true, HW_DESC_TXBUFF_ADDR), |
|---|
| 1350 | + skb->len, DMA_TO_DEVICE); |
|---|
| 1376 | 1351 | kfree_skb(skb); |
|---|
| 1377 | 1352 | ring->idx = (ring->idx + 1) % ring->entries; |
|---|
| 1378 | 1353 | } |
|---|
| 1379 | 1354 | |
|---|
| 1380 | 1355 | /* free dma of this ring */ |
|---|
| 1381 | | - pci_free_consistent(rtlpci->pdev, |
|---|
| 1382 | | - sizeof(*ring->desc) * ring->entries, |
|---|
| 1383 | | - ring->desc, ring->dma); |
|---|
| 1356 | + dma_free_coherent(&rtlpci->pdev->dev, |
|---|
| 1357 | + sizeof(*ring->desc) * ring->entries, ring->desc, |
|---|
| 1358 | + ring->dma); |
|---|
| 1384 | 1359 | ring->desc = NULL; |
|---|
| 1385 | 1360 | if (rtlpriv->use_new_trx_flow) { |
|---|
| 1386 | | - pci_free_consistent(rtlpci->pdev, |
|---|
| 1387 | | - sizeof(*ring->buffer_desc) * ring->entries, |
|---|
| 1388 | | - ring->buffer_desc, ring->buffer_desc_dma); |
|---|
| 1361 | + dma_free_coherent(&rtlpci->pdev->dev, |
|---|
| 1362 | + sizeof(*ring->buffer_desc) * ring->entries, |
|---|
| 1363 | + ring->buffer_desc, ring->buffer_desc_dma); |
|---|
| 1389 | 1364 | ring->buffer_desc = NULL; |
|---|
| 1390 | 1365 | } |
|---|
| 1391 | 1366 | } |
|---|
| .. | .. |
|---|
| 1402 | 1377 | |
|---|
| 1403 | 1378 | if (!skb) |
|---|
| 1404 | 1379 | continue; |
|---|
| 1405 | | - pci_unmap_single(rtlpci->pdev, *((dma_addr_t *)skb->cb), |
|---|
| 1406 | | - rtlpci->rxbuffersize, PCI_DMA_FROMDEVICE); |
|---|
| 1380 | + dma_unmap_single(&rtlpci->pdev->dev, *((dma_addr_t *)skb->cb), |
|---|
| 1381 | + rtlpci->rxbuffersize, DMA_FROM_DEVICE); |
|---|
| 1407 | 1382 | kfree_skb(skb); |
|---|
| 1408 | 1383 | } |
|---|
| 1409 | 1384 | |
|---|
| 1410 | 1385 | /* free dma of this ring */ |
|---|
| 1411 | 1386 | if (rtlpriv->use_new_trx_flow) { |
|---|
| 1412 | | - pci_free_consistent(rtlpci->pdev, |
|---|
| 1413 | | - sizeof(*rtlpci->rx_ring[rxring_idx]. |
|---|
| 1414 | | - buffer_desc) * rtlpci->rxringcount, |
|---|
| 1415 | | - rtlpci->rx_ring[rxring_idx].buffer_desc, |
|---|
| 1416 | | - rtlpci->rx_ring[rxring_idx].dma); |
|---|
| 1387 | + dma_free_coherent(&rtlpci->pdev->dev, |
|---|
| 1388 | + sizeof(*rtlpci->rx_ring[rxring_idx].buffer_desc) * |
|---|
| 1389 | + rtlpci->rxringcount, |
|---|
| 1390 | + rtlpci->rx_ring[rxring_idx].buffer_desc, |
|---|
| 1391 | + rtlpci->rx_ring[rxring_idx].dma); |
|---|
| 1417 | 1392 | rtlpci->rx_ring[rxring_idx].buffer_desc = NULL; |
|---|
| 1418 | 1393 | } else { |
|---|
| 1419 | | - pci_free_consistent(rtlpci->pdev, |
|---|
| 1420 | | - sizeof(*rtlpci->rx_ring[rxring_idx].desc) * |
|---|
| 1421 | | - rtlpci->rxringcount, |
|---|
| 1422 | | - rtlpci->rx_ring[rxring_idx].desc, |
|---|
| 1423 | | - rtlpci->rx_ring[rxring_idx].dma); |
|---|
| 1394 | + dma_free_coherent(&rtlpci->pdev->dev, |
|---|
| 1395 | + sizeof(*rtlpci->rx_ring[rxring_idx].desc) * |
|---|
| 1396 | + rtlpci->rxringcount, |
|---|
| 1397 | + rtlpci->rx_ring[rxring_idx].desc, |
|---|
| 1398 | + rtlpci->rx_ring[rxring_idx].dma); |
|---|
| 1424 | 1399 | rtlpci->rx_ring[rxring_idx].desc = NULL; |
|---|
| 1425 | 1400 | } |
|---|
| 1426 | 1401 | } |
|---|
| .. | .. |
|---|
| 1548 | 1523 | else |
|---|
| 1549 | 1524 | entry = (u8 *)(&ring->desc[ring->idx]); |
|---|
| 1550 | 1525 | |
|---|
| 1551 | | - pci_unmap_single(rtlpci->pdev, |
|---|
| 1552 | | - rtlpriv->cfg->ops-> |
|---|
| 1553 | | - get_desc(hw, (u8 *) |
|---|
| 1554 | | - entry, |
|---|
| 1555 | | - true, |
|---|
| 1556 | | - HW_DESC_TXBUFF_ADDR), |
|---|
| 1557 | | - skb->len, PCI_DMA_TODEVICE); |
|---|
| 1526 | + dma_unmap_single(&rtlpci->pdev->dev, |
|---|
| 1527 | + rtlpriv->cfg->ops->get_desc(hw, (u8 *)entry, |
|---|
| 1528 | + true, HW_DESC_TXBUFF_ADDR), |
|---|
| 1529 | + skb->len, DMA_TO_DEVICE); |
|---|
| 1558 | 1530 | dev_kfree_skb_irq(skb); |
|---|
| 1559 | 1531 | ring->idx = (ring->idx + 1) % ring->entries; |
|---|
| 1560 | 1532 | } |
|---|
| .. | .. |
|---|
| 1670 | 1642 | true, HW_DESC_OWN); |
|---|
| 1671 | 1643 | |
|---|
| 1672 | 1644 | if (own == 1 && hw_queue != BEACON_QUEUE) { |
|---|
| 1673 | | - RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, |
|---|
| 1674 | | - "No more TX desc@%d, ring->idx = %d, idx = %d, skb_queue_len = 0x%x\n", |
|---|
| 1675 | | - hw_queue, ring->idx, idx, |
|---|
| 1676 | | - skb_queue_len(&ring->queue)); |
|---|
| 1645 | + rtl_dbg(rtlpriv, COMP_ERR, DBG_WARNING, |
|---|
| 1646 | + "No more TX desc@%d, ring->idx = %d, idx = %d, skb_queue_len = 0x%x\n", |
|---|
| 1647 | + hw_queue, ring->idx, idx, |
|---|
| 1648 | + skb_queue_len(&ring->queue)); |
|---|
| 1677 | 1649 | |
|---|
| 1678 | 1650 | spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, |
|---|
| 1679 | 1651 | flags); |
|---|
| .. | .. |
|---|
| 1683 | 1655 | |
|---|
| 1684 | 1656 | if (rtlpriv->cfg->ops->get_available_desc && |
|---|
| 1685 | 1657 | rtlpriv->cfg->ops->get_available_desc(hw, hw_queue) == 0) { |
|---|
| 1686 | | - RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, |
|---|
| 1687 | | - "get_available_desc fail\n"); |
|---|
| 1658 | + rtl_dbg(rtlpriv, COMP_ERR, DBG_WARNING, |
|---|
| 1659 | + "get_available_desc fail\n"); |
|---|
| 1688 | 1660 | spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags); |
|---|
| 1689 | 1661 | return skb->len; |
|---|
| 1690 | 1662 | } |
|---|
| .. | .. |
|---|
| 1707 | 1679 | |
|---|
| 1708 | 1680 | if ((ring->entries - skb_queue_len(&ring->queue)) < 2 && |
|---|
| 1709 | 1681 | hw_queue != BEACON_QUEUE) { |
|---|
| 1710 | | - RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD, |
|---|
| 1711 | | - "less desc left, stop skb_queue@%d, ring->idx = %d, idx = %d, skb_queue_len = 0x%x\n", |
|---|
| 1682 | + rtl_dbg(rtlpriv, COMP_ERR, DBG_LOUD, |
|---|
| 1683 | + "less desc left, stop skb_queue@%d, ring->idx = %d, idx = %d, skb_queue_len = 0x%x\n", |
|---|
| 1712 | 1684 | hw_queue, ring->idx, idx, |
|---|
| 1713 | 1685 | skb_queue_len(&ring->queue)); |
|---|
| 1714 | 1686 | |
|---|
| .. | .. |
|---|
| 1815 | 1787 | |
|---|
| 1816 | 1788 | err = rtlpriv->cfg->ops->hw_init(hw); |
|---|
| 1817 | 1789 | if (err) { |
|---|
| 1818 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 1819 | | - "Failed to config hardware!\n"); |
|---|
| 1790 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 1791 | + "Failed to config hardware!\n"); |
|---|
| 1792 | + kfree(rtlpriv->btcoexist.btc_context); |
|---|
| 1793 | + kfree(rtlpriv->btcoexist.wifi_only_context); |
|---|
| 1820 | 1794 | return err; |
|---|
| 1821 | 1795 | } |
|---|
| 1822 | 1796 | rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RETRY_LIMIT, |
|---|
| 1823 | 1797 | &rtlmac->retry_long); |
|---|
| 1824 | 1798 | |
|---|
| 1825 | 1799 | rtlpriv->cfg->ops->enable_interrupt(hw); |
|---|
| 1826 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "enable_interrupt OK\n"); |
|---|
| 1800 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD, "enable_interrupt OK\n"); |
|---|
| 1827 | 1801 | |
|---|
| 1828 | 1802 | rtl_init_rx_config(hw); |
|---|
| 1829 | 1803 | |
|---|
| .. | .. |
|---|
| 1834 | 1808 | |
|---|
| 1835 | 1809 | rtlpci->up_first_time = false; |
|---|
| 1836 | 1810 | |
|---|
| 1837 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "%s OK\n", __func__); |
|---|
| 1811 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_DMESG, "%s OK\n", __func__); |
|---|
| 1838 | 1812 | return 0; |
|---|
| 1839 | 1813 | } |
|---|
| 1840 | 1814 | |
|---|
| .. | .. |
|---|
| 1928 | 1902 | deviceid == RTL_PCI_8171_DID) { |
|---|
| 1929 | 1903 | switch (revisionid) { |
|---|
| 1930 | 1904 | case RTL_PCI_REVISION_ID_8192PCIE: |
|---|
| 1931 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 1932 | | - "8192 PCI-E is found - vid/did=%x/%x\n", |
|---|
| 1933 | | - venderid, deviceid); |
|---|
| 1905 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 1906 | + "8192 PCI-E is found - vid/did=%x/%x\n", |
|---|
| 1907 | + venderid, deviceid); |
|---|
| 1934 | 1908 | rtlhal->hw_type = HARDWARE_TYPE_RTL8192E; |
|---|
| 1935 | 1909 | return false; |
|---|
| 1936 | 1910 | case RTL_PCI_REVISION_ID_8192SE: |
|---|
| 1937 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 1938 | | - "8192SE is found - vid/did=%x/%x\n", |
|---|
| 1939 | | - venderid, deviceid); |
|---|
| 1911 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 1912 | + "8192SE is found - vid/did=%x/%x\n", |
|---|
| 1913 | + venderid, deviceid); |
|---|
| 1940 | 1914 | rtlhal->hw_type = HARDWARE_TYPE_RTL8192SE; |
|---|
| 1941 | 1915 | break; |
|---|
| 1942 | 1916 | default: |
|---|
| 1943 | | - RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, |
|---|
| 1944 | | - "Err: Unknown device - vid/did=%x/%x\n", |
|---|
| 1945 | | - venderid, deviceid); |
|---|
| 1917 | + rtl_dbg(rtlpriv, COMP_ERR, DBG_WARNING, |
|---|
| 1918 | + "Err: Unknown device - vid/did=%x/%x\n", |
|---|
| 1919 | + venderid, deviceid); |
|---|
| 1946 | 1920 | rtlhal->hw_type = HARDWARE_TYPE_RTL8192SE; |
|---|
| 1947 | 1921 | break; |
|---|
| 1948 | 1922 | } |
|---|
| 1949 | 1923 | } else if (deviceid == RTL_PCI_8723AE_DID) { |
|---|
| 1950 | 1924 | rtlhal->hw_type = HARDWARE_TYPE_RTL8723AE; |
|---|
| 1951 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 1952 | | - "8723AE PCI-E is found - vid/did=%x/%x\n", |
|---|
| 1953 | | - venderid, deviceid); |
|---|
| 1925 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 1926 | + "8723AE PCI-E is found - vid/did=%x/%x\n", |
|---|
| 1927 | + venderid, deviceid); |
|---|
| 1954 | 1928 | } else if (deviceid == RTL_PCI_8192CET_DID || |
|---|
| 1955 | 1929 | deviceid == RTL_PCI_8192CE_DID || |
|---|
| 1956 | 1930 | deviceid == RTL_PCI_8191CE_DID || |
|---|
| 1957 | 1931 | deviceid == RTL_PCI_8188CE_DID) { |
|---|
| 1958 | 1932 | rtlhal->hw_type = HARDWARE_TYPE_RTL8192CE; |
|---|
| 1959 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 1960 | | - "8192C PCI-E is found - vid/did=%x/%x\n", |
|---|
| 1961 | | - venderid, deviceid); |
|---|
| 1933 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 1934 | + "8192C PCI-E is found - vid/did=%x/%x\n", |
|---|
| 1935 | + venderid, deviceid); |
|---|
| 1962 | 1936 | } else if (deviceid == RTL_PCI_8192DE_DID || |
|---|
| 1963 | 1937 | deviceid == RTL_PCI_8192DE_DID2) { |
|---|
| 1964 | 1938 | rtlhal->hw_type = HARDWARE_TYPE_RTL8192DE; |
|---|
| 1965 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 1966 | | - "8192D PCI-E is found - vid/did=%x/%x\n", |
|---|
| 1967 | | - venderid, deviceid); |
|---|
| 1939 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 1940 | + "8192D PCI-E is found - vid/did=%x/%x\n", |
|---|
| 1941 | + venderid, deviceid); |
|---|
| 1968 | 1942 | } else if (deviceid == RTL_PCI_8188EE_DID) { |
|---|
| 1969 | 1943 | rtlhal->hw_type = HARDWARE_TYPE_RTL8188EE; |
|---|
| 1970 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 1971 | | - "Find adapter, Hardware type is 8188EE\n"); |
|---|
| 1944 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 1945 | + "Find adapter, Hardware type is 8188EE\n"); |
|---|
| 1972 | 1946 | } else if (deviceid == RTL_PCI_8723BE_DID) { |
|---|
| 1973 | 1947 | rtlhal->hw_type = HARDWARE_TYPE_RTL8723BE; |
|---|
| 1974 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 1975 | | - "Find adapter, Hardware type is 8723BE\n"); |
|---|
| 1948 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 1949 | + "Find adapter, Hardware type is 8723BE\n"); |
|---|
| 1976 | 1950 | } else if (deviceid == RTL_PCI_8192EE_DID) { |
|---|
| 1977 | 1951 | rtlhal->hw_type = HARDWARE_TYPE_RTL8192EE; |
|---|
| 1978 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 1979 | | - "Find adapter, Hardware type is 8192EE\n"); |
|---|
| 1952 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 1953 | + "Find adapter, Hardware type is 8192EE\n"); |
|---|
| 1980 | 1954 | } else if (deviceid == RTL_PCI_8821AE_DID) { |
|---|
| 1981 | 1955 | rtlhal->hw_type = HARDWARE_TYPE_RTL8821AE; |
|---|
| 1982 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 1983 | | - "Find adapter, Hardware type is 8821AE\n"); |
|---|
| 1956 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 1957 | + "Find adapter, Hardware type is 8821AE\n"); |
|---|
| 1984 | 1958 | } else if (deviceid == RTL_PCI_8812AE_DID) { |
|---|
| 1985 | 1959 | rtlhal->hw_type = HARDWARE_TYPE_RTL8812AE; |
|---|
| 1986 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 1987 | | - "Find adapter, Hardware type is 8812AE\n"); |
|---|
| 1960 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 1961 | + "Find adapter, Hardware type is 8812AE\n"); |
|---|
| 1988 | 1962 | } else if (deviceid == RTL_PCI_8822BE_DID) { |
|---|
| 1989 | 1963 | rtlhal->hw_type = HARDWARE_TYPE_RTL8822BE; |
|---|
| 1990 | 1964 | rtlhal->bandset = BAND_ON_BOTH; |
|---|
| 1991 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 1992 | | - "Find adapter, Hardware type is 8822BE\n"); |
|---|
| 1965 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 1966 | + "Find adapter, Hardware type is 8822BE\n"); |
|---|
| 1993 | 1967 | } else { |
|---|
| 1994 | | - RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, |
|---|
| 1995 | | - "Err: Unknown device - vid/did=%x/%x\n", |
|---|
| 1968 | + rtl_dbg(rtlpriv, COMP_ERR, DBG_WARNING, |
|---|
| 1969 | + "Err: Unknown device - vid/did=%x/%x\n", |
|---|
| 1996 | 1970 | venderid, deviceid); |
|---|
| 1997 | 1971 | |
|---|
| 1998 | 1972 | rtlhal->hw_type = RTL_DEFAULT_HARDWARE_TYPE; |
|---|
| .. | .. |
|---|
| 2001 | 1975 | if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192DE) { |
|---|
| 2002 | 1976 | if (revisionid == 0 || revisionid == 1) { |
|---|
| 2003 | 1977 | if (revisionid == 0) { |
|---|
| 2004 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 2005 | | - "Find 92DE MAC0\n"); |
|---|
| 1978 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 1979 | + "Find 92DE MAC0\n"); |
|---|
| 2006 | 1980 | rtlhal->interfaceindex = 0; |
|---|
| 2007 | 1981 | } else if (revisionid == 1) { |
|---|
| 2008 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 2009 | | - "Find 92DE MAC1\n"); |
|---|
| 1982 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 1983 | + "Find 92DE MAC1\n"); |
|---|
| 2010 | 1984 | rtlhal->interfaceindex = 1; |
|---|
| 2011 | 1985 | } |
|---|
| 2012 | 1986 | } else { |
|---|
| 2013 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 2014 | | - "Unknown device - VendorID/DeviceID=%x/%x, Revision=%x\n", |
|---|
| 1987 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_LOUD, |
|---|
| 1988 | + "Unknown device - VendorID/DeviceID=%x/%x, Revision=%x\n", |
|---|
| 2015 | 1989 | venderid, deviceid, revisionid); |
|---|
| 2016 | 1990 | rtlhal->interfaceindex = 0; |
|---|
| 2017 | 1991 | } |
|---|
| .. | .. |
|---|
| 2045 | 2019 | for (tmp = 0; tmp < PCI_BRIDGE_VENDOR_MAX; tmp++) { |
|---|
| 2046 | 2020 | if (bridge_pdev->vendor == pcibridge_vendors[tmp]) { |
|---|
| 2047 | 2021 | pcipriv->ndis_adapter.pcibridge_vendor = tmp; |
|---|
| 2048 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 2049 | | - "Pci Bridge Vendor is found index: %d\n", |
|---|
| 2050 | | - tmp); |
|---|
| 2022 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 2023 | + "Pci Bridge Vendor is found index: %d\n", |
|---|
| 2024 | + tmp); |
|---|
| 2051 | 2025 | break; |
|---|
| 2052 | 2026 | } |
|---|
| 2053 | 2027 | } |
|---|
| .. | .. |
|---|
| 2075 | 2049 | } |
|---|
| 2076 | 2050 | } |
|---|
| 2077 | 2051 | |
|---|
| 2078 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 2079 | | - "pcidev busnumber:devnumber:funcnumber:vendor:link_ctl %d:%d:%d:%x:%x\n", |
|---|
| 2080 | | - pcipriv->ndis_adapter.busnumber, |
|---|
| 2081 | | - pcipriv->ndis_adapter.devnumber, |
|---|
| 2082 | | - pcipriv->ndis_adapter.funcnumber, |
|---|
| 2083 | | - pdev->vendor, pcipriv->ndis_adapter.linkctrl_reg); |
|---|
| 2052 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 2053 | + "pcidev busnumber:devnumber:funcnumber:vendor:link_ctl %d:%d:%d:%x:%x\n", |
|---|
| 2054 | + pcipriv->ndis_adapter.busnumber, |
|---|
| 2055 | + pcipriv->ndis_adapter.devnumber, |
|---|
| 2056 | + pcipriv->ndis_adapter.funcnumber, |
|---|
| 2057 | + pdev->vendor, pcipriv->ndis_adapter.linkctrl_reg); |
|---|
| 2084 | 2058 | |
|---|
| 2085 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 2086 | | - "pci_bridge busnumber:devnumber:funcnumber:vendor:pcie_cap:link_ctl_reg:amd %d:%d:%d:%x:%x:%x:%x\n", |
|---|
| 2087 | | - pcipriv->ndis_adapter.pcibridge_busnum, |
|---|
| 2088 | | - pcipriv->ndis_adapter.pcibridge_devnum, |
|---|
| 2089 | | - pcipriv->ndis_adapter.pcibridge_funcnum, |
|---|
| 2090 | | - pcibridge_vendors[pcipriv->ndis_adapter.pcibridge_vendor], |
|---|
| 2091 | | - pcipriv->ndis_adapter.pcibridge_pciehdr_offset, |
|---|
| 2092 | | - pcipriv->ndis_adapter.pcibridge_linkctrlreg, |
|---|
| 2093 | | - pcipriv->ndis_adapter.amd_l1_patch); |
|---|
| 2059 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 2060 | + "pci_bridge busnumber:devnumber:funcnumber:vendor:pcie_cap:link_ctl_reg:amd %d:%d:%d:%x:%x:%x:%x\n", |
|---|
| 2061 | + pcipriv->ndis_adapter.pcibridge_busnum, |
|---|
| 2062 | + pcipriv->ndis_adapter.pcibridge_devnum, |
|---|
| 2063 | + pcipriv->ndis_adapter.pcibridge_funcnum, |
|---|
| 2064 | + pcibridge_vendors[pcipriv->ndis_adapter.pcibridge_vendor], |
|---|
| 2065 | + pcipriv->ndis_adapter.pcibridge_pciehdr_offset, |
|---|
| 2066 | + pcipriv->ndis_adapter.pcibridge_linkctrlreg, |
|---|
| 2067 | + pcipriv->ndis_adapter.amd_l1_patch); |
|---|
| 2094 | 2068 | |
|---|
| 2095 | 2069 | rtl_pci_parse_configuration(pdev, hw); |
|---|
| 2096 | 2070 | list_add_tail(&rtlpriv->list, &rtlpriv->glb_var->glb_priv_list); |
|---|
| .. | .. |
|---|
| 2118 | 2092 | |
|---|
| 2119 | 2093 | rtlpci->using_msi = true; |
|---|
| 2120 | 2094 | |
|---|
| 2121 | | - RT_TRACE(rtlpriv, COMP_INIT | COMP_INTR, DBG_DMESG, |
|---|
| 2122 | | - "MSI Interrupt Mode!\n"); |
|---|
| 2095 | + rtl_dbg(rtlpriv, COMP_INIT | COMP_INTR, DBG_DMESG, |
|---|
| 2096 | + "MSI Interrupt Mode!\n"); |
|---|
| 2123 | 2097 | return 0; |
|---|
| 2124 | 2098 | } |
|---|
| 2125 | 2099 | |
|---|
| .. | .. |
|---|
| 2136 | 2110 | return ret; |
|---|
| 2137 | 2111 | |
|---|
| 2138 | 2112 | rtlpci->using_msi = false; |
|---|
| 2139 | | - RT_TRACE(rtlpriv, COMP_INIT | COMP_INTR, DBG_DMESG, |
|---|
| 2140 | | - "Pin-based Interrupt Mode!\n"); |
|---|
| 2113 | + rtl_dbg(rtlpriv, COMP_INIT | COMP_INTR, DBG_DMESG, |
|---|
| 2114 | + "Pin-based Interrupt Mode!\n"); |
|---|
| 2141 | 2115 | return 0; |
|---|
| 2142 | 2116 | } |
|---|
| 2143 | 2117 | |
|---|
| .. | .. |
|---|
| 2191 | 2165 | } |
|---|
| 2192 | 2166 | |
|---|
| 2193 | 2167 | if (((struct rtl_hal_cfg *)id->driver_data)->mod_params->dma64 && |
|---|
| 2194 | | - !pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) { |
|---|
| 2195 | | - if (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64))) { |
|---|
| 2168 | + !dma_set_mask(&pdev->dev, DMA_BIT_MASK(64))) { |
|---|
| 2169 | + if (dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64))) { |
|---|
| 2196 | 2170 | WARN_ONCE(true, |
|---|
| 2197 | 2171 | "Unable to obtain 64bit DMA for consistent allocations\n"); |
|---|
| 2198 | 2172 | err = -ENOMEM; |
|---|
| .. | .. |
|---|
| 2200 | 2174 | } |
|---|
| 2201 | 2175 | |
|---|
| 2202 | 2176 | platform_enable_dma64(pdev, true); |
|---|
| 2203 | | - } else if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) { |
|---|
| 2204 | | - if (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) { |
|---|
| 2177 | + } else if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(32))) { |
|---|
| 2178 | + if (dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32))) { |
|---|
| 2205 | 2179 | WARN_ONCE(true, |
|---|
| 2206 | 2180 | "rtlwifi: Unable to obtain 32bit DMA for consistent allocations\n"); |
|---|
| 2207 | 2181 | err = -ENOMEM; |
|---|
| .. | .. |
|---|
| 2264 | 2238 | goto fail2; |
|---|
| 2265 | 2239 | } |
|---|
| 2266 | 2240 | |
|---|
| 2267 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 2268 | | - "mem mapped space: start: 0x%08lx len:%08lx flags:%08lx, after map:0x%08lx\n", |
|---|
| 2269 | | - pmem_start, pmem_len, pmem_flags, |
|---|
| 2270 | | - rtlpriv->io.pci_mem_start); |
|---|
| 2241 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 2242 | + "mem mapped space: start: 0x%08lx len:%08lx flags:%08lx, after map:0x%08lx\n", |
|---|
| 2243 | + pmem_start, pmem_len, pmem_flags, |
|---|
| 2244 | + rtlpriv->io.pci_mem_start); |
|---|
| 2271 | 2245 | |
|---|
| 2272 | 2246 | /* Disable Clk Request */ |
|---|
| 2273 | 2247 | pci_write_config_byte(pdev, 0x81, 0); |
|---|
| .. | .. |
|---|
| 2329 | 2303 | rtlpci = rtl_pcidev(pcipriv); |
|---|
| 2330 | 2304 | err = rtl_pci_intr_mode_decide(hw); |
|---|
| 2331 | 2305 | if (err) { |
|---|
| 2332 | | - RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 2333 | | - "%s: failed to register IRQ handler\n", |
|---|
| 2334 | | - wiphy_name(hw->wiphy)); |
|---|
| 2306 | + rtl_dbg(rtlpriv, COMP_INIT, DBG_DMESG, |
|---|
| 2307 | + "%s: failed to register IRQ handler\n", |
|---|
| 2308 | + wiphy_name(hw->wiphy)); |
|---|
| 2335 | 2309 | goto fail3; |
|---|
| 2336 | 2310 | } |
|---|
| 2337 | 2311 | rtlpci->irq_alloc = 1; |
|---|
| .. | .. |
|---|
| 2433 | 2407 | ****************************************/ |
|---|
| 2434 | 2408 | int rtl_pci_suspend(struct device *dev) |
|---|
| 2435 | 2409 | { |
|---|
| 2436 | | - struct pci_dev *pdev = to_pci_dev(dev); |
|---|
| 2437 | | - struct ieee80211_hw *hw = pci_get_drvdata(pdev); |
|---|
| 2410 | + struct ieee80211_hw *hw = dev_get_drvdata(dev); |
|---|
| 2438 | 2411 | struct rtl_priv *rtlpriv = rtl_priv(hw); |
|---|
| 2439 | 2412 | |
|---|
| 2440 | 2413 | rtlpriv->cfg->ops->hw_suspend(hw); |
|---|
| .. | .. |
|---|
| 2446 | 2419 | |
|---|
| 2447 | 2420 | int rtl_pci_resume(struct device *dev) |
|---|
| 2448 | 2421 | { |
|---|
| 2449 | | - struct pci_dev *pdev = to_pci_dev(dev); |
|---|
| 2450 | | - struct ieee80211_hw *hw = pci_get_drvdata(pdev); |
|---|
| 2422 | + struct ieee80211_hw *hw = dev_get_drvdata(dev); |
|---|
| 2451 | 2423 | struct rtl_priv *rtlpriv = rtl_priv(hw); |
|---|
| 2452 | 2424 | |
|---|
| 2453 | 2425 | rtlpriv->cfg->ops->hw_resume(hw); |
|---|