net: ipa: FLAVOR_0 register doesn't exist until IPA v3.5
The FLAVOR_0 version first appears in IPA v3.5, so avoid attempting to read it for versions prior to that. This register contains a concise definition of the number and direction of endpoints supported by the hardware, and without it we can't verify endpoint configuration in ipa_endpoint_config(). In this case, just indicate that any endpoint number is available for use. Originally proposed by AngeloGioacchino Del Regno. Link: https://lore.kernel.org/netdev/20210211175015.200772-3-angelogioacchino.delregno@somainline.org Signed-off-by: Alex Elder <elder@linaro.org> Acked-by: AngeloGioacchino Del Regno Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3833d0abd2
commit
110971d1ee
@ -1731,6 +1731,21 @@ int ipa_endpoint_config(struct ipa *ipa)
|
||||
u32 max;
|
||||
u32 val;
|
||||
|
||||
/* Prior to IPAv3.5, the FLAVOR_0 register was not supported.
|
||||
* Furthermore, the endpoints were not grouped such that TX
|
||||
* endpoint numbers started with 0 and RX endpoints had numbers
|
||||
* higher than all TX endpoints, so we can't do the simple
|
||||
* direction check used for newer hardware below.
|
||||
*
|
||||
* For hardware that doesn't support the FLAVOR_0 register,
|
||||
* just set the available mask to support any endpoint, and
|
||||
* assume the configuration is valid.
|
||||
*/
|
||||
if (ipa->version < IPA_VERSION_3_5) {
|
||||
ipa->available = ~0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Find out about the endpoints supplied by the hardware, and ensure
|
||||
* the highest one doesn't exceed the number we support.
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user