mirror of
https://github.com/torvalds/linux.git
synced 2024-12-02 09:01:34 +00:00
13ce240a93
Although FW crash logs are already supported for dumping in driver, the logs may not be sufficient to analyze field issues. To improve this part, we add a support to dump FW memory. When driver receives FW crash notifications, driver uses DDMA, which is a HW ability, to copy specified FW memory to FW fifo. Driver can then dump these information from FW fifo. With this support, not only FW crash log but also specified FW memory will be dumped while FW crash. Besides, specified registers are also dumped. This feature is implemeted on 8822C first due to difference of FW layouts between ICs. In addition, we add a debugfs to trigger FW crash. It can simulate the process of crash, dump and reset. Through it, we can also check if a reset is ongoing. Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/20210309060121.9099-1-pkshih@realtek.com
47 lines
1.4 KiB
C
47 lines
1.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
|
|
/* Copyright(c) 2018-2019 Realtek Corporation
|
|
*/
|
|
|
|
#ifndef __RTW_MAC_H__
|
|
#define __RTW_MAC_H__
|
|
|
|
#define RTW_HW_PORT_NUM 5
|
|
#define cut_version_to_mask(cut) (0x1 << ((cut) + 1))
|
|
#define SDIO_LOCAL_OFFSET 0x10250000
|
|
#define DDMA_POLLING_COUNT 1000
|
|
#define C2H_PKT_BUF 256
|
|
#define REPORT_BUF 128
|
|
#define PHY_STATUS_SIZE 4
|
|
#define ILLEGAL_KEY_GROUP 0xFAAAAA00
|
|
|
|
/* HW memory address */
|
|
#define OCPBASE_RXBUF_FW_88XX 0x18680000
|
|
#define OCPBASE_TXBUF_88XX 0x18780000
|
|
#define OCPBASE_ROM_88XX 0x00000000
|
|
#define OCPBASE_IMEM_88XX 0x00030000
|
|
#define OCPBASE_DMEM_88XX 0x00200000
|
|
#define OCPBASE_EMEM_88XX 0x00100000
|
|
|
|
#define RSVD_PG_DRV_NUM 16
|
|
#define RSVD_PG_H2C_EXTRAINFO_NUM 24
|
|
#define RSVD_PG_H2C_STATICINFO_NUM 8
|
|
#define RSVD_PG_H2CQ_NUM 8
|
|
#define RSVD_PG_CPU_INSTRUCTION_NUM 0
|
|
#define RSVD_PG_FW_TXBUF_NUM 4
|
|
|
|
void rtw_set_channel_mac(struct rtw_dev *rtwdev, u8 channel, u8 bw,
|
|
u8 primary_ch_idx);
|
|
int rtw_mac_power_on(struct rtw_dev *rtwdev);
|
|
void rtw_mac_power_off(struct rtw_dev *rtwdev);
|
|
int rtw_download_firmware(struct rtw_dev *rtwdev, struct rtw_fw_state *fw);
|
|
int rtw_mac_init(struct rtw_dev *rtwdev);
|
|
void rtw_mac_flush_queues(struct rtw_dev *rtwdev, u32 queues, bool drop);
|
|
int rtw_ddma_to_fw_fifo(struct rtw_dev *rtwdev, u32 ocp_src, u32 size);
|
|
|
|
static inline void rtw_mac_flush_all_queues(struct rtw_dev *rtwdev, bool drop)
|
|
{
|
|
rtw_mac_flush_queues(rtwdev, BIT(rtwdev->hw->queues) - 1, drop);
|
|
}
|
|
|
|
#endif
|