Search Linux Wireless

RE: [PATCH v2 1/3] wifi: rtl8xxxu: Move burst init to a function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Bitterblue Smith <rtl8821cerfe2@xxxxxxxxx>
> Sent: Sunday, November 6, 2022 6:53 AM
> To: linux-wireless@xxxxxxxxxxxxxxx
> Cc: Jes Sorensen <Jes.Sorensen@xxxxxxxxx>
> Subject: [PATCH v2 1/3] wifi: rtl8xxxu: Move burst init to a function
> 
> No changes to functionality, just moving code to make
> rtl8xxxu_init_device look nicer.
> 
> Signed-off-by: Bitterblue Smith <rtl8821cerfe2@xxxxxxxxx>
> ---
> v2:
>  - No change.
> ---
>  .../net/wireless/realtek/rtl8xxxu/rtl8xxxu.h  |  2 +
>  .../realtek/rtl8xxxu/rtl8xxxu_8188f.c         |  1 +
>  .../realtek/rtl8xxxu/rtl8xxxu_8723b.c         |  1 +
>  .../wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 89 ++++++++++---------
>  4 files changed, 52 insertions(+), 41 deletions(-)
> 

[...]

> diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
> b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
> index 019f8ddd418b..282ad8a9b73d 100644
> --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
> +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
> @@ -3886,6 +3886,52 @@ static void rtl8xxxu_init_queue_reserved_page(struct rtl8xxxu_priv *priv)
>  	rtl8xxxu_write32(priv, REG_RQPN, val32);
>  }
> 
> +void rtl8xxxu_init_burst(struct rtl8xxxu_priv *priv)
> +{
> +	u8 val8;
> +
> +	/*
> +	 * For USB high speed set 512B packets
> +	 */
> +	val8 = rtl8xxxu_read8(priv, REG_RXDMA_PRO_8723B);
> +	val8 &= ~(BIT(4) | BIT(5));
> +	val8 |= BIT(4);
> +	val8 |= BIT(1) | BIT(2) | BIT(3);

I think we can fix these magic numbers along with your patch.

#define DMA_MODE BIT(1)  // set 0x1
#define DMA_BURST_CNT GENMASK(3, 2) // set 0x3
#define DMA_BURST_SIZE GENMASK(5, 4) // set 0x1


> +	rtl8xxxu_write8(priv, REG_RXDMA_PRO_8723B, val8);
> +
> +	/*
> +	 * Enable single packet AMPDU
> +	 */
> +	val8 = rtl8xxxu_read8(priv, REG_HT_SINGLE_AMPDU_8723B);
> +	val8 |= BIT(7);

#define EN_SINGLE_AMPDU BIT(7)

> +	rtl8xxxu_write8(priv, REG_HT_SINGLE_AMPDU_8723B, val8);
> +
> +	rtl8xxxu_write16(priv, REG_MAX_AGGR_NUM, 0x0c14);
> +	if (priv->rtl_chip == RTL8723B)
> +		val8 = 0x5e;
> +	else if (priv->rtl_chip == RTL8188F)
> +		val8 = 0x70; /* 0x5e would make it very slow */
> +	rtl8xxxu_write8(priv, REG_AMPDU_MAX_TIME_8723B, val8);
> +	rtl8xxxu_write32(priv, REG_AGGLEN_LMT, 0xffffffff);
> +	rtl8xxxu_write8(priv, REG_RX_PKT_LIMIT, 0x18);
> +	rtl8xxxu_write8(priv, REG_PIFS, 0x00);
> +	if (priv->rtl_chip == RTL8188F) {
> +		rtl8xxxu_write8(priv, REG_FWHW_TXQ_CTRL, FWHW_TXQ_CTRL_AMPDU_RETRY);
> +		rtl8xxxu_write32(priv, REG_FAST_EDCA_CTRL, 0x03086666);
> +	}
> +	if (priv->rtl_chip == RTL8723B)
> +		val8 = 0x50;
> +	else if (priv->rtl_chip == RTL8188F)
> +		val8 = 0x28; /* 0x50 would make the upload slow */
> +	rtl8xxxu_write8(priv, REG_USTIME_TSF_8723B, val8);
> +	rtl8xxxu_write8(priv, REG_USTIME_EDCA, val8);
> +
> +	/* to prevent mac is reseted by bus. */
> +	val8 = rtl8xxxu_read8(priv, REG_RSV_CTRL);
> +	val8 |= BIT(5) | BIT(6);

#define WLOCK_1C BIT(5)
#define DIS_PRST BIT(6)

> +	rtl8xxxu_write8(priv, REG_RSV_CTRL, val8);
> +}
> +

[...]

I find some bit definitions, so we can have them meaningful names, and
please add proper prefix if need.

Ping-Ke





[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux