diff --git a/drivers/net/wireless/cnss2/pci.c b/drivers/net/wireless/cnss2/pci.c index b513eb677a56..cdd18f752c18 100644 --- a/drivers/net/wireless/cnss2/pci.c +++ b/drivers/net/wireless/cnss2/pci.c @@ -1258,6 +1258,21 @@ int cnss_pci_link_down(struct device *dev) } EXPORT_SYMBOL(cnss_pci_link_down); +int cnss_pci_get_reg_dump(struct device *dev, uint8_t *buffer, uint32_t len) +{ + struct pci_dev *pci_dev = to_pci_dev(dev); + + if (!pci_dev) { + cnss_pr_err("pci_dev is NULL\n"); + return -EINVAL; + } + + cnss_pr_dbg("Get pci reg dump for hang data\n"); + + return msm_pcie_reg_dump(pci_dev, buffer, len); +} +EXPORT_SYMBOL(cnss_pci_get_reg_dump); + int cnss_pcie_is_device_down(struct cnss_pci_data *pci_priv) { struct cnss_plat_data *plat_priv; diff --git a/include/net/cnss2.h b/include/net/cnss2.h index 8758febdfd78..cf05c0b13529 100644 --- a/include/net/cnss2.h +++ b/include/net/cnss2.h @@ -239,4 +239,7 @@ extern int cnss_athdiag_write(struct device *dev, uint32_t offset, uint8_t *input); extern int cnss_set_fw_log_mode(struct device *dev, uint8_t fw_log_mode); extern int cnss_set_pcie_gen_speed(struct device *dev, u8 pcie_gen_speed); +extern int cnss_pci_get_reg_dump(struct device *dev, uint8_t *buffer, + uint32_t len); + #endif /* _NET_CNSS2_H */