msm: ipa3: Update channel start as success in flow control state

Observing race condition when we are starting the channel and
modem trying to offload flow_control on same channel. Add changes
to retrun success if channel state is flow control when trying to
start the channel.

Change-Id: Id254cd0e3e17c74e931d27cb96577224559c091e
Signed-off-by: Praveen Kurapati <pkurapat@codeaurora.org>
tirimbino
Praveen Kurapati 6 years ago committed by Gerrit - the friendly Code Review server
parent 29444f604c
commit f3bbb99591
  1. 6
      drivers/platform/msm/gsi/gsi.c
  2. 1
      drivers/platform/msm/gsi/gsi.h

@ -175,7 +175,8 @@ static void gsi_channel_state_change_wait(unsigned long chan_hdl,
}
if (op == GSI_CH_START) {
if (curr_state == GSI_CHAN_STATE_STARTED) {
if (curr_state == GSI_CHAN_STATE_STARTED ||
curr_state == GSI_CHAN_STATE_FLOW_CONTROL) {
ctx->state = curr_state;
return;
}
@ -2780,7 +2781,8 @@ int gsi_start_channel(unsigned long chan_hdl)
ctx,
GSI_START_CMD_TIMEOUT_MS, op);
if (ctx->state != GSI_CHAN_STATE_STARTED) {
if (ctx->state != GSI_CHAN_STATE_STARTED &&
ctx->state != GSI_CHAN_STATE_FLOW_CONTROL) {
/*
* Hardware returned unexpected status, unexpected
* hardware state.

@ -90,6 +90,7 @@ enum gsi_chan_state {
GSI_CHAN_STATE_STARTED = 0x2,
GSI_CHAN_STATE_STOPPED = 0x3,
GSI_CHAN_STATE_STOP_IN_PROC = 0x4,
GSI_CHAN_STATE_FLOW_CONTROL = 0x5,
GSI_CHAN_STATE_ERROR = 0xf
};

Loading…
Cancel
Save