@@ -677,13 +677,22 @@ static void ath10k_send_suspend_complete(struct ath10k *ar)
677677 complete (& ar -> target_suspend );
678678}
679679
680- static void ath10k_init_sdio (struct ath10k * ar , enum ath10k_firmware_mode mode )
680+ static int ath10k_init_sdio (struct ath10k * ar , enum ath10k_firmware_mode mode )
681681{
682+ int ret ;
682683 u32 param = 0 ;
683684
684- ath10k_bmi_write32 (ar , hi_mbox_io_block_sz , 256 );
685- ath10k_bmi_write32 (ar , hi_mbox_isr_yield_limit , 99 );
686- ath10k_bmi_read32 (ar , hi_acs_flags , & param );
685+ ret = ath10k_bmi_write32 (ar , hi_mbox_io_block_sz , 256 );
686+ if (ret )
687+ return ret ;
688+
689+ ret = ath10k_bmi_write32 (ar , hi_mbox_isr_yield_limit , 99 );
690+ if (ret )
691+ return ret ;
692+
693+ ret = ath10k_bmi_read32 (ar , hi_acs_flags , & param );
694+ if (ret )
695+ return ret ;
687696
688697 /* Data transfer is not initiated, when reduced Tx completion
689698 * is used for SDIO. disable it until fixed
@@ -700,14 +709,23 @@ static void ath10k_init_sdio(struct ath10k *ar, enum ath10k_firmware_mode mode)
700709 else
701710 param |= HI_ACS_FLAGS_SDIO_SWAP_MAILBOX_SET ;
702711
703- ath10k_bmi_write32 (ar , hi_acs_flags , param );
712+ ret = ath10k_bmi_write32 (ar , hi_acs_flags , param );
713+ if (ret )
714+ return ret ;
704715
705716 /* Explicitly set fwlog prints to zero as target may turn it on
706717 * based on scratch registers.
707718 */
708- ath10k_bmi_read32 (ar , hi_option_flag , & param );
719+ ret = ath10k_bmi_read32 (ar , hi_option_flag , & param );
720+ if (ret )
721+ return ret ;
722+
709723 param |= HI_OPTION_DISABLE_DBGLOG ;
710- ath10k_bmi_write32 (ar , hi_option_flag , param );
724+ ret = ath10k_bmi_write32 (ar , hi_option_flag , param );
725+ if (ret )
726+ return ret ;
727+
728+ return 0 ;
711729}
712730
713731static int ath10k_init_configure_target (struct ath10k * ar )
@@ -2118,12 +2136,15 @@ static int ath10k_init_uart(struct ath10k *ar)
21182136 return ret ;
21192137 }
21202138
2121- if (!uart_print && ar -> hw_params .uart_pin_workaround ) {
2122- ret = ath10k_bmi_write32 (ar , hi_dbg_uart_txpin ,
2123- ar -> hw_params .uart_pin );
2124- if (ret ) {
2125- ath10k_warn (ar , "failed to set UART TX pin: %d" , ret );
2126- return ret ;
2139+ if (!uart_print ) {
2140+ if (ar -> hw_params .uart_pin_workaround ) {
2141+ ret = ath10k_bmi_write32 (ar , hi_dbg_uart_txpin ,
2142+ ar -> hw_params .uart_pin );
2143+ if (ret ) {
2144+ ath10k_warn (ar , "failed to set UART TX pin: %d" ,
2145+ ret );
2146+ return ret ;
2147+ }
21272148 }
21282149
21292150 return 0 ;
@@ -2562,8 +2583,13 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode,
25622583 if (status )
25632584 goto err ;
25642585
2565- if (ar -> hif .bus == ATH10K_BUS_SDIO )
2566- ath10k_init_sdio (ar , mode );
2586+ if (ar -> hif .bus == ATH10K_BUS_SDIO ) {
2587+ status = ath10k_init_sdio (ar , mode );
2588+ if (status ) {
2589+ ath10k_err (ar , "failed to init SDIO: %d\n" , status );
2590+ goto err ;
2591+ }
2592+ }
25672593 }
25682594
25692595 ar -> htc .htc_ops .target_send_suspend_complete =
@@ -2784,7 +2810,7 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode,
27842810
27852811 status = ath10k_hif_set_target_log_mode (ar , fw_diag_log );
27862812 if (status && status != - EOPNOTSUPP ) {
2787- ath10k_warn (ar , "set traget log mode faileds : %d\n" , status );
2813+ ath10k_warn (ar , "set target log mode failed : %d\n" , status );
27882814 goto err_hif_stop ;
27892815 }
27902816
0 commit comments