From 027d7b5db896fa8b7de8b480b626eccb6257e243 Mon Sep 17 00:00:00 2001 From: Yue Ma Date: Sat, 13 Jul 2019 15:50:09 -0700 Subject: [PATCH] cnss2: Add config to disable time sync feature Add the ability to dynamically control driver and device time sync feature. Change-Id: I753117995a1f7407b90d41b8d69d40b89ea5f4a3 Signed-off-by: Yue Ma --- drivers/net/wireless/cnss2/debug.c | 2 ++ drivers/net/wireless/cnss2/main.h | 1 + drivers/net/wireless/cnss2/pci.c | 10 ++++++++++ 3 files changed, 13 insertions(+) diff --git a/drivers/net/wireless/cnss2/debug.c b/drivers/net/wireless/cnss2/debug.c index 9ba655988f01..b6e7cba39242 100644 --- a/drivers/net/wireless/cnss2/debug.c +++ b/drivers/net/wireless/cnss2/debug.c @@ -705,6 +705,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 8f677f03b7d6..172be260b280 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 baddb51e90fc..7fe4599179a2 100644 --- a/drivers/net/wireless/cnss2/pci.c +++ b/drivers/net/wireless/cnss2/pci.c @@ -1690,6 +1690,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;