Loading drivers/platform/msm/ipa/ipa_api.c +12 −10 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0 /* * Copyright (c) 2015-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2015-2019, The Linux Foundation. All rights reserved. */ #include <linux/ipa.h> Loading Loading @@ -119,9 +119,9 @@ const char *ipa_clients_strings[IPA_CLIENT_MAX] = { __stringify(IPA_CLIENT_WLAN1_CONS), __stringify(IPA_CLIENT_A5_WLAN_AMPDU_PROD), __stringify(IPA_CLIENT_WLAN2_CONS), __stringify(RESERVERD_PROD_14), __stringify(RESERVED_PROD_14), __stringify(IPA_CLIENT_WLAN3_CONS), __stringify(RESERVERD_PROD_16), __stringify(RESERVED_PROD_16), __stringify(IPA_CLIENT_WLAN4_CONS), __stringify(IPA_CLIENT_USB_PROD), __stringify(IPA_CLIENT_USB_CONS), Loading @@ -145,7 +145,7 @@ const char *ipa_clients_strings[IPA_CLIENT_MAX] = { __stringify(IPA_CLIENT_A5_LAN_WAN_CONS), __stringify(IPA_CLIENT_ODU_PROD), __stringify(IPA_CLIENT_ODU_EMB_CONS), __stringify(RESERVERD_PROD_40), __stringify(RESERVED_PROD_40), __stringify(IPA_CLIENT_ODU_TETH_CONS), __stringify(IPA_CLIENT_MHI_PROD), __stringify(IPA_CLIENT_MHI_CONS), Loading @@ -165,7 +165,7 @@ const char *ipa_clients_strings[IPA_CLIENT_MAX] = { __stringify(IPA_CLIENT_Q6_DECOMP_CONS), __stringify(IPA_CLIENT_Q6_DECOMP2_PROD), __stringify(IPA_CLIENT_Q6_DECOMP2_CONS), __stringify(RESERVERD_PROD_60), __stringify(RESERVED_PROD_60), __stringify(IPA_CLIENT_Q6_LTE_WIFI_AGGR_CONS), __stringify(IPA_CLIENT_TEST_PROD), __stringify(IPA_CLIENT_TEST_CONS), Loading @@ -177,20 +177,22 @@ const char *ipa_clients_strings[IPA_CLIENT_MAX] = { __stringify(IPA_CLIENT_TEST3_CONS), __stringify(IPA_CLIENT_TEST4_PROD), __stringify(IPA_CLIENT_TEST4_CONS), __stringify(RESERVERD_PROD_72), __stringify(RESERVED_PROD_72), __stringify(IPA_CLIENT_DUMMY_CONS), __stringify(IPA_CLIENT_Q6_DL_NLO_DATA_PROD), __stringify(IPA_CLIENT_Q6_UL_NLO_DATA_CONS), __stringify(RESERVERD_PROD_76), __stringify(RESERVED_PROD_76), __stringify(IPA_CLIENT_Q6_UL_NLO_ACK_CONS), __stringify(RESERVERD_PROD_78), __stringify(RESERVED_PROD_78), __stringify(IPA_CLIENT_Q6_QBAP_STATUS_CONS), __stringify(RESERVERD_PROD_80), __stringify(RESERVED_PROD_80), __stringify(IPA_CLIENT_MHI_DPL_CONS), __stringify(RESERVERD_PROD_82), __stringify(RESERVED_PROD_82), __stringify(IPA_CLIENT_ODL_DPL_CONS), __stringify(IPA_CLIENT_Q6_AUDIO_DMA_MHI_PROD), __stringify(IPA_CLIENT_Q6_AUDIO_DMA_MHI_CONS), __stringify(RESERVED_PROD_86), __stringify(IPA_CLIENT_APPS_WAN_COAL_CONS), }; /** Loading drivers/platform/msm/ipa/ipa_v3/ipa_dp.c +485 −179 File changed.Preview size limit exceeded, changes collapsed. Show changes drivers/platform/msm/ipa/ipa_v3/ipa_i.h +2 −3 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. */ #ifndef _IPA3_I_H_ Loading Loading @@ -877,7 +877,7 @@ struct ipa3_sys_context { struct delayed_work replenish_rx_work; struct work_struct repl_work; void (*repl_hdlr)(struct ipa3_sys_context *sys); struct ipa3_repl_ctx repl; struct ipa3_repl_ctx *repl; u32 pkt_sent; struct napi_struct *napi_obj; Loading Loading @@ -2623,7 +2623,6 @@ int ipa3_register_ipa_ready_cb(void (*ipa_ready_cb)(void *), void *user_data); const char *ipa_hw_error_str(enum ipa3_hw_errors err_type); int ipa_gsi_ch20_wa(void); int ipa3_rx_poll(u32 clnt_hdl, int budget); void ipa3_recycle_wan_skb(struct sk_buff *skb); int ipa3_smmu_map_peer_reg(phys_addr_t phys_addr, bool map, enum ipa_smmu_cb_type cb_type); int ipa3_smmu_map_peer_buff(u64 iova, u32 size, bool map, struct sg_table *sgt, Loading drivers/platform/msm/ipa/ipa_v3/ipa_rt.c +11 −1 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0 /* * Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. */ #include <linux/bitops.h> Loading Loading @@ -962,6 +962,11 @@ static int __ipa_rt_validate_hndls(const struct ipa_rt_rule *rule, } } if (ipa3_ctx->ipa_hw_type < IPA_HW_v4_5 && rule->coalesce) { IPAERR_RL("rt rule should not allow coalescing\n"); return -EPERM; } return 0; } Loading Loading @@ -997,6 +1002,11 @@ static int __ipa_create_rt_entry(struct ipa3_rt_entry **entry, (*(entry))->rule_id = id; (*(entry))->ipacm_installed = user; if ((*(entry))->rule.coalesce && (*(entry))->rule.dst == IPA_CLIENT_APPS_WAN_CONS && ipa3_get_ep_mapping(IPA_CLIENT_APPS_WAN_COAL_CONS) != -1) (*(entry))->rule.dst = IPA_CLIENT_APPS_WAN_COAL_CONS; return 0; alloc_rule_id_fail: Loading drivers/platform/msm/ipa/ipa_v3/ipa_utils.c +14 −2 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0 /* * Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. */ #include <net/ip.h> Loading Loading @@ -2181,6 +2181,12 @@ static const struct ipa_ep_configuration ipa3_ep_mapping IPA_DPS_HPS_SEQ_TYPE_INVALID, QMB_MASTER_SELECT_DDR, { 16, 10, 9, 9, IPA_EE_AP, GSI_ESCAPE_BUF_ONLY, 0 } }, [IPA_4_5][IPA_CLIENT_APPS_WAN_COAL_CONS] = { true, IPA_v4_5_GROUP_UL_DL_DST, false, IPA_DPS_HPS_SEQ_TYPE_INVALID, QMB_MASTER_SELECT_DDR, { 13, 4, 8, 11, IPA_EE_AP, GSI_SMART_PRE_FETCH, 4 } }, [IPA_4_5][IPA_CLIENT_APPS_WAN_CONS] = { true, IPA_v4_5_GROUP_UL_DL_DST, false, Loading Loading @@ -4547,6 +4553,8 @@ const char *ipa3_get_aggr_type_str(enum ipa_aggr_type aggr_type) return "GENERIC"; case (IPA_QCMAP): return "QCMAP"; case (IPA_COALESCE): return "COALESCE"; } return "undefined"; } Loading Loading @@ -4689,6 +4697,11 @@ int ipa3_cfg_ep_aggr(u32 clnt_hdl, const struct ipa_ep_cfg_aggr *ep_aggr) res = -EINVAL; goto complete; } if (ipa3_ctx->ipa_hw_type == IPA_HW_v4_5 && ipa3_get_client_mapping(clnt_hdl) == IPA_CLIENT_APPS_WAN_COAL_CONS && ipa3_ctx->ep[clnt_hdl].cfg.aggr.pulse_generator != 0) ipa_assert(); } else { /* * Global aggregation granularity is 0.5msec. Loading Loading @@ -6347,7 +6360,6 @@ int ipa3_bind_api_controller(enum ipa_hw_type ipa_hw_type, api_ctrl->ipa_get_ipc_logbuf = ipa3_get_ipc_logbuf; api_ctrl->ipa_get_ipc_logbuf_low = ipa3_get_ipc_logbuf_low; api_ctrl->ipa_rx_poll = ipa3_rx_poll; api_ctrl->ipa_recycle_wan_skb = ipa3_recycle_wan_skb; api_ctrl->ipa_setup_uc_ntn_pipes = ipa3_setup_uc_ntn_pipes; api_ctrl->ipa_tear_down_uc_offload_pipes = ipa3_tear_down_uc_offload_pipes; Loading Loading
drivers/platform/msm/ipa/ipa_api.c +12 −10 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0 /* * Copyright (c) 2015-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2015-2019, The Linux Foundation. All rights reserved. */ #include <linux/ipa.h> Loading Loading @@ -119,9 +119,9 @@ const char *ipa_clients_strings[IPA_CLIENT_MAX] = { __stringify(IPA_CLIENT_WLAN1_CONS), __stringify(IPA_CLIENT_A5_WLAN_AMPDU_PROD), __stringify(IPA_CLIENT_WLAN2_CONS), __stringify(RESERVERD_PROD_14), __stringify(RESERVED_PROD_14), __stringify(IPA_CLIENT_WLAN3_CONS), __stringify(RESERVERD_PROD_16), __stringify(RESERVED_PROD_16), __stringify(IPA_CLIENT_WLAN4_CONS), __stringify(IPA_CLIENT_USB_PROD), __stringify(IPA_CLIENT_USB_CONS), Loading @@ -145,7 +145,7 @@ const char *ipa_clients_strings[IPA_CLIENT_MAX] = { __stringify(IPA_CLIENT_A5_LAN_WAN_CONS), __stringify(IPA_CLIENT_ODU_PROD), __stringify(IPA_CLIENT_ODU_EMB_CONS), __stringify(RESERVERD_PROD_40), __stringify(RESERVED_PROD_40), __stringify(IPA_CLIENT_ODU_TETH_CONS), __stringify(IPA_CLIENT_MHI_PROD), __stringify(IPA_CLIENT_MHI_CONS), Loading @@ -165,7 +165,7 @@ const char *ipa_clients_strings[IPA_CLIENT_MAX] = { __stringify(IPA_CLIENT_Q6_DECOMP_CONS), __stringify(IPA_CLIENT_Q6_DECOMP2_PROD), __stringify(IPA_CLIENT_Q6_DECOMP2_CONS), __stringify(RESERVERD_PROD_60), __stringify(RESERVED_PROD_60), __stringify(IPA_CLIENT_Q6_LTE_WIFI_AGGR_CONS), __stringify(IPA_CLIENT_TEST_PROD), __stringify(IPA_CLIENT_TEST_CONS), Loading @@ -177,20 +177,22 @@ const char *ipa_clients_strings[IPA_CLIENT_MAX] = { __stringify(IPA_CLIENT_TEST3_CONS), __stringify(IPA_CLIENT_TEST4_PROD), __stringify(IPA_CLIENT_TEST4_CONS), __stringify(RESERVERD_PROD_72), __stringify(RESERVED_PROD_72), __stringify(IPA_CLIENT_DUMMY_CONS), __stringify(IPA_CLIENT_Q6_DL_NLO_DATA_PROD), __stringify(IPA_CLIENT_Q6_UL_NLO_DATA_CONS), __stringify(RESERVERD_PROD_76), __stringify(RESERVED_PROD_76), __stringify(IPA_CLIENT_Q6_UL_NLO_ACK_CONS), __stringify(RESERVERD_PROD_78), __stringify(RESERVED_PROD_78), __stringify(IPA_CLIENT_Q6_QBAP_STATUS_CONS), __stringify(RESERVERD_PROD_80), __stringify(RESERVED_PROD_80), __stringify(IPA_CLIENT_MHI_DPL_CONS), __stringify(RESERVERD_PROD_82), __stringify(RESERVED_PROD_82), __stringify(IPA_CLIENT_ODL_DPL_CONS), __stringify(IPA_CLIENT_Q6_AUDIO_DMA_MHI_PROD), __stringify(IPA_CLIENT_Q6_AUDIO_DMA_MHI_CONS), __stringify(RESERVED_PROD_86), __stringify(IPA_CLIENT_APPS_WAN_COAL_CONS), }; /** Loading
drivers/platform/msm/ipa/ipa_v3/ipa_dp.c +485 −179 File changed.Preview size limit exceeded, changes collapsed. Show changes
drivers/platform/msm/ipa/ipa_v3/ipa_i.h +2 −3 Original line number Diff line number Diff line /* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. */ #ifndef _IPA3_I_H_ Loading Loading @@ -877,7 +877,7 @@ struct ipa3_sys_context { struct delayed_work replenish_rx_work; struct work_struct repl_work; void (*repl_hdlr)(struct ipa3_sys_context *sys); struct ipa3_repl_ctx repl; struct ipa3_repl_ctx *repl; u32 pkt_sent; struct napi_struct *napi_obj; Loading Loading @@ -2623,7 +2623,6 @@ int ipa3_register_ipa_ready_cb(void (*ipa_ready_cb)(void *), void *user_data); const char *ipa_hw_error_str(enum ipa3_hw_errors err_type); int ipa_gsi_ch20_wa(void); int ipa3_rx_poll(u32 clnt_hdl, int budget); void ipa3_recycle_wan_skb(struct sk_buff *skb); int ipa3_smmu_map_peer_reg(phys_addr_t phys_addr, bool map, enum ipa_smmu_cb_type cb_type); int ipa3_smmu_map_peer_buff(u64 iova, u32 size, bool map, struct sg_table *sgt, Loading
drivers/platform/msm/ipa/ipa_v3/ipa_rt.c +11 −1 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0 /* * Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. */ #include <linux/bitops.h> Loading Loading @@ -962,6 +962,11 @@ static int __ipa_rt_validate_hndls(const struct ipa_rt_rule *rule, } } if (ipa3_ctx->ipa_hw_type < IPA_HW_v4_5 && rule->coalesce) { IPAERR_RL("rt rule should not allow coalescing\n"); return -EPERM; } return 0; } Loading Loading @@ -997,6 +1002,11 @@ static int __ipa_create_rt_entry(struct ipa3_rt_entry **entry, (*(entry))->rule_id = id; (*(entry))->ipacm_installed = user; if ((*(entry))->rule.coalesce && (*(entry))->rule.dst == IPA_CLIENT_APPS_WAN_CONS && ipa3_get_ep_mapping(IPA_CLIENT_APPS_WAN_COAL_CONS) != -1) (*(entry))->rule.dst = IPA_CLIENT_APPS_WAN_COAL_CONS; return 0; alloc_rule_id_fail: Loading
drivers/platform/msm/ipa/ipa_v3/ipa_utils.c +14 −2 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0 /* * Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. */ #include <net/ip.h> Loading Loading @@ -2181,6 +2181,12 @@ static const struct ipa_ep_configuration ipa3_ep_mapping IPA_DPS_HPS_SEQ_TYPE_INVALID, QMB_MASTER_SELECT_DDR, { 16, 10, 9, 9, IPA_EE_AP, GSI_ESCAPE_BUF_ONLY, 0 } }, [IPA_4_5][IPA_CLIENT_APPS_WAN_COAL_CONS] = { true, IPA_v4_5_GROUP_UL_DL_DST, false, IPA_DPS_HPS_SEQ_TYPE_INVALID, QMB_MASTER_SELECT_DDR, { 13, 4, 8, 11, IPA_EE_AP, GSI_SMART_PRE_FETCH, 4 } }, [IPA_4_5][IPA_CLIENT_APPS_WAN_CONS] = { true, IPA_v4_5_GROUP_UL_DL_DST, false, Loading Loading @@ -4547,6 +4553,8 @@ const char *ipa3_get_aggr_type_str(enum ipa_aggr_type aggr_type) return "GENERIC"; case (IPA_QCMAP): return "QCMAP"; case (IPA_COALESCE): return "COALESCE"; } return "undefined"; } Loading Loading @@ -4689,6 +4697,11 @@ int ipa3_cfg_ep_aggr(u32 clnt_hdl, const struct ipa_ep_cfg_aggr *ep_aggr) res = -EINVAL; goto complete; } if (ipa3_ctx->ipa_hw_type == IPA_HW_v4_5 && ipa3_get_client_mapping(clnt_hdl) == IPA_CLIENT_APPS_WAN_COAL_CONS && ipa3_ctx->ep[clnt_hdl].cfg.aggr.pulse_generator != 0) ipa_assert(); } else { /* * Global aggregation granularity is 0.5msec. Loading Loading @@ -6347,7 +6360,6 @@ int ipa3_bind_api_controller(enum ipa_hw_type ipa_hw_type, api_ctrl->ipa_get_ipc_logbuf = ipa3_get_ipc_logbuf; api_ctrl->ipa_get_ipc_logbuf_low = ipa3_get_ipc_logbuf_low; api_ctrl->ipa_rx_poll = ipa3_rx_poll; api_ctrl->ipa_recycle_wan_skb = ipa3_recycle_wan_skb; api_ctrl->ipa_setup_uc_ntn_pipes = ipa3_setup_uc_ntn_pipes; api_ctrl->ipa_tear_down_uc_offload_pipes = ipa3_tear_down_uc_offload_pipes; Loading