From 112dc33583bfcb520b7153df86d6f7a19729d930 Mon Sep 17 00:00:00 2001 From: Yue Ma Date: Fri, 4 Dec 2020 15:16:54 -0800 Subject: [PATCH] cnss2: Use CONFIG_INTERCONNECT to protect icc related APIs This makes sure CNSS2 driver is able to work in the platforms and kernels which do not have on-chip interconnect management feature. Change-Id: I282ef1a282fab9ce4910e7ab914f26789b34ba64 Signed-off-by: Yue Ma --- drivers/net/wireless/cnss2/main.c | 9 +++++++++ drivers/net/wireless/cnss2/main.h | 4 ++++ drivers/net/wireless/cnss2/pci.c | 13 +++++++++++++ 3 files changed, 26 insertions(+) diff --git a/drivers/net/wireless/cnss2/main.c b/drivers/net/wireless/cnss2/main.c index 2a6ae6d2c65d..4f00d456a34f 100644 --- a/drivers/net/wireless/cnss2/main.c +++ b/drivers/net/wireless/cnss2/main.c @@ -2391,6 +2391,7 @@ int cnss_minidump_remove_region(struct cnss_plat_data *plat_priv, } #endif /* CONFIG_QCOM_MINIDUMP */ +#if IS_ENABLED(CONFIG_INTERCONNECT) /** * cnss_register_bus_scale() - Setup interconnect voting data * @plat_priv: Platform data structure @@ -2516,6 +2517,14 @@ static void cnss_unregister_bus_scale(struct cnss_plat_data *plat_priv) } memset(&plat_priv->icc, 0, sizeof(plat_priv->icc)); } +#else +static int cnss_register_bus_scale(struct cnss_plat_data *plat_priv) +{ + return 0; +} + +static void cnss_unregister_bus_scale(struct cnss_plat_data *plat_priv) {} +#endif /* CONFIG_INTERCONNECT */ static ssize_t recovery_store(struct device *dev, struct device_attribute *attr, diff --git a/drivers/net/wireless/cnss2/main.h b/drivers/net/wireless/cnss2/main.h index 4fa184dc886d..2b0eebfbe731 100644 --- a/drivers/net/wireless/cnss2/main.h +++ b/drivers/net/wireless/cnss2/main.h @@ -9,7 +9,9 @@ #include #endif #include +#if IS_ENABLED(CONFIG_INTERCONNECT) #include +#endif #include #include #include @@ -146,6 +148,7 @@ struct cnss_esoc_info { }; #endif +#if IS_ENABLED(CONFIG_INTERCONNECT) /** * struct cnss_bus_bw_cfg - Interconnect vote data * @avg_bw: Vote for average bandwidth @@ -172,6 +175,7 @@ struct cnss_bus_bw_info { struct icc_path *icc_path; struct cnss_bus_bw_cfg *cfg_table; }; +#endif /** * struct cnss_interconnect_cfg - CNSS platform interconnect config diff --git a/drivers/net/wireless/cnss2/pci.c b/drivers/net/wireless/cnss2/pci.c index 5abfdca8efe9..bdcf6c719b66 100644 --- a/drivers/net/wireless/cnss2/pci.c +++ b/drivers/net/wireless/cnss2/pci.c @@ -527,6 +527,7 @@ static int cnss_pci_force_wake_put(struct cnss_pci_data *pci_priv) return ret; } +#if IS_ENABLED(CONFIG_INTERCONNECT) /** * cnss_setup_bus_bandwidth() - Setup interconnect vote for given bandwidth * @plat_priv: Platform private data struct @@ -580,6 +581,18 @@ int cnss_request_bus_bandwidth(struct device *dev, int bandwidth) return cnss_setup_bus_bandwidth(plat_priv, (u32)bandwidth, true); } +#else +static int cnss_setup_bus_bandwidth(struct cnss_plat_data *plat_priv, + u32 bw, bool save) +{ + return 0; +} + +int cnss_request_bus_bandwidth(struct device *dev, int bandwidth) +{ + return 0; +} +#endif EXPORT_SYMBOL(cnss_request_bus_bandwidth); int cnss_pci_debug_reg_read(struct cnss_pci_data *pci_priv, u32 offset,