Message ID | 20210211175015.200772-3-angelogioacchino.delregno@somainline.org (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | Add support for IPA v3.1, GSI v1.0, MSM8998 IPA | expand |
On 2/11/21 11:50 AM, AngeloGioacchino Del Regno wrote: > On IPAv3.1 there is no such FLAVOR_0 register so it is impossible > to read tx/rx channel masks and we have to rely on the correctness > on the provided configuration. This works, and is simple. I think I would rather populate the available mask here with a mask containing the actual version-specific available endpoints. On the other hand, looking at the downstream code, it looks like almost any of these endpoints could be used. So, while I don't know for sure the all-1's value here is *correct*, it's more of a validation check anyway, so it's probably fine -Alex > Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org> > --- > drivers/net/ipa/ipa_endpoint.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/net/ipa/ipa_endpoint.c b/drivers/net/ipa/ipa_endpoint.c > index 06d8aa34276e..10c477e1bb90 100644 > --- a/drivers/net/ipa/ipa_endpoint.c > +++ b/drivers/net/ipa/ipa_endpoint.c > @@ -1659,6 +1659,15 @@ int ipa_endpoint_config(struct ipa *ipa) > u32 max; > u32 val; > > + /* Some IPA versions don't provide a FLAVOR register and we cannot > + * check the rx/tx masks hence we have to rely on the correctness > + * of the provided configuration. > + */ > + if (ipa->version == IPA_VERSION_3_1) { > + ipa->available = U32_MAX; > + return 0; > + } > + > /* Find out about the endpoints supplied by the hardware, and ensure > * the highest one doesn't exceed the number we support. > */ >
On 2/11/21 11:50 AM, AngeloGioacchino Del Regno wrote: > On IPAv3.1 there is no such FLAVOR_0 register so it is impossible > to read tx/rx channel masks and we have to rely on the correctness > on the provided configuration. > > Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org> What you do here is a very simple solution to the problem that the FLAVOR_0 register is not available prior to IPA v3.5. I wanted to try to do something that might allow the configured endpoints to be checked, but for IPA v3.0 and IPA v3.1 they just aren't laid out the same way, so it's not so simple. I will post a patch that does essentially the same thing you do, but which includes a little more complete explanation in comments. It will credit you for the suggestion and provide a link to this original patch. -Alex > --- > drivers/net/ipa/ipa_endpoint.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/net/ipa/ipa_endpoint.c b/drivers/net/ipa/ipa_endpoint.c > index 06d8aa34276e..10c477e1bb90 100644 > --- a/drivers/net/ipa/ipa_endpoint.c > +++ b/drivers/net/ipa/ipa_endpoint.c > @@ -1659,6 +1659,15 @@ int ipa_endpoint_config(struct ipa *ipa) > u32 max; > u32 val; > > + /* Some IPA versions don't provide a FLAVOR register and we cannot > + * check the rx/tx masks hence we have to rely on the correctness > + * of the provided configuration. > + */ > + if (ipa->version == IPA_VERSION_3_1) { > + ipa->available = U32_MAX; > + return 0; > + } > + > /* Find out about the endpoints supplied by the hardware, and ensure > * the highest one doesn't exceed the number we support. > */ >
diff --git a/drivers/net/ipa/ipa_endpoint.c b/drivers/net/ipa/ipa_endpoint.c index 06d8aa34276e..10c477e1bb90 100644 --- a/drivers/net/ipa/ipa_endpoint.c +++ b/drivers/net/ipa/ipa_endpoint.c @@ -1659,6 +1659,15 @@ int ipa_endpoint_config(struct ipa *ipa) u32 max; u32 val; + /* Some IPA versions don't provide a FLAVOR register and we cannot + * check the rx/tx masks hence we have to rely on the correctness + * of the provided configuration. + */ + if (ipa->version == IPA_VERSION_3_1) { + ipa->available = U32_MAX; + return 0; + } + /* Find out about the endpoints supplied by the hardware, and ensure * the highest one doesn't exceed the number we support. */
On IPAv3.1 there is no such FLAVOR_0 register so it is impossible to read tx/rx channel masks and we have to rely on the correctness on the provided configuration. Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org> --- drivers/net/ipa/ipa_endpoint.c | 9 +++++++++ 1 file changed, 9 insertions(+)