mirror of https://gitee.com/openkylin/linux.git
ath10k: propagate ath10k_ce_disable_interrupts() errors
This shouldn't be silenced. This will be necessary for PCI init code reordering. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
parent
5b2589fcff
commit
28642f4281
|
@ -792,13 +792,13 @@ static void ath10k_ce_per_engine_handler_adjust(struct ath10k_ce_pipe *ce_state,
|
||||||
ath10k_pci_sleep(ar);
|
ath10k_pci_sleep(ar);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ath10k_ce_disable_interrupts(struct ath10k *ar)
|
int ath10k_ce_disable_interrupts(struct ath10k *ar)
|
||||||
{
|
{
|
||||||
int ce_id, ret;
|
int ce_id, ret;
|
||||||
|
|
||||||
ret = ath10k_pci_wake(ar);
|
ret = ath10k_pci_wake(ar);
|
||||||
if (ret)
|
if (ret)
|
||||||
return;
|
return ret;
|
||||||
|
|
||||||
for (ce_id = 0; ce_id < CE_COUNT; ce_id++) {
|
for (ce_id = 0; ce_id < CE_COUNT; ce_id++) {
|
||||||
u32 ctrl_addr = ath10k_ce_base_address(ce_id);
|
u32 ctrl_addr = ath10k_ce_base_address(ce_id);
|
||||||
|
@ -807,7 +807,10 @@ void ath10k_ce_disable_interrupts(struct ath10k *ar)
|
||||||
ath10k_ce_error_intr_disable(ar, ctrl_addr);
|
ath10k_ce_error_intr_disable(ar, ctrl_addr);
|
||||||
ath10k_ce_watermark_intr_disable(ar, ctrl_addr);
|
ath10k_ce_watermark_intr_disable(ar, ctrl_addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
ath10k_pci_sleep(ar);
|
ath10k_pci_sleep(ar);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ath10k_ce_send_cb_register(struct ath10k_ce_pipe *ce_state,
|
void ath10k_ce_send_cb_register(struct ath10k_ce_pipe *ce_state,
|
||||||
|
|
|
@ -234,7 +234,7 @@ void ath10k_ce_deinit(struct ath10k_ce_pipe *ce_state);
|
||||||
/*==================CE Interrupt Handlers====================*/
|
/*==================CE Interrupt Handlers====================*/
|
||||||
void ath10k_ce_per_engine_service_any(struct ath10k *ar);
|
void ath10k_ce_per_engine_service_any(struct ath10k *ar);
|
||||||
void ath10k_ce_per_engine_service(struct ath10k *ar, unsigned int ce_id);
|
void ath10k_ce_per_engine_service(struct ath10k *ar, unsigned int ce_id);
|
||||||
void ath10k_ce_disable_interrupts(struct ath10k *ar);
|
int ath10k_ce_disable_interrupts(struct ath10k *ar);
|
||||||
|
|
||||||
/* ce_attr.flags values */
|
/* ce_attr.flags values */
|
||||||
/* Use NonSnooping PCIe accesses? */
|
/* Use NonSnooping PCIe accesses? */
|
||||||
|
|
|
@ -879,8 +879,12 @@ static void ath10k_pci_stop_ce(struct ath10k *ar)
|
||||||
struct ath10k_pci *ar_pci = ath10k_pci_priv(ar);
|
struct ath10k_pci *ar_pci = ath10k_pci_priv(ar);
|
||||||
struct ath10k_pci_compl *compl;
|
struct ath10k_pci_compl *compl;
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = ath10k_ce_disable_interrupts(ar);
|
||||||
|
if (ret)
|
||||||
|
ath10k_warn("failed to disable CE interrupts: %d\n", ret);
|
||||||
|
|
||||||
ath10k_ce_disable_interrupts(ar);
|
|
||||||
ath10k_pci_kill_tasklet(ar);
|
ath10k_pci_kill_tasklet(ar);
|
||||||
|
|
||||||
/* Mark pending completions as aborted, so that upper layers free up
|
/* Mark pending completions as aborted, so that upper layers free up
|
||||||
|
|
Loading…
Reference in New Issue