Loading drivers/net/wireless/wcnss/wcnss_wlan.c +19 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ #define WCNSS_ENABLE_PC_LATENCY PM_QOS_DEFAULT_VALUE #define WCNSS_PM_QOS_TIMEOUT 15000 #define IS_CAL_DATA_PRESENT 0 #define WAIT_FOR_CBC_IND 2 /* module params */ #define WCNSS_CONFIG_UNSPECIFIED (-1) Loading Loading @@ -214,6 +215,7 @@ 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) #define WCNSS_PM_CONFIG_REQ (WCNSS_CTRL_MSG_START + 11) #define WCNSS_CBC_COMPLETE_IND (WCNSS_CTRL_MSG_START + 12) /* max 20mhz channel count */ #define WCNSS_MAX_CH_NUM 45 Loading Loading @@ -399,6 +401,7 @@ static struct { void __iomem *alarms_tactl; void __iomem *fiq_reg; int nv_downloaded; int is_cbc_done; unsigned char *fw_cal_data; unsigned char *user_cal_data; int fw_cal_rcvd; Loading Loading @@ -1277,6 +1280,7 @@ static void wcnss_smd_notify_event(void *data, unsigned int event) pr_debug("wcnss: closing WCNSS SMD channel :%s", WCNSS_CTRL_CHANNEL); penv->nv_downloaded = 0; penv->is_cbc_done = 0; break; default: Loading Loading @@ -1549,6 +1553,15 @@ int wcnss_device_ready(void) } EXPORT_SYMBOL(wcnss_device_ready); bool wcnss_cbc_complete(void) { if (penv && penv->pdev && penv->is_cbc_done && !wcnss_device_is_shutdown()) return true; return false; } EXPORT_SYMBOL(wcnss_cbc_complete); int wcnss_device_is_shutdown(void) { if (penv && penv->is_shutdown) Loading Loading @@ -2184,6 +2197,8 @@ static void wcnssctrl_rx_handler(struct work_struct *worker) fw_status = wcnss_fw_status(); pr_debug("wcnss: received WCNSS_NVBIN_DNLD_RSP from ccpu %u\n", fw_status); if (fw_status != WAIT_FOR_CBC_IND) penv->is_cbc_done = 1; wcnss_setup_vbat_monitoring(); break; Loading @@ -2193,6 +2208,10 @@ static void wcnssctrl_rx_handler(struct work_struct *worker) pr_debug("wcnss: received WCNSS_CALDATA_DNLD_RSP from ccpu %u\n", fw_status); break; case WCNSS_CBC_COMPLETE_IND: penv->is_cbc_done = 1; pr_debug("wcnss: received WCNSS_CBC_COMPLETE_IND from FW\n"); break; case WCNSS_CALDATA_UPLD_REQ: extract_cal_data(len); Loading include/linux/wcnss_wlan.h +2 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ enum { #define HAVE_WCNSS_SUSPEND_RESUME_NOTIFY 1 #define HAVE_WCNSS_RESET_INTR 1 #define HAVE_WCNSS_CAL_DOWNLOAD 1 #define HAVE_CBC_DONE 1 #define HAVE_WCNSS_RX_BUFF_COUNT 1 #define WLAN_MAC_ADDR_SIZE (6) #define WLAN_RF_REG_ADDR_START_OFFSET 0x3 Loading Loading @@ -105,6 +106,7 @@ void wcnss_riva_log_debug_regs(void); void wcnss_pronto_log_debug_regs(void); int wcnss_is_hw_pronto_ver3(void); int wcnss_device_ready(void); bool wcnss_cbc_complete(void); int wcnss_device_is_shutdown(void); void wcnss_riva_dump_pmic_regs(void); int wcnss_xo_auto_detect_enabled(void); Loading Loading
drivers/net/wireless/wcnss/wcnss_wlan.c +19 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ #define WCNSS_ENABLE_PC_LATENCY PM_QOS_DEFAULT_VALUE #define WCNSS_PM_QOS_TIMEOUT 15000 #define IS_CAL_DATA_PRESENT 0 #define WAIT_FOR_CBC_IND 2 /* module params */ #define WCNSS_CONFIG_UNSPECIFIED (-1) Loading Loading @@ -214,6 +215,7 @@ 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) #define WCNSS_PM_CONFIG_REQ (WCNSS_CTRL_MSG_START + 11) #define WCNSS_CBC_COMPLETE_IND (WCNSS_CTRL_MSG_START + 12) /* max 20mhz channel count */ #define WCNSS_MAX_CH_NUM 45 Loading Loading @@ -399,6 +401,7 @@ static struct { void __iomem *alarms_tactl; void __iomem *fiq_reg; int nv_downloaded; int is_cbc_done; unsigned char *fw_cal_data; unsigned char *user_cal_data; int fw_cal_rcvd; Loading Loading @@ -1277,6 +1280,7 @@ static void wcnss_smd_notify_event(void *data, unsigned int event) pr_debug("wcnss: closing WCNSS SMD channel :%s", WCNSS_CTRL_CHANNEL); penv->nv_downloaded = 0; penv->is_cbc_done = 0; break; default: Loading Loading @@ -1549,6 +1553,15 @@ int wcnss_device_ready(void) } EXPORT_SYMBOL(wcnss_device_ready); bool wcnss_cbc_complete(void) { if (penv && penv->pdev && penv->is_cbc_done && !wcnss_device_is_shutdown()) return true; return false; } EXPORT_SYMBOL(wcnss_cbc_complete); int wcnss_device_is_shutdown(void) { if (penv && penv->is_shutdown) Loading Loading @@ -2184,6 +2197,8 @@ static void wcnssctrl_rx_handler(struct work_struct *worker) fw_status = wcnss_fw_status(); pr_debug("wcnss: received WCNSS_NVBIN_DNLD_RSP from ccpu %u\n", fw_status); if (fw_status != WAIT_FOR_CBC_IND) penv->is_cbc_done = 1; wcnss_setup_vbat_monitoring(); break; Loading @@ -2193,6 +2208,10 @@ static void wcnssctrl_rx_handler(struct work_struct *worker) pr_debug("wcnss: received WCNSS_CALDATA_DNLD_RSP from ccpu %u\n", fw_status); break; case WCNSS_CBC_COMPLETE_IND: penv->is_cbc_done = 1; pr_debug("wcnss: received WCNSS_CBC_COMPLETE_IND from FW\n"); break; case WCNSS_CALDATA_UPLD_REQ: extract_cal_data(len); Loading
include/linux/wcnss_wlan.h +2 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ enum { #define HAVE_WCNSS_SUSPEND_RESUME_NOTIFY 1 #define HAVE_WCNSS_RESET_INTR 1 #define HAVE_WCNSS_CAL_DOWNLOAD 1 #define HAVE_CBC_DONE 1 #define HAVE_WCNSS_RX_BUFF_COUNT 1 #define WLAN_MAC_ADDR_SIZE (6) #define WLAN_RF_REG_ADDR_START_OFFSET 0x3 Loading Loading @@ -105,6 +106,7 @@ void wcnss_riva_log_debug_regs(void); void wcnss_pronto_log_debug_regs(void); int wcnss_is_hw_pronto_ver3(void); int wcnss_device_ready(void); bool wcnss_cbc_complete(void); int wcnss_device_is_shutdown(void); void wcnss_riva_dump_pmic_regs(void); int wcnss_xo_auto_detect_enabled(void); Loading