|
@@ -690,75 +690,6 @@ done:
|
|
|
|
|
|
}
|
|
|
|
|
|
-void _rtl_pci_tx_interrupt(struct ieee80211_hw *hw)
|
|
|
-{
|
|
|
- struct rtl_priv *rtlpriv = rtl_priv(hw);
|
|
|
- struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
|
|
- int prio;
|
|
|
-
|
|
|
- for (prio = 0; prio < RTL_PCI_MAX_TX_QUEUE_COUNT; prio++) {
|
|
|
- struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[prio];
|
|
|
-
|
|
|
- while (skb_queue_len(&ring->queue)) {
|
|
|
- struct rtl_tx_desc *entry = &ring->desc[ring->idx];
|
|
|
- struct sk_buff *skb;
|
|
|
- struct ieee80211_tx_info *info;
|
|
|
- u8 own;
|
|
|
-
|
|
|
- /*
|
|
|
- *beacon packet will only use the first
|
|
|
- *descriptor defautly, and the own may not
|
|
|
- *be cleared by the hardware, and
|
|
|
- *beacon will free in prepare beacon
|
|
|
- */
|
|
|
- if (prio == BEACON_QUEUE || prio == TXCMD_QUEUE ||
|
|
|
- prio == HCCA_QUEUE)
|
|
|
- break;
|
|
|
-
|
|
|
- own = (u8)rtlpriv->cfg->ops->get_desc((u8 *)entry,
|
|
|
- true,
|
|
|
- HW_DESC_OWN);
|
|
|
-
|
|
|
- if (own)
|
|
|
- break;
|
|
|
-
|
|
|
- skb = __skb_dequeue(&ring->queue);
|
|
|
- pci_unmap_single(rtlpci->pdev,
|
|
|
- le32_to_cpu(rtlpriv->cfg->ops->
|
|
|
- get_desc((u8 *) entry,
|
|
|
- true,
|
|
|
- HW_DESC_TXBUFF_ADDR)),
|
|
|
- skb->len, PCI_DMA_TODEVICE);
|
|
|
-
|
|
|
- ring->idx = (ring->idx + 1) % ring->entries;
|
|
|
-
|
|
|
- info = IEEE80211_SKB_CB(skb);
|
|
|
- ieee80211_tx_info_clear_status(info);
|
|
|
-
|
|
|
- info->flags |= IEEE80211_TX_STAT_ACK;
|
|
|
- /*info->status.rates[0].count = 1; */
|
|
|
-
|
|
|
- ieee80211_tx_status_irqsafe(hw, skb);
|
|
|
-
|
|
|
- if ((ring->entries - skb_queue_len(&ring->queue))
|
|
|
- == 2 && prio != BEACON_QUEUE) {
|
|
|
- RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
|
|
|
- ("more desc left, wake "
|
|
|
- "skb_queue@%d,ring->idx = %d,"
|
|
|
- "skb_queue_len = 0x%d\n",
|
|
|
- prio, ring->idx,
|
|
|
- skb_queue_len(&ring->queue)));
|
|
|
-
|
|
|
- ieee80211_wake_queue(hw,
|
|
|
- skb_get_queue_mapping
|
|
|
- (skb));
|
|
|
- }
|
|
|
-
|
|
|
- skb = NULL;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
static irqreturn_t _rtl_pci_interrupt(int irq, void *dev_id)
|
|
|
{
|
|
|
struct ieee80211_hw *hw = dev_id;
|
|
@@ -1273,7 +1204,7 @@ int rtl_pci_reset_trx_ring(struct ieee80211_hw *hw)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-unsigned int _rtl_mac_to_hwqueue(u16 fc,
|
|
|
+static unsigned int _rtl_mac_to_hwqueue(u16 fc,
|
|
|
unsigned int mac80211_queue_index)
|
|
|
{
|
|
|
unsigned int hw_queue_index;
|
|
@@ -1312,7 +1243,7 @@ out:
|
|
|
return hw_queue_index;
|
|
|
}
|
|
|
|
|
|
-int rtl_pci_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
|
|
|
+static int rtl_pci_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
|
|
|
{
|
|
|
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
|
|
struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
|
|
@@ -1429,7 +1360,7 @@ int rtl_pci_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-void rtl_pci_deinit(struct ieee80211_hw *hw)
|
|
|
+static void rtl_pci_deinit(struct ieee80211_hw *hw)
|
|
|
{
|
|
|
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
|
|
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
|
@@ -1444,7 +1375,7 @@ void rtl_pci_deinit(struct ieee80211_hw *hw)
|
|
|
|
|
|
}
|
|
|
|
|
|
-int rtl_pci_init(struct ieee80211_hw *hw, struct pci_dev *pdev)
|
|
|
+static int rtl_pci_init(struct ieee80211_hw *hw, struct pci_dev *pdev)
|
|
|
{
|
|
|
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
|
|
int err;
|
|
@@ -1461,7 +1392,7 @@ int rtl_pci_init(struct ieee80211_hw *hw, struct pci_dev *pdev)
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
-int rtl_pci_start(struct ieee80211_hw *hw)
|
|
|
+static int rtl_pci_start(struct ieee80211_hw *hw)
|
|
|
{
|
|
|
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
|
|
struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
|
|
@@ -1496,7 +1427,7 @@ int rtl_pci_start(struct ieee80211_hw *hw)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-void rtl_pci_stop(struct ieee80211_hw *hw)
|
|
|
+static void rtl_pci_stop(struct ieee80211_hw *hw)
|
|
|
{
|
|
|
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
|
|
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
|
@@ -1838,7 +1769,7 @@ fail3:
|
|
|
ieee80211_free_hw(hw);
|
|
|
|
|
|
if (rtlpriv->io.pci_mem_start != 0)
|
|
|
- pci_iounmap(pdev, (void *)rtlpriv->io.pci_mem_start);
|
|
|
+ pci_iounmap(pdev, (void __iomem *)rtlpriv->io.pci_mem_start);
|
|
|
|
|
|
fail2:
|
|
|
pci_release_regions(pdev);
|
|
@@ -1888,7 +1819,7 @@ void rtl_pci_disconnect(struct pci_dev *pdev)
|
|
|
}
|
|
|
|
|
|
if (rtlpriv->io.pci_mem_start != 0) {
|
|
|
- pci_iounmap(pdev, (void *)rtlpriv->io.pci_mem_start);
|
|
|
+ pci_iounmap(pdev, (void __iomem *)rtlpriv->io.pci_mem_start);
|
|
|
pci_release_regions(pdev);
|
|
|
}
|
|
|
|