summaryrefslogtreecommitdiff
path: root/drivers/net/ipa/ipa_data.h
diff options
context:
space:
mode:
authorAlex Elder <elder@linaro.org>2022-02-01 18:37:36 +0300
committerJakub Kicinski <kuba@kernel.org>2022-02-03 08:13:45 +0300
commited23f02680caabea430a7688e22e9f7bc7b5e714 (patch)
tree725b180d1ce3c24a663ba906c8dd922ec9839fbe /drivers/net/ipa/ipa_data.h
parent52dae93f3bad842c6d585700460a0dea4d70e096 (diff)
downloadlinux-ed23f02680caabea430a7688e22e9f7bc7b5e714.tar.xz
net: ipa: define per-endpoint receive buffer size
Allow RX endpoints to have differing receive buffer sizes. Define the receive buffer size in the configuration data, and use that rather than IPA_RX_BUFFER_SIZE when configuring the endpoint. Add verification in ipa_endpoint_data_valid_one() that the receive buffer specified for AP RX endpoints is both big enough to handle at least one full packet, and not so big in an aggregating endpoint that its size can't be represented when programming the hardware. Move aggr_byte_limit_max() up in "ipa_endpoint.c" so it can be used earlier in the file without a forward-reference. Initially we'll just keep the 8KB receive buffer size already in use for all AP RX endpoints.. Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ipa/ipa_data.h')
-rw-r--r--drivers/net/ipa/ipa_data.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ipa/ipa_data.h b/drivers/net/ipa/ipa_data.h
index 6d329e9ce5d2..dbbeecf6df29 100644
--- a/drivers/net/ipa/ipa_data.h
+++ b/drivers/net/ipa/ipa_data.h
@@ -112,6 +112,7 @@ struct ipa_endpoint_tx_data {
/**
* struct ipa_endpoint_rx_data - configuration data for RX endpoints
+ * @buffer_size: requested receive buffer size (bytes)
* @pad_align: power-of-2 boundary to which packet payload is aligned
* @aggr_close_eof: whether aggregation closes on end-of-frame
*
@@ -125,6 +126,7 @@ struct ipa_endpoint_tx_data {
* a "frame" consisting of several transfers has ended.
*/
struct ipa_endpoint_rx_data {
+ u32 buffer_size;
u32 pad_align;
bool aggr_close_eof;
};