diff options
Diffstat (limited to 'drivers/net/wireless/p54/p54pci.c')
-rw-r--r-- | drivers/net/wireless/p54/p54pci.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/net/wireless/p54/p54pci.c b/drivers/net/wireless/p54/p54pci.c index c24067f1a0cb..07c4528f6e6b 100644 --- a/drivers/net/wireless/p54/p54pci.c +++ b/drivers/net/wireless/p54/p54pci.c | |||
@@ -132,7 +132,7 @@ static int p54p_upload_firmware(struct ieee80211_hw *dev) | |||
132 | 132 | ||
133 | static void p54p_refill_rx_ring(struct ieee80211_hw *dev, | 133 | static void p54p_refill_rx_ring(struct ieee80211_hw *dev, |
134 | int ring_index, struct p54p_desc *ring, u32 ring_limit, | 134 | int ring_index, struct p54p_desc *ring, u32 ring_limit, |
135 | struct sk_buff **rx_buf) | 135 | struct sk_buff **rx_buf, u32 index) |
136 | { | 136 | { |
137 | struct p54p_priv *priv = dev->priv; | 137 | struct p54p_priv *priv = dev->priv; |
138 | struct p54p_ring_control *ring_control = priv->ring_control; | 138 | struct p54p_ring_control *ring_control = priv->ring_control; |
@@ -140,7 +140,7 @@ static void p54p_refill_rx_ring(struct ieee80211_hw *dev, | |||
140 | 140 | ||
141 | idx = le32_to_cpu(ring_control->host_idx[ring_index]); | 141 | idx = le32_to_cpu(ring_control->host_idx[ring_index]); |
142 | limit = idx; | 142 | limit = idx; |
143 | limit -= le32_to_cpu(ring_control->device_idx[ring_index]); | 143 | limit -= index; |
144 | limit = ring_limit - limit; | 144 | limit = ring_limit - limit; |
145 | 145 | ||
146 | i = idx % ring_limit; | 146 | i = idx % ring_limit; |
@@ -232,7 +232,7 @@ static void p54p_check_rx_ring(struct ieee80211_hw *dev, u32 *index, | |||
232 | i %= ring_limit; | 232 | i %= ring_limit; |
233 | } | 233 | } |
234 | 234 | ||
235 | p54p_refill_rx_ring(dev, ring_index, ring, ring_limit, rx_buf); | 235 | p54p_refill_rx_ring(dev, ring_index, ring, ring_limit, rx_buf, *index); |
236 | } | 236 | } |
237 | 237 | ||
238 | static void p54p_check_tx_ring(struct ieee80211_hw *dev, u32 *index, | 238 | static void p54p_check_tx_ring(struct ieee80211_hw *dev, u32 *index, |
@@ -445,10 +445,10 @@ static int p54p_open(struct ieee80211_hw *dev) | |||
445 | priv->rx_idx_mgmt = priv->tx_idx_mgmt = 0; | 445 | priv->rx_idx_mgmt = priv->tx_idx_mgmt = 0; |
446 | 446 | ||
447 | p54p_refill_rx_ring(dev, 0, priv->ring_control->rx_data, | 447 | p54p_refill_rx_ring(dev, 0, priv->ring_control->rx_data, |
448 | ARRAY_SIZE(priv->ring_control->rx_data), priv->rx_buf_data); | 448 | ARRAY_SIZE(priv->ring_control->rx_data), priv->rx_buf_data, 0); |
449 | 449 | ||
450 | p54p_refill_rx_ring(dev, 2, priv->ring_control->rx_mgmt, | 450 | p54p_refill_rx_ring(dev, 2, priv->ring_control->rx_mgmt, |
451 | ARRAY_SIZE(priv->ring_control->rx_mgmt), priv->rx_buf_mgmt); | 451 | ARRAY_SIZE(priv->ring_control->rx_mgmt), priv->rx_buf_mgmt, 0); |
452 | 452 | ||
453 | P54P_WRITE(ring_control_base, cpu_to_le32(priv->ring_control_dma)); | 453 | P54P_WRITE(ring_control_base, cpu_to_le32(priv->ring_control_dma)); |
454 | P54P_READ(ring_control_base); | 454 | P54P_READ(ring_control_base); |