diff options
| author | Yuanyuan Liu <yuanliu@codeaurora.org> | 2016-08-23 13:10:59 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-09-02 18:25:46 -0700 |
| commit | d555ef181e5469fc176580e4631303d798059efc (patch) | |
| tree | 4d55aeb6ed25e2440ee6e646a7a64e951bac325b | |
| parent | 734dd59f32562370c24ef7c4b9dd298a090796d7 (diff) | |
qcacld-3.0: Call ICNSS APIs for get/set channels and dfs
Call ICNSS API for get/set unsafe channels and dfs nol when bus
type is SNOC.
CRs-Fixed: 1061220
Change-Id: Ic0627a14a65f07faeb5cfa0ec4fcdc85b79e3f63
| -rw-r--r-- | core/pld/src/pld_common.c | 6 | ||||
| -rw-r--r-- | core/pld/src/pld_snoc.c | 59 | ||||
| -rw-r--r-- | core/pld/src/pld_snoc.h | 25 |
3 files changed, 89 insertions, 1 deletions
diff --git a/core/pld/src/pld_common.c b/core/pld/src/pld_common.c index 59538421e4e7..858c821746c5 100644 --- a/core/pld/src/pld_common.c +++ b/core/pld/src/pld_common.c @@ -622,6 +622,8 @@ int pld_set_wlan_unsafe_channel(struct device *dev, ch_count); break; case PLD_BUS_TYPE_SNOC: + ret = pld_snoc_set_wlan_unsafe_channel(unsafe_ch_list, + ch_count); break; case PLD_BUS_TYPE_SDIO: /* To do get unsafe channel via cnss sdio API */ @@ -657,6 +659,8 @@ int pld_get_wlan_unsafe_channel(struct device *dev, u16 *unsafe_ch_list, ch_count, buf_len); break; case PLD_BUS_TYPE_SNOC: + ret = pld_snoc_get_wlan_unsafe_channel(unsafe_ch_list, + ch_count, buf_len); break; case PLD_BUS_TYPE_SDIO: /* To do get unsafe channel via cnss sdio API */ @@ -687,6 +691,7 @@ int pld_wlan_set_dfs_nol(struct device *dev, void *info, u16 info_len) ret = pld_pcie_wlan_set_dfs_nol(info, info_len); break; case PLD_BUS_TYPE_SNOC: + ret = pld_snoc_wlan_set_dfs_nol(info, info_len); break; case PLD_BUS_TYPE_SDIO: /* To do get nol via cnss sdio API */ @@ -719,6 +724,7 @@ int pld_wlan_get_dfs_nol(struct device *dev, void *info, u16 info_len) ret = pld_pcie_wlan_get_dfs_nol(info, info_len); break; case PLD_BUS_TYPE_SNOC: + ret = pld_snoc_wlan_get_dfs_nol(info, info_len); break; case PLD_BUS_TYPE_SDIO: break; diff --git a/core/pld/src/pld_snoc.c b/core/pld/src/pld_snoc.c index a47409b4180d..d04547c9a656 100644 --- a/core/pld/src/pld_snoc.c +++ b/core/pld/src/pld_snoc.c @@ -448,4 +448,63 @@ int pld_snoc_get_irq(int ce_id) return icnss_get_irq(ce_id); } +/** + * pld_snoc_set_wlan_unsafe_channel() - Set unsafe channel + * @unsafe_ch_list: unsafe channel list + * @ch_count: number of channel + * + * Return: 0 for success + * Non zero failure code for errors + */ +int pld_snoc_set_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 ch_count) +{ + return icnss_set_wlan_unsafe_channel(unsafe_ch_list, ch_count); +} + +/** + * pld_get_wlan_unsafe_channel() - Get unsafe channel + * @unsafe_ch_list: buffer to unsafe channel list + * @ch_count: number of channel + * @buf_len: buffer length + * + * Return WLAN unsafe channel to the buffer. + * + * Return: 0 for success + * Non zero failure code for errors + */ +int pld_snoc_get_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 *ch_count, + u16 buf_len) +{ + return icnss_get_wlan_unsafe_channel(unsafe_ch_list, ch_count, + buf_len); +} + +/** + * pld_wlan_set_dfs_nol() - Set DFS info + * @info: DFS info + * @info_len: info length + * + * Return: 0 for success + * Non zero failure code for errors + */ +int pld_snoc_wlan_set_dfs_nol(const void *info, u16 info_len) +{ + return icnss_wlan_set_dfs_nol(info, info_len); +} + +/** + * pld_wlan_get_dfs_nol() - Get DFS info + * @info: buffer to DFS info + * @info_len: info length + * + * Return DFS info to the buffer. + * + * Return: 0 for success + * Non zero failure code for errors + */ +int pld_snoc_wlan_get_dfs_nol(void *info, u16 info_len) +{ + return icnss_wlan_get_dfs_nol(info, info_len); +} + #endif diff --git a/core/pld/src/pld_snoc.h b/core/pld/src/pld_snoc.h index ca1ce1d91cd6..e047ae2c35af 100644 --- a/core/pld/src/pld_snoc.h +++ b/core/pld/src/pld_snoc.h @@ -87,6 +87,25 @@ static inline int pld_snoc_get_irq(int ce_id) { return 0; } +static inline int pld_snoc_set_wlan_unsafe_channel(u16 *unsafe_ch_list, + u16 ch_count) +{ + return 0; +} +static inline int pld_snoc_get_wlan_unsafe_channel(u16 *unsafe_ch_list, + u16 *ch_count, + u16 buf_len) +{ + return 0; +} +static inline int pld_snoc_wlan_set_dfs_nol(const void *info, u16 info_len) +{ + return 0; +} +static inline int pld_snoc_wlan_get_dfs_nol(void *info, u16 info_len) +{ + return 0; +} #else int pld_snoc_register_driver(void); void pld_snoc_unregister_driver(void); @@ -104,6 +123,10 @@ int pld_snoc_get_ce_id(int irq); int pld_snoc_power_on(struct device *dev); int pld_snoc_power_off(struct device *dev); int pld_snoc_get_irq(int ce_id); +int pld_snoc_set_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 ch_count); +int pld_snoc_get_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 *ch_count, + u16 buf_len); +int pld_snoc_wlan_set_dfs_nol(const void *info, u16 info_len); +int pld_snoc_wlan_get_dfs_nol(void *info, u16 info_len); #endif - #endif |
