diff --git a/drivers/net/wireless/cnss2/debug.c b/drivers/net/wireless/cnss2/debug.c index 330b4b10e3ce..d9f4d08fc2d4 100644 --- a/drivers/net/wireless/cnss2/debug.c +++ b/drivers/net/wireless/cnss2/debug.c @@ -707,6 +707,8 @@ static int cnss_show_quirks_state(struct seq_file *s, continue; case IGNORE_PCI_LINK_FAILURE: seq_puts(s, "IGNORE_PCI_LINK_FAILURE"); + case DISABLE_TIME_SYNC: + seq_puts(s, "DISABLE_TIME_SYNC"); continue; } diff --git a/drivers/net/wireless/cnss2/main.h b/drivers/net/wireless/cnss2/main.h index 41ad0ac0389a..61b56011c8c6 100644 --- a/drivers/net/wireless/cnss2/main.h +++ b/drivers/net/wireless/cnss2/main.h @@ -324,6 +324,7 @@ enum cnss_debug_quirks { DISABLE_DRV, DISABLE_IO_COHERENCY, IGNORE_PCI_LINK_FAILURE, + DISABLE_TIME_SYNC, }; enum cnss_bdf_type { diff --git a/drivers/net/wireless/cnss2/pci.c b/drivers/net/wireless/cnss2/pci.c index 080943dbbcd2..702606750674 100644 --- a/drivers/net/wireless/cnss2/pci.c +++ b/drivers/net/wireless/cnss2/pci.c @@ -1711,6 +1711,16 @@ static void cnss_pci_time_sync_work_hdlr(struct work_struct *work) unsigned int time_sync_period_ms = plat_priv->ctrl_params.time_sync_period; + if (test_bit(DISABLE_TIME_SYNC, &plat_priv->ctrl_params.quirks)) { + cnss_pr_dbg("Time sync is disabled\n"); + return; + } + + if (!time_sync_period_ms) { + cnss_pr_dbg("Skip time sync as time period is 0\n"); + return; + } + if (cnss_pci_is_device_down(&pci_priv->pci_dev->dev)) return;