aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2500pci.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-06-29 01:57:58 -0400
committerDavid S. Miller <davem@davemloft.net>2008-06-29 01:57:58 -0400
commit28f49d8fec19833672a6a813bfde0068fee50bc9 (patch)
tree6905c5cabc063e44b891ae0af5b5d7cce69e6e71 /drivers/net/wireless/rt2x00/rt2500pci.c
parent332e4af80d1214fbf0e263e1408fc7c5b64ecdd6 (diff)
parentff28bd94e307c67abb1bccda5d3a9018bd798e08 (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2500pci.c')
-rw-r--r--drivers/net/wireless/rt2x00/rt2500pci.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c
index 3c956b91c4e3..0423c251c78e 100644
--- a/drivers/net/wireless/rt2x00/rt2500pci.c
+++ b/drivers/net/wireless/rt2x00/rt2500pci.c
@@ -727,10 +727,11 @@ static void rt2500pci_init_rxentry(struct rt2x00_dev *rt2x00dev,
727 struct queue_entry *entry) 727 struct queue_entry *entry)
728{ 728{
729 struct queue_entry_priv_pci *entry_priv = entry->priv_data; 729 struct queue_entry_priv_pci *entry_priv = entry->priv_data;
730 struct skb_frame_desc *skbdesc = get_skb_frame_desc(entry->skb);
730 u32 word; 731 u32 word;
731 732
732 rt2x00_desc_read(entry_priv->desc, 1, &word); 733 rt2x00_desc_read(entry_priv->desc, 1, &word);
733 rt2x00_set_field32(&word, RXD_W1_BUFFER_ADDRESS, entry_priv->data_dma); 734 rt2x00_set_field32(&word, RXD_W1_BUFFER_ADDRESS, skbdesc->skb_dma);
734 rt2x00_desc_write(entry_priv->desc, 1, word); 735 rt2x00_desc_write(entry_priv->desc, 1, word);
735 736
736 rt2x00_desc_read(entry_priv->desc, 0, &word); 737 rt2x00_desc_read(entry_priv->desc, 0, &word);
@@ -1171,7 +1172,7 @@ static void rt2500pci_write_tx_desc(struct rt2x00_dev *rt2x00dev,
1171 * Start writing the descriptor words. 1172 * Start writing the descriptor words.
1172 */ 1173 */
1173 rt2x00_desc_read(entry_priv->desc, 1, &word); 1174 rt2x00_desc_read(entry_priv->desc, 1, &word);
1174 rt2x00_set_field32(&word, TXD_W1_BUFFER_ADDRESS, entry_priv->data_dma); 1175 rt2x00_set_field32(&word, TXD_W1_BUFFER_ADDRESS, skbdesc->skb_dma);
1175 rt2x00_desc_write(entry_priv->desc, 1, word); 1176 rt2x00_desc_write(entry_priv->desc, 1, word);
1176 1177
1177 rt2x00_desc_read(txd, 2, &word); 1178 rt2x00_desc_read(txd, 2, &word);
@@ -1311,7 +1312,7 @@ static void rt2500pci_txdone(struct rt2x00_dev *rt2x00dev,
1311 } 1312 }
1312 txdesc.retry = rt2x00_get_field32(word, TXD_W0_RETRY_COUNT); 1313 txdesc.retry = rt2x00_get_field32(word, TXD_W0_RETRY_COUNT);
1313 1314
1314 rt2x00pci_txdone(rt2x00dev, entry, &txdesc); 1315 rt2x00lib_txdone(entry, &txdesc);
1315 } 1316 }
1316} 1317}
1317 1318
@@ -1688,7 +1689,7 @@ static void rt2500pci_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
1688 1689
1689 rt2x00dev->hw->extra_tx_headroom = 0; 1690 rt2x00dev->hw->extra_tx_headroom = 0;
1690 1691
1691 SET_IEEE80211_DEV(rt2x00dev->hw, &rt2x00dev_pci(rt2x00dev)->dev); 1692 SET_IEEE80211_DEV(rt2x00dev->hw, rt2x00dev->dev);
1692 SET_IEEE80211_PERM_ADDR(rt2x00dev->hw, 1693 SET_IEEE80211_PERM_ADDR(rt2x00dev->hw,
1693 rt2x00_eeprom_addr(rt2x00dev, 1694 rt2x00_eeprom_addr(rt2x00dev,
1694 EEPROM_MAC_ADDR_0)); 1695 EEPROM_MAC_ADDR_0));
@@ -1752,9 +1753,10 @@ static int rt2500pci_probe_hw(struct rt2x00_dev *rt2x00dev)
1752 rt2500pci_probe_hw_mode(rt2x00dev); 1753 rt2500pci_probe_hw_mode(rt2x00dev);
1753 1754
1754 /* 1755 /*
1755 * This device requires the atim queue 1756 * This device requires the atim queue and DMA-mapped skbs.
1756 */ 1757 */
1757 __set_bit(DRIVER_REQUIRE_ATIM_QUEUE, &rt2x00dev->flags); 1758 __set_bit(DRIVER_REQUIRE_ATIM_QUEUE, &rt2x00dev->flags);
1759 __set_bit(DRIVER_REQUIRE_DMA, &rt2x00dev->flags);
1758 1760
1759 /* 1761 /*
1760 * Set the rssi offset. 1762 * Set the rssi offset.
@@ -1842,7 +1844,7 @@ static int rt2500pci_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb)
1842 * Write entire beacon with descriptor to register, 1844 * Write entire beacon with descriptor to register,
1843 * and kick the beacon generator. 1845 * and kick the beacon generator.
1844 */ 1846 */
1845 memcpy(entry_priv->data, skb->data, skb->len); 1847 rt2x00queue_map_txskb(rt2x00dev, intf->beacon->skb);
1846 rt2x00queue_write_tx_descriptor(intf->beacon, &txdesc); 1848 rt2x00queue_write_tx_descriptor(intf->beacon, &txdesc);
1847 rt2x00dev->ops->lib->kick_tx_queue(rt2x00dev, QID_BEACON); 1849 rt2x00dev->ops->lib->kick_tx_queue(rt2x00dev, QID_BEACON);
1848 1850