diff options
author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2020-09-30 01:27:26 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-09-29 18:26:24 -0700 |
commit | 2096805497e2bd21df3c26bd48c43ff0ce954316 (patch) | |
tree | e3e5e653e705ff763c1a8df0dc85f5892f55832b /include/soc/mscc/ocelot_vcap.h | |
parent | e3aea296d86f0f2166f4ddc5e1325217f847e722 (diff) | |
download | linux-stable-2096805497e2bd21df3c26bd48c43ff0ce954316.tar.gz linux-stable-2096805497e2bd21df3c26bd48c43ff0ce954316.tar.bz2 linux-stable-2096805497e2bd21df3c26bd48c43ff0ce954316.zip |
net: mscc: ocelot: automatically detect VCAP constants
The numbers in struct vcap_props are not intuitive to derive, because
they are not a straightforward copy-and-paste from the reference manual
but instead rely on a fairly detailed level of understanding of the
layout of an entry in the TCAM and in the action RAM. For this reason,
bugs are very easy to introduce here.
Ease the work of hardware porters and read from hardware the constants
that were exported for this particular purpose. Note that this implies
that struct vcap_props can no longer be const.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/soc/mscc/ocelot_vcap.h')
-rw-r--r-- | include/soc/mscc/ocelot_vcap.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/soc/mscc/ocelot_vcap.h b/include/soc/mscc/ocelot_vcap.h index 707e609ec919..96300adf3648 100644 --- a/include/soc/mscc/ocelot_vcap.h +++ b/include/soc/mscc/ocelot_vcap.h @@ -17,8 +17,11 @@ enum { VCAP_ES0, VCAP_IS1, VCAP_IS2, + __VCAP_COUNT, }; +#define OCELOT_NUM_VCAP_BLOCKS __VCAP_COUNT + struct vcap_props { u16 tg_width; /* Type-group width (in bits) */ u16 sw_count; /* Sub word count */ |