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.

Change-Id: I12e1db54468c7215318333b55d991c53886d21ff
CRs-Fixed: 1061220
Этот коммит содержится в:
Yuanyuan Liu
2016-08-23 13:10:59 -07:00
родитель 42567dfb22
Коммит dcc3d4a270
3 изменённых файлов: 89 добавлений и 1 удалений

Просмотреть файл

@@ -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;

Просмотреть файл

@@ -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

Просмотреть файл

@@ -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