diff options
author | Martin Kaiser <martin@kaiser.cx> | 2022-08-08 22:14:05 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-08-16 15:18:29 +0200 |
commit | 1bace12735a4c8d8d62b1cc7410cafeaccdf80d0 (patch) | |
tree | b32316c26f1dfabdd4df3479f97edd3aa6d68cf2 | |
parent | 3ce23a49d1b64e0d207114e2feaad0292c25c679 (diff) | |
download | linux-stable-1bace12735a4c8d8d62b1cc7410cafeaccdf80d0.tar.gz linux-stable-1bace12735a4c8d8d62b1cc7410cafeaccdf80d0.tar.bz2 linux-stable-1bace12735a4c8d8d62b1cc7410cafeaccdf80d0.zip |
staging: r8188eu: the high prio queue is always selected
The high priority queue is always selected, regardless of the number of
out endpoints.
Therefore, haldata->OutEpQueueSel & TX_SELE_HQ is always true. We can
remove the check and use a define instead of the numHQ variable.
This check was the last user of TX_SELE_HQ. Rename haldata->OutEpQueueSel
to haldata->out_ep_extra_queues and store only the queues that are selected
in addition to the high priority queue.
Tested-by: Philipp Hortmann <philipp.g.hortmann@gmail.com> # Edimax N150
Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Link: https://lore.kernel.org/r/20220808201405.68966-6-martin@kaiser.cx
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/r8188eu/hal/usb_halinit.c | 17 | ||||
-rw-r--r-- | drivers/staging/r8188eu/include/rtl8188e_hal.h | 3 | ||||
-rw-r--r-- | drivers/staging/r8188eu/include/rtl8188e_spec.h | 2 |
3 files changed, 9 insertions, 13 deletions
diff --git a/drivers/staging/r8188eu/hal/usb_halinit.c b/drivers/staging/r8188eu/hal/usb_halinit.c index 25fd6b46e76d..63c5cec655d5 100644 --- a/drivers/staging/r8188eu/hal/usb_halinit.c +++ b/drivers/staging/r8188eu/hal/usb_halinit.c @@ -69,15 +69,14 @@ int rtl8188eu_interface_configure(struct adapter *adapt) switch (pdvobjpriv->RtNumOutPipes) { case 3: - haldata->OutEpQueueSel = TX_SELE_HQ | TX_SELE_LQ | TX_SELE_NQ; + haldata->out_ep_extra_queues = TX_SELE_LQ | TX_SELE_NQ; three_out_pipe(adapt, wifi_cfg); break; case 2: - haldata->OutEpQueueSel = TX_SELE_HQ | TX_SELE_NQ; + haldata->out_ep_extra_queues = TX_SELE_NQ; two_out_pipe(adapt, wifi_cfg); break; case 1: - haldata->OutEpQueueSel = TX_SELE_HQ; one_out_pipe(adapt); break; default: @@ -154,28 +153,24 @@ static void _InitQueueReservedPage(struct adapter *Adapter) { struct hal_data_8188e *haldata = &Adapter->haldata; struct registry_priv *pregistrypriv = &Adapter->registrypriv; - u8 numHQ = 0; u8 numLQ = 0; u8 numNQ = 0; u8 numPubQ; if (pregistrypriv->wifi_spec) { - if (haldata->OutEpQueueSel & TX_SELE_HQ) - numHQ = 0x29; - - if (haldata->OutEpQueueSel & TX_SELE_LQ) + if (haldata->out_ep_extra_queues & TX_SELE_LQ) numLQ = 0x1C; /* NOTE: This step shall be proceed before writing REG_RQPN. */ - if (haldata->OutEpQueueSel & TX_SELE_NQ) + if (haldata->out_ep_extra_queues & TX_SELE_NQ) numNQ = 0x1C; rtw_write8(Adapter, REG_RQPN_NPQ, numNQ); - numPubQ = 0xA8 - numHQ - numLQ - numNQ; + numPubQ = 0xA8 - NUM_HQ - numLQ - numNQ; /* TX DMA */ - rtw_write32(Adapter, REG_RQPN, LD_RQPN | numPubQ << 16 | numLQ << 8 | numHQ); + rtw_write32(Adapter, REG_RQPN, LD_RQPN | numPubQ << 16 | numLQ << 8 | NUM_HQ); } else { rtw_write16(Adapter, REG_RQPN_NPQ, 0x0000);/* Just follow MP Team,??? Georgia 03/28 */ rtw_write16(Adapter, REG_RQPN_NPQ, 0x0d); diff --git a/drivers/staging/r8188eu/include/rtl8188e_hal.h b/drivers/staging/r8188eu/include/rtl8188e_hal.h index ff0a4ce19dde..64cdc2fad20e 100644 --- a/drivers/staging/r8188eu/include/rtl8188e_hal.h +++ b/drivers/staging/r8188eu/include/rtl8188e_hal.h @@ -36,7 +36,6 @@ 0x2400 /* 9k for 88E nornal chip , MaxRxBuff=10k-max(TxReportSize(64*8), * WOLPattern(16*24)) */ -#define TX_SELE_HQ BIT(0) /* High Queue */ #define TX_SELE_LQ BIT(1) /* Low Queue */ #define TX_SELE_NQ BIT(2) /* Normal Queue */ @@ -149,7 +148,7 @@ struct hal_data_8188e { u8 AntDivCfg; u8 TRxAntDivType; - u8 OutEpQueueSel; + u8 out_ep_extra_queues; struct P2P_PS_Offload_t p2p_ps_offload; diff --git a/drivers/staging/r8188eu/include/rtl8188e_spec.h b/drivers/staging/r8188eu/include/rtl8188e_spec.h index 5d12ba46e205..e34619140e33 100644 --- a/drivers/staging/r8188eu/include/rtl8188e_spec.h +++ b/drivers/staging/r8188eu/include/rtl8188e_spec.h @@ -925,6 +925,8 @@ Current IOREG MAP /* 0x0200h ~ 0x027Fh TXDMA Configuration */ +#define NUM_HQ 0x29 + #define LD_RQPN BIT(31) /* 2TDECTRL */ |