From: Jeff Hsu Register coredump callback(mt7925_coredump) in pci_driver, it can let platform can trigger core dump to collect the log and recover back after coredump complete without debugfs Some platform not have debugfs Signed-off-by: Jeff Hsu --- drivers/net/wireless/mediatek/mt76/mt7925/mcu.c | 1 + drivers/net/wireless/mediatek/mt76/mt7925/pci.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c index 37cdf3e8a067..cd502166a7f9 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c @@ -1014,6 +1014,7 @@ int mt7925_mcu_chip_config(struct mt792x_dev *dev, const char *cmd) return mt76_mcu_send_msg(&dev->mt76, MCU_UNI_CMD(CHIP_CONFIG), &req, sizeof(req), false); } +EXPORT_SYMBOL_GPL(mt7925_mcu_chip_config); int mt7925_mcu_set_deep_sleep(struct mt792x_dev *dev, bool enable) { diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/pci.c b/drivers/net/wireless/mediatek/mt76/mt7925/pci.c index c4161754c01d..57006cd75b1c 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/pci.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/pci.c @@ -610,6 +610,17 @@ static int mt7925_pci_restore(struct device *device) return _mt7925_pci_resume(device, true); } +static void mt7925_coredump(struct device *dev) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct mt76_dev *mdev = pci_get_drvdata(pdev); + struct mt792x_dev *dev_792x = container_of(mdev, struct mt792x_dev, mt76); + + mt792x_mutex_acquire(dev_792x); + mt7925_mcu_chip_config(dev_792x, "assert"); + mt792x_mutex_release(dev_792x); +} + static const struct dev_pm_ops mt7925_pm_ops = { .suspend = pm_sleep_ptr(mt7925_pci_suspend), .resume = pm_sleep_ptr(mt7925_pci_resume), @@ -626,6 +637,7 @@ static struct pci_driver mt7925_pci_driver = { .remove = mt7925_pci_remove, .shutdown = mt7925_pci_shutdown, .driver.pm = pm_sleep_ptr(&mt7925_pm_ops), + .driver.coredump = mt7925_coredump, }; module_pci_driver(mt7925_pci_driver); -- 2.45.2