diff --git a/include/linux/msm_gsi.h b/include/linux/msm_gsi.h index 294d73e2e24d..796e430f26d2 100644 --- a/include/linux/msm_gsi.h +++ b/include/linux/msm_gsi.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2015-2019, The Linux Foundation. All rights reserved. + * Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. */ #ifndef MSM_GSI_H @@ -1723,6 +1723,20 @@ int gsi_map_virtual_ch_to_per_ep(u32 ee, u32 chan_num, u32 per_ep_index); */ int gsi_alloc_channel_ee(unsigned int chan_idx, unsigned int ee, int *code); +/** + * gsi_enable_flow_control_ee - Peripheral should call this function + * to enable flow control other EE's channel. This is usually done in USB + * connent and SSR scenarios. + * + * @chan_idx: Virtual channel index + * @ee: EE + * @code: [out] response code for operation + + * @Return gsi_status + */ +int gsi_enable_flow_control_ee(unsigned int chan_idx, unsigned int ee, + int *code); + /* * Here is a typical sequence of calls * @@ -1992,6 +2006,12 @@ static inline int gsi_alloc_channel_ee(unsigned int chan_idx, unsigned int ee, return -GSI_STATUS_UNSUPPORTED_OP; } +static inline int gsi_enable_flow_control_ee(unsigned int chan_idx, + unsigned int ee, int *code) +{ + return -GSI_STATUS_UNSUPPORTED_OP; +} + static inline void gsi_wdi3_write_evt_ring_db( unsigned long chan_hdl, uint32_t db_addr_low, uint32_t db_addr_high)