mirror of
https://github.com/torvalds/linux.git
synced 2026-05-26 16:12:59 +02:00
wifi: rtw89: mac: add specific case to dump mac memory for RTL8922D
The RTL8922D can reuse most mac memory addresses, but only RTW89_MAC_MEM_SECURITY_CAM is different from existing one. Add a function to return the specific memory address for RTL8922D. Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20260325072130.41751-5-pkshih@realtek.com
This commit is contained in:
parent
bdc607a67e
commit
ba42bb2813
|
|
@ -1129,7 +1129,7 @@ static int rtw89_debug_dump_mac_mem(struct rtw89_dev *rtwdev,
|
|||
pages = len / mem_page_size + 1;
|
||||
start_page = start_addr / mem_page_size;
|
||||
residue = start_addr % mem_page_size;
|
||||
base_addr = mac->mem_base_addrs[sel];
|
||||
base_addr = rtw89_mac_mem_base_addrs(rtwdev, sel);
|
||||
base_addr += start_page * mem_page_size;
|
||||
|
||||
for (pp = 0; pp < pages; pp++) {
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ static void rtw89_mac_mem_write(struct rtw89_dev *rtwdev, u32 offset,
|
|||
u32 val, enum rtw89_mac_mem_sel sel)
|
||||
{
|
||||
const struct rtw89_mac_gen_def *mac = rtwdev->chip->mac_def;
|
||||
u32 addr = mac->mem_base_addrs[sel] + offset;
|
||||
u32 addr = rtw89_mac_mem_base_addrs(rtwdev, sel) + offset;
|
||||
|
||||
rtw89_write32(rtwdev, mac->filter_model_addr, addr);
|
||||
rtw89_write32(rtwdev, mac->indir_access_addr, val);
|
||||
|
|
@ -53,7 +53,7 @@ static u32 rtw89_mac_mem_read(struct rtw89_dev *rtwdev, u32 offset,
|
|||
enum rtw89_mac_mem_sel sel)
|
||||
{
|
||||
const struct rtw89_mac_gen_def *mac = rtwdev->chip->mac_def;
|
||||
u32 addr = mac->mem_base_addrs[sel] + offset;
|
||||
u32 addr = rtw89_mac_mem_base_addrs(rtwdev, sel) + offset;
|
||||
|
||||
rtw89_write32(rtwdev, mac->filter_model_addr, addr);
|
||||
return rtw89_read32(rtwdev, mac->indir_access_addr);
|
||||
|
|
|
|||
|
|
@ -334,6 +334,7 @@ enum rtw89_mac_dbg_port_sel {
|
|||
#define NAT25_CAM_BASE_ADDR_BE 0x18820000
|
||||
#define RXPLD_FLTR_CAM_BASE_ADDR_BE 0x18823000
|
||||
#define SEC_CAM_BASE_ADDR_BE 0x18824000
|
||||
#define SEC_CAM_BASE_ADDR_BE_8922D 0x1882C000
|
||||
#define WOW_CAM_BASE_ADDR_BE 0x18828000
|
||||
#define MLD_TBL_BASE_ADDR_BE 0x18829000
|
||||
#define RX_CLSF_CAM_BASE_ADDR_BE 0x1882A000
|
||||
|
|
@ -1131,6 +1132,18 @@ struct rtw89_mac_gen_def {
|
|||
extern const struct rtw89_mac_gen_def rtw89_mac_gen_ax;
|
||||
extern const struct rtw89_mac_gen_def rtw89_mac_gen_be;
|
||||
|
||||
static inline
|
||||
u32 rtw89_mac_mem_base_addrs(struct rtw89_dev *rtwdev, u8 sel)
|
||||
{
|
||||
const struct rtw89_mac_gen_def *mac = rtwdev->chip->mac_def;
|
||||
|
||||
if (rtwdev->chip->chip_id == RTL8922D &&
|
||||
sel == RTW89_MAC_MEM_SECURITY_CAM)
|
||||
return SEC_CAM_BASE_ADDR_BE_8922D;
|
||||
|
||||
return mac->mem_base_addrs[sel];
|
||||
}
|
||||
|
||||
static inline
|
||||
u32 rtw89_mac_reg_by_idx(struct rtw89_dev *rtwdev, u32 reg_base, u8 band)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -589,7 +589,7 @@ static void ser_mac_mem_dump(struct rtw89_dev *rtwdev, u8 *buf,
|
|||
|
||||
start_page = start_addr / mem_page_size;
|
||||
residue = start_addr % mem_page_size;
|
||||
base_addr = mac->mem_base_addrs[sel];
|
||||
base_addr = rtw89_mac_mem_base_addrs(rtwdev, sel);
|
||||
base_addr += start_page * mem_page_size;
|
||||
|
||||
while (cnt < len) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user