aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/net/ipa/ipa_data.h
diff options
context:
space:
mode:
authorAlex Elder <elder@linaro.org>2021-03-20 10:57:05 -0500
committerDavid S. Miller <davem@davemloft.net>2021-03-20 18:56:18 -0700
commit8ee5df6598ff3c04f3842c87fa326d7cdbec9dd2 (patch)
tree96c107a32d1e4533d64042100d9584b6007b1137 /drivers/net/ipa/ipa_data.h
parentnet: ipa: implement MAX_READS_BEATS QSB data (diff)
downloadwireguard-linux-8ee5df6598ff3c04f3842c87fa326d7cdbec9dd2.tar.xz
wireguard-linux-8ee5df6598ff3c04f3842c87fa326d7cdbec9dd2.zip
net: ipa: split sequencer type in two
An IPA endpoint has a sequencer that must be configured based on how the endpoint is to be used. Currently the IPA code programs the sequencer type by splitting a value into four 4-bit nibbles. Doing that doesn't really add much value, and regardless, a better way of splitting the sequencer type is into two halves--the lower byte describing how normal packet processing is handled, and the next byte describing information about processing replicas. So split the sequencer type into two sub-parts: the sequencer type and the replication sequencer type. Define the values supported for the "main" sequencer type, and define the values supported for the replication part separately. In addition, the sequencer type names are quite verbose, encoding what the type includes, but also what it *excludes*. Rename the sequencer types in a way that mainly describes the number of passes that a packet takes through the IPA processing pipeline, and how many of those passes end by supplying the processed packet to the microprocessor. The result expands the supported types beyond what is required for now, but simplifies the way these are defined. Signed-off-by: Alex Elder <elder@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ipa/ipa_data.h')
-rw-r--r--drivers/net/ipa/ipa_data.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ipa/ipa_data.h b/drivers/net/ipa/ipa_data.h
index 4162c4722c00..8808941f44af 100644
--- a/drivers/net/ipa/ipa_data.h
+++ b/drivers/net/ipa/ipa_data.h
@@ -154,7 +154,8 @@ struct ipa_endpoint_config_data {
/**
* struct ipa_endpoint_data - IPA endpoint configuration data
* @filter_support: whether endpoint supports filtering
- * @seq_type: hardware sequencer type used for endpoint
+ * @seq_type: primary packet processing sequencer type
+ * @seq_rep_type: sequencer type for replication processing
* @config: hardware configuration (see above)
*
* Not all endpoints support the IPA filtering capability. A filter table
@@ -170,8 +171,9 @@ struct ipa_endpoint_config_data {
*/
struct ipa_endpoint_data {
bool filter_support;
- /* The next two are specified only for AP endpoints */
+ /* The next three are specified only for AP endpoints */
enum ipa_seq_type seq_type;
+ enum ipa_seq_rep_type seq_rep_type;
struct ipa_endpoint_config_data config;
};