Loading drivers/net/wireless/wcnss/wcnss_wlan.c +33 −0 Original line number Diff line number Diff line Loading @@ -174,6 +174,8 @@ static DEFINE_SPINLOCK(reg_spinlock); #define WCNSS_BUILD_VER_REQ (WCNSS_CTRL_MSG_START + 9) #define WCNSS_BUILD_VER_RSP (WCNSS_CTRL_MSG_START + 10) /* max 20mhz channel count */ #define WCNSS_MAX_CH_NUM 45 #define VALID_VERSION(version) \ ((strncmp(version, "INVALID", WCNSS_VERSION_LEN)) ? 1 : 0) Loading Loading @@ -360,6 +362,8 @@ static struct { struct qpnp_adc_tm_btm_param vbat_monitor_params; struct qpnp_adc_tm_chip *adc_tm_dev; struct mutex vbat_monitor_mutex; u16 unsafe_ch_count; u16 unsafe_ch_list[WCNSS_MAX_CH_NUM]; } *penv = NULL; static ssize_t wcnss_wlan_macaddr_store(struct device *dev, Loading Loading @@ -1192,6 +1196,35 @@ u32 wcnss_get_wlan_rx_buff_count(void) } EXPORT_SYMBOL(wcnss_get_wlan_rx_buff_count); int wcnss_set_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 ch_count) { if (penv && unsafe_ch_list && (ch_count <= WCNSS_MAX_CH_NUM)) { memcpy((char *)penv->unsafe_ch_list, (char *)unsafe_ch_list, ch_count * sizeof(u16)); penv->unsafe_ch_count = ch_count; return 0; } else return -ENODEV; } EXPORT_SYMBOL(wcnss_set_wlan_unsafe_channel); int wcnss_get_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 buffer_size, u16 *ch_count) { if (penv) { if (buffer_size < penv->unsafe_ch_count * sizeof(u16)) return -ENODEV; memcpy((char *)unsafe_ch_list, (char *)penv->unsafe_ch_list, penv->unsafe_ch_count * sizeof(u16)); *ch_count = penv->unsafe_ch_count; return 0; } else return -ENODEV; } EXPORT_SYMBOL(wcnss_get_wlan_unsafe_channel); static int wcnss_smd_tx(void *data, int len) { int ret = 0; Loading include/linux/wcnss_wlan.h +5 −1 Original line number Diff line number Diff line Loading @@ -88,7 +88,11 @@ static inline void wcnss_log_debug_regs_on_bite(void) { } #endif int wcnss_set_wlan_unsafe_channel( u16 *unsafe_ch_list, u16 ch_count); int wcnss_get_wlan_unsafe_channel( u16 *unsafe_ch_list, u16 buffer_size, u16 *ch_count); #define wcnss_wlan_get_drvdata(dev) dev_get_drvdata(dev) #define wcnss_wlan_set_drvdata(dev, data) dev_set_drvdata((dev), (data)) /* WLAN driver uses these names */ Loading Loading
drivers/net/wireless/wcnss/wcnss_wlan.c +33 −0 Original line number Diff line number Diff line Loading @@ -174,6 +174,8 @@ static DEFINE_SPINLOCK(reg_spinlock); #define WCNSS_BUILD_VER_REQ (WCNSS_CTRL_MSG_START + 9) #define WCNSS_BUILD_VER_RSP (WCNSS_CTRL_MSG_START + 10) /* max 20mhz channel count */ #define WCNSS_MAX_CH_NUM 45 #define VALID_VERSION(version) \ ((strncmp(version, "INVALID", WCNSS_VERSION_LEN)) ? 1 : 0) Loading Loading @@ -360,6 +362,8 @@ static struct { struct qpnp_adc_tm_btm_param vbat_monitor_params; struct qpnp_adc_tm_chip *adc_tm_dev; struct mutex vbat_monitor_mutex; u16 unsafe_ch_count; u16 unsafe_ch_list[WCNSS_MAX_CH_NUM]; } *penv = NULL; static ssize_t wcnss_wlan_macaddr_store(struct device *dev, Loading Loading @@ -1192,6 +1196,35 @@ u32 wcnss_get_wlan_rx_buff_count(void) } EXPORT_SYMBOL(wcnss_get_wlan_rx_buff_count); int wcnss_set_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 ch_count) { if (penv && unsafe_ch_list && (ch_count <= WCNSS_MAX_CH_NUM)) { memcpy((char *)penv->unsafe_ch_list, (char *)unsafe_ch_list, ch_count * sizeof(u16)); penv->unsafe_ch_count = ch_count; return 0; } else return -ENODEV; } EXPORT_SYMBOL(wcnss_set_wlan_unsafe_channel); int wcnss_get_wlan_unsafe_channel(u16 *unsafe_ch_list, u16 buffer_size, u16 *ch_count) { if (penv) { if (buffer_size < penv->unsafe_ch_count * sizeof(u16)) return -ENODEV; memcpy((char *)unsafe_ch_list, (char *)penv->unsafe_ch_list, penv->unsafe_ch_count * sizeof(u16)); *ch_count = penv->unsafe_ch_count; return 0; } else return -ENODEV; } EXPORT_SYMBOL(wcnss_get_wlan_unsafe_channel); static int wcnss_smd_tx(void *data, int len) { int ret = 0; Loading
include/linux/wcnss_wlan.h +5 −1 Original line number Diff line number Diff line Loading @@ -88,7 +88,11 @@ static inline void wcnss_log_debug_regs_on_bite(void) { } #endif int wcnss_set_wlan_unsafe_channel( u16 *unsafe_ch_list, u16 ch_count); int wcnss_get_wlan_unsafe_channel( u16 *unsafe_ch_list, u16 buffer_size, u16 *ch_count); #define wcnss_wlan_get_drvdata(dev) dev_get_drvdata(dev) #define wcnss_wlan_set_drvdata(dev, data) dev_set_drvdata((dev), (data)) /* WLAN driver uses these names */ Loading