Loading drivers/platform/msm/ipa/ipa_v3/ipa_flt.c +4 −1 Original line number Diff line number Diff line /* Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. /* Copyright (c) 2012-2020, 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 @@ -229,6 +229,9 @@ static int ipa_translate_flt_tbl_to_hw_fmt(enum ipa_ip_type ip, /* only body (no header) */ tbl_mem.size = tbl->sz[rlt] - ipahal_get_hw_tbl_hdr_width(); /* Add prefetech buf size. */ tbl_mem.size += ipahal_get_hw_prefetch_buf_size(); if (ipahal_fltrt_allocate_hw_sys_tbl(&tbl_mem)) { IPAERR("fail to alloc sys tbl of size %d\n", tbl_mem.size); Loading drivers/platform/msm/ipa/ipa_v3/ipa_rt.c +4 −1 Original line number Diff line number Diff line /* Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. /* Copyright (c) 2012-2020, 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 @@ -174,6 +174,9 @@ static int ipa_translate_rt_tbl_to_hw_fmt(enum ipa_ip_type ip, /* only body (no header) */ tbl_mem.size = tbl->sz[rlt] - ipahal_get_hw_tbl_hdr_width(); /* Add prefetech buf size. */ tbl_mem.size += ipahal_get_hw_prefetch_buf_size(); if (ipahal_fltrt_allocate_hw_sys_tbl(&tbl_mem)) { IPAERR_RL("fail to alloc sys tbl of size %d\n", tbl_mem.size); Loading drivers/platform/msm/ipa/ipa_v3/ipahal/ipahal_fltrt.c +12 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ * @flt_parse_hw_rule: Parse flt rule read from H/W * @eq_bitfield: Array of the bit fields of the support equations. * 0xFF means the equation is not supported * @prefetech_buf_size: Prefetch buf size; */ struct ipahal_fltrt_obj { bool support_hash; Loading Loading @@ -80,6 +81,7 @@ struct ipahal_fltrt_obj { int (*rt_parse_hw_rule)(u8 *addr, struct ipahal_rt_rule_entry *rule); int (*flt_parse_hw_rule)(u8 *addr, struct ipahal_flt_rule_entry *rule); u8 eq_bitfield[IPA_EQ_MAX]; u32 prefetech_buf_size; }; Loading Loading @@ -663,6 +665,7 @@ static struct ipahal_fltrt_obj ipahal_fltrt_objs[IPA_HW_MAX] = { [IPA_IS_FRAG] = 15, [IPA_IS_PURE_ACK] = 0xFF, }, IPA3_0_HW_RULE_PREFETCH_BUF_SIZE, }, /* IPAv4 */ Loading Loading @@ -708,6 +711,7 @@ static struct ipahal_fltrt_obj ipahal_fltrt_objs[IPA_HW_MAX] = { [IPA_IS_FRAG] = 15, [IPA_IS_PURE_ACK] = 0xFF, }, IPA3_0_HW_RULE_PREFETCH_BUF_SIZE, }, /* IPAv4.2 */ Loading Loading @@ -753,6 +757,7 @@ static struct ipahal_fltrt_obj ipahal_fltrt_objs[IPA_HW_MAX] = { [IPA_IS_FRAG] = 15, [IPA_IS_PURE_ACK] = 0xFF, }, IPA3_0_HW_RULE_PREFETCH_BUF_SIZE, }, /* IPAv4.5 */ Loading Loading @@ -798,6 +803,7 @@ static struct ipahal_fltrt_obj ipahal_fltrt_objs[IPA_HW_MAX] = { [IPA_IS_FRAG] = 15, [IPA_IS_PURE_ACK] = 0, }, IPA3_0_HW_RULE_PREFETCH_BUF_SIZE, }, }; Loading Loading @@ -3918,6 +3924,12 @@ u32 ipahal_get_lcl_tbl_addr_alignment(void) return ipahal_fltrt_objs[ipahal_ctx->hw_type].lcladdr_alignment; } /* Get the H/W (flt/rt) prefetch buf size */ u32 ipahal_get_hw_prefetch_buf_size(void) { return ipahal_fltrt_objs[ipahal_ctx->hw_type].prefetech_buf_size; } /* * Rule priority is used to distinguish rules order * at the integrated table consisting from hashable and Loading drivers/platform/msm/ipa/ipa_v3/ipahal/ipahal_fltrt.h +4 −1 Original line number Diff line number Diff line /* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2016-2018, 2020 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 @@ -147,6 +147,9 @@ u32 ipahal_get_hw_tbl_hdr_width(void); */ u32 ipahal_get_lcl_tbl_addr_alignment(void); /* Get the H/W (flt/rt) prefetch buf size */ u32 ipahal_get_hw_prefetch_buf_size(void); /* * Rule priority is used to distinguish rules order * at the integrated table consisting from hashable and Loading drivers/platform/msm/ipa/ipa_v3/ipahal/ipahal_fltrt_i.h +2 −1 Original line number Diff line number Diff line /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2012-2018, 2020 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 @@ -51,6 +51,7 @@ enum ipa_fltrt_equations { #define IPA3_0_HW_TBL_ADDR_MASK (127) #define IPA3_0_HW_RULE_BUF_SIZE (256) #define IPA3_0_HW_RULE_START_ALIGNMENT (7) #define IPA3_0_HW_RULE_PREFETCH_BUF_SIZE (128) /* Loading Loading
drivers/platform/msm/ipa/ipa_v3/ipa_flt.c +4 −1 Original line number Diff line number Diff line /* Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. /* Copyright (c) 2012-2020, 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 @@ -229,6 +229,9 @@ static int ipa_translate_flt_tbl_to_hw_fmt(enum ipa_ip_type ip, /* only body (no header) */ tbl_mem.size = tbl->sz[rlt] - ipahal_get_hw_tbl_hdr_width(); /* Add prefetech buf size. */ tbl_mem.size += ipahal_get_hw_prefetch_buf_size(); if (ipahal_fltrt_allocate_hw_sys_tbl(&tbl_mem)) { IPAERR("fail to alloc sys tbl of size %d\n", tbl_mem.size); Loading
drivers/platform/msm/ipa/ipa_v3/ipa_rt.c +4 −1 Original line number Diff line number Diff line /* Copyright (c) 2012-2019, The Linux Foundation. All rights reserved. /* Copyright (c) 2012-2020, 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 @@ -174,6 +174,9 @@ static int ipa_translate_rt_tbl_to_hw_fmt(enum ipa_ip_type ip, /* only body (no header) */ tbl_mem.size = tbl->sz[rlt] - ipahal_get_hw_tbl_hdr_width(); /* Add prefetech buf size. */ tbl_mem.size += ipahal_get_hw_prefetch_buf_size(); if (ipahal_fltrt_allocate_hw_sys_tbl(&tbl_mem)) { IPAERR_RL("fail to alloc sys tbl of size %d\n", tbl_mem.size); Loading
drivers/platform/msm/ipa/ipa_v3/ipahal/ipahal_fltrt.c +12 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ * @flt_parse_hw_rule: Parse flt rule read from H/W * @eq_bitfield: Array of the bit fields of the support equations. * 0xFF means the equation is not supported * @prefetech_buf_size: Prefetch buf size; */ struct ipahal_fltrt_obj { bool support_hash; Loading Loading @@ -80,6 +81,7 @@ struct ipahal_fltrt_obj { int (*rt_parse_hw_rule)(u8 *addr, struct ipahal_rt_rule_entry *rule); int (*flt_parse_hw_rule)(u8 *addr, struct ipahal_flt_rule_entry *rule); u8 eq_bitfield[IPA_EQ_MAX]; u32 prefetech_buf_size; }; Loading Loading @@ -663,6 +665,7 @@ static struct ipahal_fltrt_obj ipahal_fltrt_objs[IPA_HW_MAX] = { [IPA_IS_FRAG] = 15, [IPA_IS_PURE_ACK] = 0xFF, }, IPA3_0_HW_RULE_PREFETCH_BUF_SIZE, }, /* IPAv4 */ Loading Loading @@ -708,6 +711,7 @@ static struct ipahal_fltrt_obj ipahal_fltrt_objs[IPA_HW_MAX] = { [IPA_IS_FRAG] = 15, [IPA_IS_PURE_ACK] = 0xFF, }, IPA3_0_HW_RULE_PREFETCH_BUF_SIZE, }, /* IPAv4.2 */ Loading Loading @@ -753,6 +757,7 @@ static struct ipahal_fltrt_obj ipahal_fltrt_objs[IPA_HW_MAX] = { [IPA_IS_FRAG] = 15, [IPA_IS_PURE_ACK] = 0xFF, }, IPA3_0_HW_RULE_PREFETCH_BUF_SIZE, }, /* IPAv4.5 */ Loading Loading @@ -798,6 +803,7 @@ static struct ipahal_fltrt_obj ipahal_fltrt_objs[IPA_HW_MAX] = { [IPA_IS_FRAG] = 15, [IPA_IS_PURE_ACK] = 0, }, IPA3_0_HW_RULE_PREFETCH_BUF_SIZE, }, }; Loading Loading @@ -3918,6 +3924,12 @@ u32 ipahal_get_lcl_tbl_addr_alignment(void) return ipahal_fltrt_objs[ipahal_ctx->hw_type].lcladdr_alignment; } /* Get the H/W (flt/rt) prefetch buf size */ u32 ipahal_get_hw_prefetch_buf_size(void) { return ipahal_fltrt_objs[ipahal_ctx->hw_type].prefetech_buf_size; } /* * Rule priority is used to distinguish rules order * at the integrated table consisting from hashable and Loading
drivers/platform/msm/ipa/ipa_v3/ipahal/ipahal_fltrt.h +4 −1 Original line number Diff line number Diff line /* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2016-2018, 2020 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 @@ -147,6 +147,9 @@ u32 ipahal_get_hw_tbl_hdr_width(void); */ u32 ipahal_get_lcl_tbl_addr_alignment(void); /* Get the H/W (flt/rt) prefetch buf size */ u32 ipahal_get_hw_prefetch_buf_size(void); /* * Rule priority is used to distinguish rules order * at the integrated table consisting from hashable and Loading
drivers/platform/msm/ipa/ipa_v3/ipahal/ipahal_fltrt_i.h +2 −1 Original line number Diff line number Diff line /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. /* Copyright (c) 2012-2018, 2020 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 @@ -51,6 +51,7 @@ enum ipa_fltrt_equations { #define IPA3_0_HW_TBL_ADDR_MASK (127) #define IPA3_0_HW_RULE_BUF_SIZE (256) #define IPA3_0_HW_RULE_START_ALIGNMENT (7) #define IPA3_0_HW_RULE_PREFETCH_BUF_SIZE (128) /* Loading