Commit 2f5fd8b0 authored by Jérôme Pouiller's avatar Jérôme Pouiller Committed by Greg Kroah-Hartman

staging: wfx: simplify wfx_tx_queue_get_num_queued()

wfx_tx_queue_get_num_queued() can take advantage of BIT() instead of
maintaining one variable for a counter and another for a mask.

In add, wfx_tx_queue_get_num_queued() has no real reason to return a
size_t instead of an int.
Signed-off-by: default avatarJérôme Pouiller <jerome.pouiller@silabs.com>
Link: https://lore.kernel.org/r/20200115135338.14374-64-Jerome.Pouiller@silabs.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 52443579
...@@ -175,11 +175,9 @@ void wfx_tx_queues_deinit(struct wfx_dev *wdev) ...@@ -175,11 +175,9 @@ void wfx_tx_queues_deinit(struct wfx_dev *wdev)
wfx_tx_queues_clear(wdev); wfx_tx_queues_clear(wdev);
} }
size_t wfx_tx_queue_get_num_queued(struct wfx_queue *queue, int wfx_tx_queue_get_num_queued(struct wfx_queue *queue, u32 link_id_map)
u32 link_id_map)
{ {
size_t ret; int ret, i;
int i, bit;
if (!link_id_map) if (!link_id_map)
return 0; return 0;
...@@ -189,12 +187,10 @@ size_t wfx_tx_queue_get_num_queued(struct wfx_queue *queue, ...@@ -189,12 +187,10 @@ size_t wfx_tx_queue_get_num_queued(struct wfx_queue *queue,
ret = skb_queue_len(&queue->queue); ret = skb_queue_len(&queue->queue);
} else { } else {
ret = 0; ret = 0;
for (i = 0, bit = 1; i < ARRAY_SIZE(queue->link_map_cache); for (i = 0; i < ARRAY_SIZE(queue->link_map_cache); i++)
++i, bit <<= 1) { if (link_id_map & BIT(i))
if (link_id_map & bit)
ret += queue->link_map_cache[i]; ret += queue->link_map_cache[i];
} }
}
spin_unlock_bh(&queue->queue.lock); spin_unlock_bh(&queue->queue.lock);
return ret; return ret;
} }
...@@ -555,7 +551,7 @@ struct hif_msg *wfx_tx_queues_get(struct wfx_dev *wdev) ...@@ -555,7 +551,7 @@ struct hif_msg *wfx_tx_queues_get(struct wfx_dev *wdev)
/* allow bursting if txop is set */ /* allow bursting if txop is set */
if (wvif->edca_params[queue_num].txop) if (wvif->edca_params[queue_num].txop)
burst = (int)wfx_tx_queue_get_num_queued(queue, tx_allowed_mask) + 1; burst = wfx_tx_queue_get_num_queued(queue, tx_allowed_mask) + 1;
else else
burst = 1; burst = 1;
......
...@@ -51,7 +51,7 @@ struct hif_msg *wfx_tx_queues_get_after_dtim(struct wfx_vif *wvif); ...@@ -51,7 +51,7 @@ struct hif_msg *wfx_tx_queues_get_after_dtim(struct wfx_vif *wvif);
void wfx_tx_queue_put(struct wfx_dev *wdev, struct wfx_queue *queue, void wfx_tx_queue_put(struct wfx_dev *wdev, struct wfx_queue *queue,
struct sk_buff *skb); struct sk_buff *skb);
size_t wfx_tx_queue_get_num_queued(struct wfx_queue *queue, u32 link_id_map); int wfx_tx_queue_get_num_queued(struct wfx_queue *queue, u32 link_id_map);
struct sk_buff *wfx_pending_get(struct wfx_dev *wdev, u32 packet_id); struct sk_buff *wfx_pending_get(struct wfx_dev *wdev, u32 packet_id);
int wfx_pending_remove(struct wfx_dev *wdev, struct sk_buff *skb); int wfx_pending_remove(struct wfx_dev *wdev, struct sk_buff *skb);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment