>> +static int ath12k_core_start(struct ath12k_base *ab, >> + enum ath12k_firmware_mode mode) { >> + int ret; >> + >> + ret = ath12k_wmi_attach(ab); >> + if (ret) { >> + ath12k_err(ab, "failed to attach wmi: %d\n", ret); >> + return ret; >> + } >> + >> + ret = ath12k_htc_init(ab); >> + if (ret) { >> + ath12k_err(ab, "failed to init htc: %d\n", ret); >> + goto err_wmi_detach; >> + } >> + >> + ret = ath12k_hif_start(ab); >> + if (ret) { >> + ath12k_err(ab, "failed to start HIF: %d\n", ret); >> + goto err_wmi_detach; >> + } >> + >> + ret = ath12k_htc_wait_target(&ab->htc); >> + if (ret) { >> + ath12k_err(ab, "failed to connect to HTC: %d\n", ret); >> + goto err_hif_stop; >> + } >> + >> + ret = ath12k_dp_htt_connect(&ab->dp); >> + if (ret) { >> + ath12k_err(ab, "failed to connect to HTT: %d\n", ret); >> + goto err_hif_stop; >> + } >> + >> + ret = ath12k_wmi_connect(ab); >> + if (ret) { >> + ath12k_err(ab, "failed to connect wmi: %d\n", ret); >> + goto err_hif_stop; >> + } >> + >> + ret = ath12k_htc_start(&ab->htc); >> + if (ret) { >> + ath12k_err(ab, "failed to start HTC: %d\n", ret); >> + goto err_hif_stop; >> + } >> + >> + ret = ath12k_wmi_wait_for_service_ready(ab); >> + if (ret) { >> + ath12k_err(ab, "failed to receive wmi service ready event: %d\n", >> + ret); >> + goto err_hif_stop; >> + } >> + >> + ret = ath12k_mac_allocate(ab); >> + if (ret) { >> + ath12k_err(ab, "failed to create new hw device with mac80211 >:%d\n", >> + ret); >> + goto err_hif_stop; >> + } >> + >> + ath12k_dp_cc_config(ab); >> + >> + ath12k_dp_pdev_pre_alloc(ab); >> + >> + ret = ath12k_dp_rx_pdev_reo_setup(ab); >> + if (ret) { >> + ath12k_err(ab, "failed to initialize reo destination rings: %d\n", >ret); >> + goto err_mac_destroy; >> + } >> + >> + ret = ath12k_wmi_cmd_init(ab); >> + if (ret) { >> + ath12k_err(ab, "failed to send wmi init cmd: %d\n", ret); >> + goto err_reo_cleanup; >> + } >> + >> + ret = ath12k_wmi_wait_for_unified_ready(ab); >> + if (ret) { >> + ath12k_err(ab, "failed to receive wmi unified ready event: %d\n", >> + ret); >> + goto err_reo_cleanup; >> + } >> + >> + /* put hardware to DBS mode */ >> + if (ab->hw_params->single_pdev_only) { >> + ret = ath12k_wmi_set_hw_mode(ab, >WMI_HOST_HW_MODE_DBS); >> + if (ret) { >> + ath12k_err(ab, "failed to send dbs mode: %d\n", ret); >> + goto err_hif_stop; > >Should it goto err_reo_cleanup? Right. Will fix it. Thanks. Sriram.R