Search Linux Wireless

RE: [PATCH 07/24] rtw89: add MAC files

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

 




> -----Original Message-----
> From: Oleksij Rempel [mailto:o.rempel@xxxxxxxxxxxxxx]
> Sent: Saturday, July 10, 2021 1:38 AM
> To: Pkshih
> Cc: kvalo@xxxxxxxxxxxxxx; linux-wireless@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH 07/24] rtw89: add MAC files
> 
> On Fri, Jun 18, 2021 at 02:46:08PM +0800, Ping-Ke Shih wrote:
> > Provide interfaces to access MAC function blocks including power-on/off
> > configuration.
> >
> > MAC initialization does power-on, and then enable HCI to download firmware.
> > The BB, RF, DMAC and CMAC function blocks are enabled, and then configure
> > TXRX settings that contains DMAC, CMAC, interrupt mask, and RPQ parameters.
> > DMAC is short for data MAC, including data link engine (DLE), HCI function
> > control (HFC), MPDU processor, security engine and so on. CMAC is short for
> > control MAC, including scheduler, address CAM, RX filter, CCA control,
> > TMAC, RMAC, protocol component and so on.
> >
> > The full MAC initialization is done for normal use case when user does
> > network interface up. When device is probing, driver does partial
> > initialization to do power-on and download firmware, because we need to
> > read hardware capabilities from efuse and firmware.
> >
> > MAC supports five ports, so we can have five VIFs at most. To control MAC
> > port, we control a set of registers, and the most important one among them
> > is port_cfg register named R_AX_PORT_CFG_P0. We can turn on/off the port
> > function and configure network type (STA or AP mode) by this register.
> > The address and BSSID corresponding to this port are given by address
> > and BSSID CAM that is set by firmware via H2C command.
> >
> > Since BT coexistence code needs to access coex registers, some help
> > functions are provided to make WiFi-only case work.
> >
> > To access MAC registers, normally we use rtw89_writeXX/rtw89_readYY, but
> > we use rtw89_mac_txpwr_write32_ZZ to access TX power register with proper
> > address range checking.
> >
> > Signed-off-by: Ping-Ke Shih <pkshih@xxxxxxxxxxx>
> > ---
> >  drivers/net/wireless/realtek/rtw89/mac.c | 4070 ++++++++++++++++++++++
> >  drivers/net/wireless/realtek/rtw89/mac.h |  905 +++++
> >  2 files changed, 4975 insertions(+)
> >  create mode 100644 drivers/net/wireless/realtek/rtw89/mac.c
> >  create mode 100644 drivers/net/wireless/realtek/rtw89/mac.h
> >
> > diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c
> > new file mode 100644
> > index 000000000000..e00652e11941
> > --- /dev/null
> > +++ b/drivers/net/wireless/realtek/rtw89/mac.c
> > @@ -0,0 +1,4070 @@

[...]

> > +u16 rtw89_mac_get_plt(struct rtw89_dev *rtwdev, u8 band)
> > +{
> > +	u32 reg;
> > +	u16 cnt;
> > +
> > +	reg = rtw89_mac_reg_by_idx(R_AX_BT_PLT, band);
> > +	cnt = rtw89_read32_mask(rtwdev, reg, B_AX_BT_PLT_PKT_CNT_MASK);
> > +	rtw89_write16_set(rtwdev, reg, B_AX_BT_PLT_RST);
> > +
> > +	return cnt;
> > +}
> 
> This function is not used, please remove.
> 

OK. Will remove it.

[...]

If I miss any comment, please let me know.

--
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