Loading drivers/platform/msm/gsi/gsi.c +8 −2 Original line number Diff line number Diff line /* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2015-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -2959,7 +2959,13 @@ int gsi_reset_channel(unsigned long chan_hdl) ctx = &gsi_ctx->chan[chan_hdl]; if (ctx->state != GSI_CHAN_STATE_STOPPED) { /* * In WDI3 case, if SAP enabled but no client connected, * GSI will be in allocated state. When SAP disabled, * gsi_reset_channel will be called and reset is needed. */ if (ctx->state != GSI_CHAN_STATE_STOPPED && ctx->state != GSI_CHAN_STATE_ALLOCATED) { GSIERR("bad state %d\n", ctx->state); return -GSI_STATUS_UNSUPPORTED_OP; } Loading drivers/platform/msm/ipa/ipa_v3/ipa_wdi3_i.c +11 −16 Original line number Diff line number Diff line /* Copyright (c) 2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -503,6 +503,11 @@ int ipa3_disconn_wdi3_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx) ep_rx = &ipa3_ctx->ep[ipa_ep_idx_rx]; /* tear down tx pipe */ result = ipa3_reset_gsi_channel(ipa_ep_idx_tx); if (result != GSI_STATUS_SUCCESS) { IPAERR("failed to reset gsi channel: %d.\n", result); return result; } result = gsi_reset_evt_ring(ep_tx->gsi_evt_ring_hdl); if (result != GSI_STATUS_SUCCESS) { IPAERR("failed to reset evt ring: %d.\n", result); Loading @@ -518,6 +523,11 @@ int ipa3_disconn_wdi3_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx) IPADBG("tx client (ep: %d) disconnected\n", ipa_ep_idx_tx); /* tear down rx pipe */ result = ipa3_reset_gsi_channel(ipa_ep_idx_rx); if (result != GSI_STATUS_SUCCESS) { IPAERR("failed to reset gsi channel: %d.\n", result); return result; } result = gsi_reset_evt_ring(ep_rx->gsi_evt_ring_hdl); if (result != GSI_STATUS_SUCCESS) { IPAERR("failed to reset evt ring: %d.\n", result); Loading Loading @@ -664,21 +674,6 @@ int ipa3_disable_wdi3_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx) goto fail; } /* reset gsi rx channel */ result = ipa3_reset_gsi_channel(ipa_ep_idx_rx); if (result != GSI_STATUS_SUCCESS) { IPAERR("failed to reset gsi channel: %d.\n", result); result = -EFAULT; goto fail; } /* reset gsi tx channel */ result = ipa3_reset_gsi_channel(ipa_ep_idx_tx); if (result != GSI_STATUS_SUCCESS) { IPAERR("failed to reset gsi channel: %d.\n", result); result = -EFAULT; goto fail; } if (disable_force_clear) ipa3_disable_force_clear(ipa_ep_idx_rx); Loading Loading
drivers/platform/msm/gsi/gsi.c +8 −2 Original line number Diff line number Diff line /* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2015-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -2959,7 +2959,13 @@ int gsi_reset_channel(unsigned long chan_hdl) ctx = &gsi_ctx->chan[chan_hdl]; if (ctx->state != GSI_CHAN_STATE_STOPPED) { /* * In WDI3 case, if SAP enabled but no client connected, * GSI will be in allocated state. When SAP disabled, * gsi_reset_channel will be called and reset is needed. */ if (ctx->state != GSI_CHAN_STATE_STOPPED && ctx->state != GSI_CHAN_STATE_ALLOCATED) { GSIERR("bad state %d\n", ctx->state); return -GSI_STATUS_UNSUPPORTED_OP; } Loading
drivers/platform/msm/ipa/ipa_v3/ipa_wdi3_i.c +11 −16 Original line number Diff line number Diff line /* Copyright (c) 2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -503,6 +503,11 @@ int ipa3_disconn_wdi3_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx) ep_rx = &ipa3_ctx->ep[ipa_ep_idx_rx]; /* tear down tx pipe */ result = ipa3_reset_gsi_channel(ipa_ep_idx_tx); if (result != GSI_STATUS_SUCCESS) { IPAERR("failed to reset gsi channel: %d.\n", result); return result; } result = gsi_reset_evt_ring(ep_tx->gsi_evt_ring_hdl); if (result != GSI_STATUS_SUCCESS) { IPAERR("failed to reset evt ring: %d.\n", result); Loading @@ -518,6 +523,11 @@ int ipa3_disconn_wdi3_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx) IPADBG("tx client (ep: %d) disconnected\n", ipa_ep_idx_tx); /* tear down rx pipe */ result = ipa3_reset_gsi_channel(ipa_ep_idx_rx); if (result != GSI_STATUS_SUCCESS) { IPAERR("failed to reset gsi channel: %d.\n", result); return result; } result = gsi_reset_evt_ring(ep_rx->gsi_evt_ring_hdl); if (result != GSI_STATUS_SUCCESS) { IPAERR("failed to reset evt ring: %d.\n", result); Loading Loading @@ -664,21 +674,6 @@ int ipa3_disable_wdi3_pipes(int ipa_ep_idx_tx, int ipa_ep_idx_rx) goto fail; } /* reset gsi rx channel */ result = ipa3_reset_gsi_channel(ipa_ep_idx_rx); if (result != GSI_STATUS_SUCCESS) { IPAERR("failed to reset gsi channel: %d.\n", result); result = -EFAULT; goto fail; } /* reset gsi tx channel */ result = ipa3_reset_gsi_channel(ipa_ep_idx_tx); if (result != GSI_STATUS_SUCCESS) { IPAERR("failed to reset gsi channel: %d.\n", result); result = -EFAULT; goto fail; } if (disable_force_clear) ipa3_disable_force_clear(ipa_ep_idx_rx); Loading