You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by pk...@apache.org on 2022/06/29 06:07:03 UTC
[incubator-nuttx] 01/02: Revert "wireless/bcm43xxx: remove unused tx_queue_count"
This is an automated email from the ASF dual-hosted git repository.
pkarashchenko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit b5e9409880c662ac5ccd4a99d3960aa37f60c999
Author: chao.an <an...@xiaomi.com>
AuthorDate: Tue Jun 28 13:15:19 2022 +0800
Revert "wireless/bcm43xxx: remove unused tx_queue_count"
This reverts commit c3b84b9b3bbd38076a564264a2d73992c5379b1a.
Signed-off-by: chao.an <an...@xiaomi.com>
---
drivers/wireless/ieee80211/bcm43xxx/bcmf_sdio.c | 23 ++++++++++++++++++++---
drivers/wireless/ieee80211/bcm43xxx/bcmf_sdio.h | 1 +
2 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/drivers/wireless/ieee80211/bcm43xxx/bcmf_sdio.c b/drivers/wireless/ieee80211/bcm43xxx/bcmf_sdio.c
index 903bb9400b..c8f6abbe1e 100644
--- a/drivers/wireless/ieee80211/bcm43xxx/bcmf_sdio.c
+++ b/drivers/wireless/ieee80211/bcm43xxx/bcmf_sdio.c
@@ -1065,10 +1065,22 @@ struct bcmf_sdio_frame *bcmf_sdio_allocate_frame(FAR struct bcmf_dev_s *priv,
DEBUGPANIC();
}
- if ((entry = bcmf_dqueue_pop_tail(&sbus->free_queue)) != NULL)
+#if 0
+ if (!tx ||
+ sbus->tx_queue_count <
+ CONFIG_IEEE80211_BROADCOM_FRAME_POOL_SIZE - 1)
+#endif
{
- nxsem_post(&sbus->queue_mutex);
- break;
+ if ((entry = bcmf_dqueue_pop_tail(&sbus->free_queue)) != NULL)
+ {
+ if (tx)
+ {
+ sbus->tx_queue_count++;
+ }
+
+ nxsem_post(&sbus->queue_mutex);
+ break;
+ }
}
nxsem_post(&sbus->queue_mutex);
@@ -1108,5 +1120,10 @@ void bcmf_sdio_free_frame(FAR struct bcmf_dev_s *priv,
bcmf_dqueue_push(&sbus->free_queue, &sframe->list_entry);
+ if (sframe->tx)
+ {
+ sbus->tx_queue_count--;
+ }
+
nxsem_post(&sbus->queue_mutex);
}
diff --git a/drivers/wireless/ieee80211/bcm43xxx/bcmf_sdio.h b/drivers/wireless/ieee80211/bcm43xxx/bcmf_sdio.h
index daed5018f2..f5a076caf9 100644
--- a/drivers/wireless/ieee80211/bcm43xxx/bcmf_sdio.h
+++ b/drivers/wireless/ieee80211/bcm43xxx/bcmf_sdio.h
@@ -106,6 +106,7 @@ struct bcmf_sdio_dev_s
dq_queue_t free_queue; /* Queue of available frames */
dq_queue_t tx_queue; /* Queue of frames to transmit */
dq_queue_t rx_queue; /* Queue of frames used to receive */
+ volatile int tx_queue_count; /* Count of items in TX queue */
};
/* Structure used to manage SDIO frames */