msm: gsi: Fix gsi stop channel fail for old target.
In older target we may not receive gsi interrupt while stopping the channel in first retry, so we inject dma 1B packet while retrying. We were observing crash during stop channel as we were reading channel current state only after interrupt recieved. Now reading channel current state in case we not recieved interrupt for older target. Change-Id: I4f436bee610ce6ccd5e0f4c982689c15291a2011 Signed-off-by: Piyush Dhyani <pdhyani@codeaurora.org>
This commit is contained in:
@@ -225,6 +225,12 @@ static void gsi_channel_state_change_wait(unsigned long chan_hdl,
|
|||||||
GSI_EE_n_CNTXT_SRC_GSI_CH_IRQ, ee);
|
GSI_EE_n_CNTXT_SRC_GSI_CH_IRQ, ee);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (gsi_ctx->per.ver == GSI_VER_1_0) {
|
||||||
|
gsihal_read_reg_nk_fields(GSI_EE_n_GSI_CH_k_CNTXT_0,
|
||||||
|
ee, chan_hdl, &ch_k_cntxt_0);
|
||||||
|
curr_state = ch_k_cntxt_0.chstate;
|
||||||
|
}
|
||||||
|
|
||||||
/* Update the channel state only if interrupt was raised
|
/* Update the channel state only if interrupt was raised
|
||||||
* on particular channel and also checking global interrupt
|
* on particular channel and also checking global interrupt
|
||||||
* is raised for channel control.
|
* is raised for channel control.
|
||||||
|
Reference in New Issue
Block a user