Loading drivers/platform/msm/Kconfig +24 −2 Original line number Diff line number Diff line Loading @@ -87,6 +87,28 @@ config IPA3 Kernel and user-space processes can call the IPA driver to configure IPA core. config IPA tristate "IPA support" depends on SPS && NET help This driver supports the Internet Packet Accelerator (IPA3) core. IPA is a programmable protocol processor HW block. It is designed to support generic HW processing of UL/DL IP packets for various use cases independent of radio technology. The driver support client connection and configuration for the IPA core. Kernel and user-space processes can call the IPA driver to configure IPA core. config RMNET_IPA tristate "IPA RMNET WWAN Network Device" depends on IPA && QCOM_QMI_HELPERS help This WWAN Network Driver implements network stack class device. It supports Embedded data transfer from A7 to Q6. Configures IPA HW for RmNet Data Driver and also exchange of QMI messages between A7 and Q6 IPA-driver. config IPA_DEBUG bool "IPA DEBUG for non-perf build" depends on IPA3 Loading Loading @@ -117,7 +139,7 @@ config RMNET_IPA3 config ECM_IPA tristate "STD ECM LAN Driver support" depends on IPA3 depends on IPA || IPA3 help Enables LAN between applications processor and a tethered host using the STD ECM protocol. Loading @@ -126,7 +148,7 @@ config ECM_IPA config RNDIS_IPA tristate "RNDIS_IPA Network Interface Driver support" depends on IPA3 depends on IPA || IPA3 help Enables LAN between applications processor and a tethered host using the RNDIS protocol. Loading drivers/platform/msm/ipa/ipa_api.c +5 −1 Original line number Diff line number Diff line Loading @@ -335,7 +335,7 @@ u8 *ipa_pad_to_32(u8 *dest) return dest; } i = (long)dest & 0x7; i = (long)dest & 0x3; if (i) for (j = 0; j < (4 - i); j++) Loading Loading @@ -3187,6 +3187,10 @@ static int ipa_generic_plat_drv_probe(struct platform_device *pdev_p) /* call probe based on IPA HW version */ switch (ipa_api_hw_type) { case IPA_HW_v2_6L: result = ipa_plat_drv_probe(pdev_p, ipa_api_ctrl, ipa_plat_drv_match); break; case IPA_HW_v3_0: case IPA_HW_v3_1: case IPA_HW_v3_5: Loading drivers/platform/msm/ipa/ipa_api.h +20 −1 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (c) 2015-2019, The Linux Foundation. All rights reserved. * Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. */ #include <linux/ipa_mhi.h> Loading @@ -12,6 +12,12 @@ #define _IPA_API_H_ struct ipa_api_controller { int (*ipa_connect)(const struct ipa_connect_params *in, struct ipa_sps_params *sps, u32 *clnt_hdl); int (*ipa_disconnect)(u32 clnt_hdl); int (*ipa_reset_endpoint)(u32 clnt_hdl); int (*ipa_clear_endpoint_delay)(u32 clnt_hdl); Loading Loading @@ -484,6 +490,19 @@ struct ipa_api_controller { int (*ipa_get_prot_id)(enum ipa_client_type client); }; #ifdef CONFIG_IPA int ipa_plat_drv_probe(struct platform_device *pdev_p, struct ipa_api_controller *api_ctrl, const struct of_device_id *pdrv_match); #else static inline int ipa_plat_drv_probe(struct platform_device *pdev_p, struct ipa_api_controller *api_ctrl, const struct of_device_id *pdrv_match) { return -ENODEV; } #endif /* (CONFIG_IPA) */ #ifdef CONFIG_IPA3 int ipa3_plat_drv_probe(struct platform_device *pdev_p, struct ipa_api_controller *api_ctrl, Loading drivers/platform/msm/ipa/ipa_common_i.h +1 −1 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2020, The Linux Foundation. All rights reserved. */ #include <linux/ipa_mhi.h> Loading drivers/platform/msm/ipa/ipa_v2/ipa.c +130 −122 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
drivers/platform/msm/Kconfig +24 −2 Original line number Diff line number Diff line Loading @@ -87,6 +87,28 @@ config IPA3 Kernel and user-space processes can call the IPA driver to configure IPA core. config IPA tristate "IPA support" depends on SPS && NET help This driver supports the Internet Packet Accelerator (IPA3) core. IPA is a programmable protocol processor HW block. It is designed to support generic HW processing of UL/DL IP packets for various use cases independent of radio technology. The driver support client connection and configuration for the IPA core. Kernel and user-space processes can call the IPA driver to configure IPA core. config RMNET_IPA tristate "IPA RMNET WWAN Network Device" depends on IPA && QCOM_QMI_HELPERS help This WWAN Network Driver implements network stack class device. It supports Embedded data transfer from A7 to Q6. Configures IPA HW for RmNet Data Driver and also exchange of QMI messages between A7 and Q6 IPA-driver. config IPA_DEBUG bool "IPA DEBUG for non-perf build" depends on IPA3 Loading Loading @@ -117,7 +139,7 @@ config RMNET_IPA3 config ECM_IPA tristate "STD ECM LAN Driver support" depends on IPA3 depends on IPA || IPA3 help Enables LAN between applications processor and a tethered host using the STD ECM protocol. Loading @@ -126,7 +148,7 @@ config ECM_IPA config RNDIS_IPA tristate "RNDIS_IPA Network Interface Driver support" depends on IPA3 depends on IPA || IPA3 help Enables LAN between applications processor and a tethered host using the RNDIS protocol. Loading
drivers/platform/msm/ipa/ipa_api.c +5 −1 Original line number Diff line number Diff line Loading @@ -335,7 +335,7 @@ u8 *ipa_pad_to_32(u8 *dest) return dest; } i = (long)dest & 0x7; i = (long)dest & 0x3; if (i) for (j = 0; j < (4 - i); j++) Loading Loading @@ -3187,6 +3187,10 @@ static int ipa_generic_plat_drv_probe(struct platform_device *pdev_p) /* call probe based on IPA HW version */ switch (ipa_api_hw_type) { case IPA_HW_v2_6L: result = ipa_plat_drv_probe(pdev_p, ipa_api_ctrl, ipa_plat_drv_match); break; case IPA_HW_v3_0: case IPA_HW_v3_1: case IPA_HW_v3_5: Loading
drivers/platform/msm/ipa/ipa_api.h +20 −1 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (c) 2015-2019, The Linux Foundation. All rights reserved. * Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. */ #include <linux/ipa_mhi.h> Loading @@ -12,6 +12,12 @@ #define _IPA_API_H_ struct ipa_api_controller { int (*ipa_connect)(const struct ipa_connect_params *in, struct ipa_sps_params *sps, u32 *clnt_hdl); int (*ipa_disconnect)(u32 clnt_hdl); int (*ipa_reset_endpoint)(u32 clnt_hdl); int (*ipa_clear_endpoint_delay)(u32 clnt_hdl); Loading Loading @@ -484,6 +490,19 @@ struct ipa_api_controller { int (*ipa_get_prot_id)(enum ipa_client_type client); }; #ifdef CONFIG_IPA int ipa_plat_drv_probe(struct platform_device *pdev_p, struct ipa_api_controller *api_ctrl, const struct of_device_id *pdrv_match); #else static inline int ipa_plat_drv_probe(struct platform_device *pdev_p, struct ipa_api_controller *api_ctrl, const struct of_device_id *pdrv_match) { return -ENODEV; } #endif /* (CONFIG_IPA) */ #ifdef CONFIG_IPA3 int ipa3_plat_drv_probe(struct platform_device *pdev_p, struct ipa_api_controller *api_ctrl, Loading
drivers/platform/msm/ipa/ipa_common_i.h +1 −1 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2020, The Linux Foundation. All rights reserved. */ #include <linux/ipa_mhi.h> Loading
drivers/platform/msm/ipa/ipa_v2/ipa.c +130 −122 File changed.Preview size limit exceeded, changes collapsed. Show changes