mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
wifi: mt76: mt7915: enable coredump support
Host triggered and catastrophic event triggered firmware core dumping for basic firmware issues triage, including state reporting, task/irq info, function calltrace and MCU memory dump. Signed-off-by: Ryder Lee <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
@@ -224,6 +224,15 @@ struct mib_stats {
|
||||
u32 tx_amsdu_cnt;
|
||||
};
|
||||
|
||||
/* crash-dump */
|
||||
struct mt7915_crash_data {
|
||||
guid_t guid;
|
||||
struct timespec64 timestamp;
|
||||
|
||||
u8 *memdump_buf;
|
||||
size_t memdump_buf_len;
|
||||
};
|
||||
|
||||
struct mt7915_hif {
|
||||
struct list_head list;
|
||||
|
||||
@@ -305,6 +314,7 @@ struct mt7915_dev {
|
||||
|
||||
struct work_struct init_work;
|
||||
struct work_struct rc_work;
|
||||
struct work_struct dump_work;
|
||||
struct work_struct reset_work;
|
||||
wait_queue_head_t reset_wait;
|
||||
|
||||
@@ -317,6 +327,14 @@ struct mt7915_dev {
|
||||
bool restart:1;
|
||||
} recovery;
|
||||
|
||||
/* protects coredump data */
|
||||
struct mutex dump_mutex;
|
||||
#ifdef CONFIG_DEV_COREDUMP
|
||||
struct {
|
||||
struct mt7915_crash_data *crash_data;
|
||||
} coredump;
|
||||
#endif
|
||||
|
||||
struct list_head sta_rc_list;
|
||||
struct list_head sta_poll_list;
|
||||
struct list_head twt_list;
|
||||
@@ -562,6 +580,9 @@ static inline void mt7915_irq_disable(struct mt7915_dev *dev, u32 mask)
|
||||
mt76_set_irq_mask(&dev->mt76, MT_INT_MASK_CSR, mask, 0);
|
||||
}
|
||||
|
||||
void mt7915_memcpy_fromio(struct mt7915_dev *dev, void *buf, u32 offset,
|
||||
size_t len);
|
||||
|
||||
void mt7915_mac_init(struct mt7915_dev *dev);
|
||||
u32 mt7915_mac_wtbl_lmac_addr(struct mt7915_dev *dev, u16 wcid, u8 dw);
|
||||
bool mt7915_mac_wtbl_update(struct mt7915_dev *dev, int idx, u32 mask);
|
||||
@@ -581,6 +602,7 @@ void mt7915_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
|
||||
struct ieee80211_sta *sta);
|
||||
void mt7915_mac_work(struct work_struct *work);
|
||||
void mt7915_mac_reset_work(struct work_struct *work);
|
||||
void mt7915_mac_dump_work(struct work_struct *work);
|
||||
void mt7915_mac_sta_rc_work(struct work_struct *work);
|
||||
void mt7915_mac_update_stats(struct mt7915_phy *phy);
|
||||
void mt7915_mac_twt_teardown_flow(struct mt7915_dev *dev,
|
||||
|
||||
Reference in New Issue
Block a user