Loading arch/arm/mach-msm/include/mach/ipa.h +18 −5 Original line number Diff line number Diff line Loading @@ -673,6 +673,22 @@ enum teth_tethering_mode { TETH_TETHERING_MODE_MAX, }; /** * teth_bridge_init_params - Parameters used for in/out USB API * @usb_notify_cb: Callback function which should be used by the caller. * Output parameter. * @private_data: Data for the callback function. Should be used by the * caller. Output parameter. * @skip_ep_cfg: boolean field that determines if Apps-processor * should or should not confiugre this end-point. */ struct teth_bridge_init_params { ipa_notify_cb usb_notify_cb; void *private_data; enum ipa_client_type client; bool skip_ep_cfg; }; /** * struct teth_bridge_connect_params - Parameters used in teth_bridge_connect() * @ipa_usb_pipe_hdl: IPA to USB pipe handle, returned from ipa_connect() Loading Loading @@ -977,8 +993,7 @@ int a2_mux_get_client_handles(enum a2_mux_logical_channel_id lcid, /* * Tethering bridge (Rmnet / MBIM) */ int teth_bridge_init(ipa_notify_cb *usb_notify_cb_ptr, void **private_data_ptr, enum ipa_client_type client); int teth_bridge_init(struct teth_bridge_init_params *params); int teth_bridge_disconnect(enum ipa_client_type client); Loading Loading @@ -1480,9 +1495,7 @@ static inline int ipa_rm_inactivity_timer_release_resource( /* * Tethering bridge (Rmnetm / MBIM) */ static inline int teth_bridge_init(ipa_notify_cb *usb_notify_cb_ptr, void **private_data_ptr, enum ipa_client_type client) static inline int teth_bridge_init(struct teth_bridge_init_params *params) { return -EPERM; } Loading arch/arm/mach-msm/include/mach/usb_bam.h +1 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ struct usb_bam_connect_ipa_params { unsigned long data); int (*activity_notify)(void *priv); int (*inactivity_notify)(void *priv); bool skip_ep_cfg; }; /** Loading drivers/platform/msm/ipa/teth_bridge.c +10 −12 Original line number Diff line number Diff line Loading @@ -2015,10 +2015,8 @@ static void a2_prod_notify_cb(void *notify_cb_data, /** * teth_bridge_init() - Initialize the Tethering bridge driver * @usb_notify_cb_ptr: Callback function which should be used by the caller. * Output parameter. * @private_data_ptr: Data for the callback function. Should be used by the * caller. Output parameter. * @params - in/out params for USB initialization API (please look at struct * definition for more info) * * USB driver gets a pointer to a callback function (usb_notify_cb) and an * associated data. USB driver installs this callback function in the call to Loading @@ -2030,8 +2028,7 @@ static void a2_prod_notify_cb(void *notify_cb_data, * -EINVAL - Bad parameter * Other negative value - Failure */ int teth_bridge_init(ipa_notify_cb *usb_notify_cb_ptr, void **private_data_ptr, enum ipa_client_type client) int teth_bridge_init(struct teth_bridge_init_params *params) { int res = 0; u32 lcid; Loading @@ -2039,7 +2036,7 @@ int teth_bridge_init(ipa_notify_cb *usb_notify_cb_ptr, void **private_data_ptr, TETH_DBG_FUNC_ENTRY(); if (usb_notify_cb_ptr == NULL || private_data_ptr == NULL) { if (!params) { TETH_ERR("Bad parameter\n"); TETH_DBG_FUNC_EXIT(); return -EINVAL; Loading @@ -2047,16 +2044,17 @@ int teth_bridge_init(ipa_notify_cb *usb_notify_cb_ptr, void **private_data_ptr, switch (teth_ctx->ipa_hw_type) { case IPA_HW_v1_1: *usb_notify_cb_ptr = usb_notify_cb; lcid = get_channel_id_from_client_prod(client); *private_data_ptr = (void *)lcid; params->usb_notify_cb = usb_notify_cb; lcid = get_channel_id_from_client_prod(params->client); params->private_data = (void *)lcid; idx = get_ch_info_idx(lcid); TETH_DBG("init private data with lcid=%d\n", lcid); break; case IPA_HW_v2_0: *usb_notify_cb_ptr = NULL; *private_data_ptr = (void *)IPA_DO_NOT_CONFIGURE_THIS_EP; params->usb_notify_cb = NULL; params->private_data = NULL; params->skip_ep_cfg = true; break; default: Loading drivers/platform/msm/usb_bam.c +3 −1 Original line number Diff line number Diff line Loading @@ -516,6 +516,7 @@ static int connect_pipe_sys2bam_ipa(u8 idx, sys_in_params.desc_fifo_sz = pipe_connect->desc_fifo_size; sys_in_params.priv = ipa_params->priv; sys_in_params.notify = ipa_params->notify; sys_in_params.skip_ep_cfg = ipa_params->skip_ep_cfg; memcpy(&sys_in_params.ipa_ep_cfg, &ipa_params->ipa_ep_cfg, sizeof(struct ipa_ep_cfg)); Loading Loading @@ -578,6 +579,7 @@ static int connect_pipe_bam2bam_ipa(u8 idx, ipa_in_params.data_fifo_sz = pipe_connect->data_fifo_size; ipa_in_params.notify = ipa_params->notify; ipa_in_params.priv = ipa_params->priv; ipa_in_params.skip_ep_cfg = ipa_params->skip_ep_cfg; /* If BAM is using dedicated SPS pipe memory, get it */ Loading Loading @@ -960,7 +962,7 @@ static int usb_bam_disconnect_ipa_cons( return ret; } } else { ret = ipa_teardown_sys_pipe(ipa_params->prod_clnt_hdl); ret = ipa_teardown_sys_pipe(ipa_params->cons_clnt_hdl); if (ret) { pr_err("%s: src pipe disconnection failure\n", __func__); Loading drivers/usb/gadget/f_qc_ecm.c +4 −0 Original line number Diff line number Diff line Loading @@ -444,6 +444,10 @@ void *ecm_qc_get_ipa_priv(void) return ipa_params.private; } bool ecm_qc_get_skip_ep_config(void) { return ipa_params.skip_ep_cfg; } /*-------------------------------------------------------------------------*/ Loading Loading
arch/arm/mach-msm/include/mach/ipa.h +18 −5 Original line number Diff line number Diff line Loading @@ -673,6 +673,22 @@ enum teth_tethering_mode { TETH_TETHERING_MODE_MAX, }; /** * teth_bridge_init_params - Parameters used for in/out USB API * @usb_notify_cb: Callback function which should be used by the caller. * Output parameter. * @private_data: Data for the callback function. Should be used by the * caller. Output parameter. * @skip_ep_cfg: boolean field that determines if Apps-processor * should or should not confiugre this end-point. */ struct teth_bridge_init_params { ipa_notify_cb usb_notify_cb; void *private_data; enum ipa_client_type client; bool skip_ep_cfg; }; /** * struct teth_bridge_connect_params - Parameters used in teth_bridge_connect() * @ipa_usb_pipe_hdl: IPA to USB pipe handle, returned from ipa_connect() Loading Loading @@ -977,8 +993,7 @@ int a2_mux_get_client_handles(enum a2_mux_logical_channel_id lcid, /* * Tethering bridge (Rmnet / MBIM) */ int teth_bridge_init(ipa_notify_cb *usb_notify_cb_ptr, void **private_data_ptr, enum ipa_client_type client); int teth_bridge_init(struct teth_bridge_init_params *params); int teth_bridge_disconnect(enum ipa_client_type client); Loading Loading @@ -1480,9 +1495,7 @@ static inline int ipa_rm_inactivity_timer_release_resource( /* * Tethering bridge (Rmnetm / MBIM) */ static inline int teth_bridge_init(ipa_notify_cb *usb_notify_cb_ptr, void **private_data_ptr, enum ipa_client_type client) static inline int teth_bridge_init(struct teth_bridge_init_params *params) { return -EPERM; } Loading
arch/arm/mach-msm/include/mach/usb_bam.h +1 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ struct usb_bam_connect_ipa_params { unsigned long data); int (*activity_notify)(void *priv); int (*inactivity_notify)(void *priv); bool skip_ep_cfg; }; /** Loading
drivers/platform/msm/ipa/teth_bridge.c +10 −12 Original line number Diff line number Diff line Loading @@ -2015,10 +2015,8 @@ static void a2_prod_notify_cb(void *notify_cb_data, /** * teth_bridge_init() - Initialize the Tethering bridge driver * @usb_notify_cb_ptr: Callback function which should be used by the caller. * Output parameter. * @private_data_ptr: Data for the callback function. Should be used by the * caller. Output parameter. * @params - in/out params for USB initialization API (please look at struct * definition for more info) * * USB driver gets a pointer to a callback function (usb_notify_cb) and an * associated data. USB driver installs this callback function in the call to Loading @@ -2030,8 +2028,7 @@ static void a2_prod_notify_cb(void *notify_cb_data, * -EINVAL - Bad parameter * Other negative value - Failure */ int teth_bridge_init(ipa_notify_cb *usb_notify_cb_ptr, void **private_data_ptr, enum ipa_client_type client) int teth_bridge_init(struct teth_bridge_init_params *params) { int res = 0; u32 lcid; Loading @@ -2039,7 +2036,7 @@ int teth_bridge_init(ipa_notify_cb *usb_notify_cb_ptr, void **private_data_ptr, TETH_DBG_FUNC_ENTRY(); if (usb_notify_cb_ptr == NULL || private_data_ptr == NULL) { if (!params) { TETH_ERR("Bad parameter\n"); TETH_DBG_FUNC_EXIT(); return -EINVAL; Loading @@ -2047,16 +2044,17 @@ int teth_bridge_init(ipa_notify_cb *usb_notify_cb_ptr, void **private_data_ptr, switch (teth_ctx->ipa_hw_type) { case IPA_HW_v1_1: *usb_notify_cb_ptr = usb_notify_cb; lcid = get_channel_id_from_client_prod(client); *private_data_ptr = (void *)lcid; params->usb_notify_cb = usb_notify_cb; lcid = get_channel_id_from_client_prod(params->client); params->private_data = (void *)lcid; idx = get_ch_info_idx(lcid); TETH_DBG("init private data with lcid=%d\n", lcid); break; case IPA_HW_v2_0: *usb_notify_cb_ptr = NULL; *private_data_ptr = (void *)IPA_DO_NOT_CONFIGURE_THIS_EP; params->usb_notify_cb = NULL; params->private_data = NULL; params->skip_ep_cfg = true; break; default: Loading
drivers/platform/msm/usb_bam.c +3 −1 Original line number Diff line number Diff line Loading @@ -516,6 +516,7 @@ static int connect_pipe_sys2bam_ipa(u8 idx, sys_in_params.desc_fifo_sz = pipe_connect->desc_fifo_size; sys_in_params.priv = ipa_params->priv; sys_in_params.notify = ipa_params->notify; sys_in_params.skip_ep_cfg = ipa_params->skip_ep_cfg; memcpy(&sys_in_params.ipa_ep_cfg, &ipa_params->ipa_ep_cfg, sizeof(struct ipa_ep_cfg)); Loading Loading @@ -578,6 +579,7 @@ static int connect_pipe_bam2bam_ipa(u8 idx, ipa_in_params.data_fifo_sz = pipe_connect->data_fifo_size; ipa_in_params.notify = ipa_params->notify; ipa_in_params.priv = ipa_params->priv; ipa_in_params.skip_ep_cfg = ipa_params->skip_ep_cfg; /* If BAM is using dedicated SPS pipe memory, get it */ Loading Loading @@ -960,7 +962,7 @@ static int usb_bam_disconnect_ipa_cons( return ret; } } else { ret = ipa_teardown_sys_pipe(ipa_params->prod_clnt_hdl); ret = ipa_teardown_sys_pipe(ipa_params->cons_clnt_hdl); if (ret) { pr_err("%s: src pipe disconnection failure\n", __func__); Loading
drivers/usb/gadget/f_qc_ecm.c +4 −0 Original line number Diff line number Diff line Loading @@ -444,6 +444,10 @@ void *ecm_qc_get_ipa_priv(void) return ipa_params.private; } bool ecm_qc_get_skip_ep_config(void) { return ipa_params.skip_ep_cfg; } /*-------------------------------------------------------------------------*/ Loading