The virt local variable in gsi_channel_state() does not have an
__iomem attribute but should. Fix this.
Signed-off-by: Alex Elder
---
drivers/net/ipa/gsi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c
index 14d9a791924bf
When extracting the destination endpoint ID from the status in
ipa_endpoint_status_skip(), u32_get_bits() is used. This happens to
work, but it's wrong: the structure field is only 8 bits wide
instead of 32.
Fix this by using u8_get_bits() to get the destination endpoint ID.
Signed-off-by:
Fix two format specifiers that used %lu for a size_t in "ipa_mem.c".
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_mem.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ipa/ipa_mem.c b/drivers/net/ipa/ipa_mem.c
index 0cc3a3374caa2..f25029b9ec
On 2/1/21 6:02 PM, Amy Parker wrote:
On Mon, Feb 1, 2021 at 3:32 PM Alex Elder wrote:
When extracting the destination endpoint ID from the status in
ipa_endpoint_status_skip(), u32_get_bits() is used. This happens to
work, but it's wrong: the structure field is only 8 bits wide
instead
: ipa: the generic software interface")
Reported-by: Dan Carpenter
Signed-off-by: Alex Elder
---
v2: Added "Fixes" tag.
drivers/net/ipa/gsi.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c
index 34e5f2155d620..b77f5fef7aeca 100644
-
On 2/4/21 9:40 AM, Arnd Bergmann wrote:
From: Arnd Bergmann
Building the remoteproc drivers into the kernel while the qcom_glink
code is in a loadable module results in a link error:
ld.lld: error: undefined symbol: qcom_glink_ssr_notify
referenced by vmlinux.o:(glink_subdev_unprepare)
Add
On 2/4/21 11:16 AM, Arnd Bergmann wrote:
> On Thu, Feb 4, 2021 at 5:16 PM Alex Elder wrote:
>>
>> On 2/4/21 9:40 AM, Arnd Bergmann wrote:
>>> From: Arnd Bergmann
>>>
>>> Building the remoteproc drivers into the kernel while the qcom_glink
>>> c
On 2/4/21 10:53 PM, Jakub Kicinski wrote:
> On Wed, 3 Feb 2021 09:28:50 -0600 Alex Elder wrote:
>> int gsi_channel_suspend(struct gsi *gsi, u32 channel_id, bool stop)
>> {
>> struct gsi_channel *channel = &gsi->channel[channel_id];
>> +int ret;
>
value
encoded as the lower portion of the header length.
The same sort of problem exists in ipa_metadata_offset_encoded(),
so implement the same fix there.
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_reg.h | 22 ++
1 file changed, 14 insertions(+), 8 deletions(-)
diff --
where needed.
Signed-off-by: Alex Elder
---
v2: - Return early to avoid blocks of indented code
drivers/net/ipa/gsi.c | 18 ++
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c
index f0432c965168c..60eb765c53647 100644
in caching the state.
Stop recording a copy of the channel's last known state, and instead
fetch the true state from hardware whenever it's needed. In such
cases, *do* record the state in a local variable, in case an error
message reports it (so the value reported is the value seen).
On 2/24/21 12:23 PM, Jakub Kicinski wrote:
On Wed, 24 Feb 2021 01:32:50 +0530 Sharath Chandra Vurukala wrote:
+/* MAP CSUM headers */
+struct rmnet_map_v5_csum_header {
+#if defined(__LITTLE_ENDIAN_BITFIELD)
+ u8 next_hdr:1;
+ u8 header_type:7;
+ u8 hw_reserved:7;
+ u8
Enable IPA on the SDM845 MTP.
Signed-off-by: Alex Elder
---
arch/arm64/boot/dts/qcom/sdm845-mtp.dts | 5 +
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sdm845-mtp.dts
b/arch/arm64/boot/dts/qcom/sdm845-mtp.dts
index 1372fe8601f5..2f942daeb9d1 100644
--- a/arch
Add IPA-related nodes and definitions to "sc7180.dtsi".
Signed-off-by: Alex Elder
---
arch/arm64/boot/dts/qcom/sc7180.dtsi | 51
1 file changed, 51 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi
b/arch/arm64/boot/dts/qcom/sc7180.
Enable building the Qualcomm IPA driver as a kernel module. To be
useful, the IPA driver also requires RMNet, so enable building that
as a module as well.
Signed-off-by: Alex Elder
---
arch/arm64/configs/defconfig | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/configs
On 5/18/20 6:24 PM, Bjorn Andersson wrote:
modem-init tells the IPA driver that the modem will load the ipa_fws
firmware, but the MTP is assumed to run "LA" firmware where it's the
Linux-side's job to do this.
I didn't see this message until just now, but I remembered that
last night. I just b
Enable IPA on the SDM845 MTP.
Signed-off-by: Alex Elder
---
v2: This device uses the AP--not the modem--for early initialization.
arch/arm64/boot/dts/qcom/sdm845-mtp.dts | 5 +
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sdm845-mtp.dts
b/arch/arm64/boot/dts
riate in some places, I believe it should not be used here.
-Alex
Cc: Alex Elder
Signed-off-by: Luis Chamberlain
---
drivers/net/ipa/ipa_modem.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ipa/ipa_modem.c b/drivers/net/i
On 7/29/20 5:51 AM, Viresh Kumar wrote:
> On 28-07-20, 17:37, Alex Elder wrote:
>> On 7/27/20 1:32 PM, Gustavo A. R. Silva wrote:
>>> Replace the existing /* fall through */ comments and its variants with
>>> the new pseudo-keyword macro fallthrough[1].
>>>
>
On 7/30/20 11:02 AM, Colin Ian King wrote:
> Hi,
>
> Static analysis with Coverity has detected an uninitialized value being
> used in a comparison. The error was detected on a recent change to
> drivers/staging/greybus/audio_topology.c however the issue actually
> dates back to the original comm
On 7/9/20 5:27 AM, Vaibhav Agarwal wrote:
> snd_soc_jack APIs are modified in recent kernel versions. This patch
> updates the codec driver to resolve the compilation errors related to
> jack framework.
Greg has already accepted this series so I won't review this now. But
I still wanted to provid
On 8/2/20 8:14 AM, 王文虎 wrote:
>
>>> Currently the qmi_handle is initialized single threaded and strictly
>>> ordered with the active set to 1. This is pretty simple and safe but
>>> sometimes ineffency. So it is better to allow user to decide whether
>>> a high priority workqueue should be used.
>
On 7/28/20 5:37 PM, Alex Elder wrote:
> On 7/27/20 1:32 PM, Gustavo A. R. Silva wrote:
>> Replace the existing /* fall through */ comments and its variants with
>> the new pseudo-keyword macro fallthrough[1].
>>
>> [1]
>> https://www.kernel.org/doc/html/v5.7/
On 12/21/20 10:01 PM, Rob Herring wrote:
'memory-region' is a common property, so it doesn't need a type ref here.
Acked-by: Alex Elder
Cc: "David S. Miller"
Cc: Jakub Kicinski
Cc: Alex Elder
Cc: net...@vger.kernel.org
Signed-off-by: Rob Herring
---
I
t;net: ipa: use config data for clocking")
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_clock.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ipa/ipa_clock.c b/drivers/net/ipa/ipa_clock.c
index 9dcf16f399b7a..135c393437f12 100644
--- a/drive
succeed even if the completion interrupt did not arrive while it was
enabled.
-Alex
Alex Elder (3):
net: ipa: clear pending interrupts before enabling
net: ipa: use state to determine channel command success
net: ipa: use state to determine event ring
command.
Fixes: b4175f8731f78 ("net: ipa: only enable GSI event control IRQs when
needed")
Signed-off-by: Alex Elder
---
drivers/net/ipa/gsi.c | 12
1 file changed, 12 insertions(+)
diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c
index c4795249719d4..4aee60d62a
command ends via completion interrupt or
timeout, we can consider the command successful if the event ring
has entered the desired state (and a failure if it has not,
regardless of the cause).
Fixes: b4175f8731f78 ("net: ipa: only enable GSI event control IRQs when
needed")
Signed-of
interrupt or
timeout, we can consider the command successful if the channel
has entered the desired state (and a failure if it has not,
regardless of the cause).
Fixes: d6c9e3f506ae8 ("net: ipa: only enable generic command completion IRQ
when needed");
Signed-off-by: Alex Elder
---
drive
certain configurations.
Reported-by: Randy Dunlap
Fixes: 38a4066f593c5 ("net: ipa: support COMPILE_TEST")
Signed-off-by: Alex Elder
---
drivers/net/ipa/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ipa/Kconfig b/drivers/net/ipa/Kconfig
index 10a
ified them.
David/Jakub, please take these all through net-next if they are
acceptable to you, once Rob has acked the binding and DT patches.
Thanks.
-Alex
Alex Elder (4):
net: ipa: remove a remoteproc dependency
dt-bindings: net: remove modem-remotepro
The IPA driver uses the remoteproc SSR notifier now, rather than the
temporary IPA notification system used initially. As a result it no
longer needs a property identifying the modem subsystem DT node.
Use GIC_SPI rather than 0 in the example interrupt definition.
Signed-off-by: Alex Elder
.
Reported-by: Randy Dunlap
Fixes: 30eb3fbee3da7 ("net: ipa: new notification infrastructure")
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa.h | 2 --
drivers/net/ipa/ipa_main.c | 38 ++
2 files changed, 2 insertions(+), 38 deletions(-)
di
The "modem-remoteproc" property is no longer required for the IPA
driver, so get rid of it.
Signed-off-by: Alex Elder
---
arch/arm64/boot/dts/qcom/sdm845.dtsi | 2 --
1 file changed, 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi
b/arch/arm64/boot/dts/qcom/sdm845.
The "modem-remoteproc" property is no longer required for the IPA
driver, so get rid of it.
Signed-off-by: Alex Elder
---
arch/arm64/boot/dts/qcom/sc7180.dtsi | 2 --
1 file changed, 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi
b/arch/arm64/boot/dts/qcom/sc7180.
quot;gsi_" prefix to evt_ring_command() so its name
is consistent with the convention used for GSI channel and generic
commands.
Signed-off-by: Alex Elder
---
drivers/net/ipa/gsi.c | 28 ++--
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/drivers/net/ipa/gsi.
The GSI command timeout is currently 5 seconds, which is much higher
than it should be.
Express the timeout in milliseconds rather than seconds, and reduce
it to 50 milliseconds.
Fixes: 650d1603825d8 ("soc: qcom: ipa: the generic software interface")
Signed-off-by: Alex Elder
---
d
cific.
Fixes: 650d1603825d8 ("soc: qcom: ipa: the generic software interface")
Signed-off-by: Alex Elder
---
drivers/net/ipa/gsi.c | 7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c
index 5c163f9c0ea7b..5b29f7d9d6a
If a GSI stop channel command leaves the channel in STOP_IN_PROC
state, we retry the stop command after a 1-2 millisecond delay.
I have been told that a 3-5 millisecond delay is a better choice.
Fixes: 650d1603825d8 ("soc: qcom: ipa: the generic software interface")
Signed-off-by:
period in the range requested.
Fixes: 650d1603825d8 ("soc: qcom: ipa: the generic software interface")
Signed-off-by: Alex Elder
---
drivers/net/ipa/gsi.c | 5 +++--
drivers/net/ipa/ipa_endpoint.c | 4 ++--
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/net
channels (in addition to RX channels).
-Alex
Alex Elder (6):
net: ipa: a few simple renames
net: ipa: introduce some interrupt helpers
net: ipa: use usleep_range()
net: ipa: change GSI command timeout
net: ipa: change stop channel retry delay
net
function gsi_irq_ev_ctrl_disable() as well.
Because only one event ring at a time is enabled for this interrupt,
we can simply disable the interrupt for *all* channels.
Create a pair of helpers that serve the same purpose for channel
commands.
Signed-off-by: Alex Elder
---
drivers/net/ipa/gsi.c | 94
On 1/18/21 1:58 PM, Jakub Kicinski wrote:
> But it does sound a little too much like aligning with the vendor
> driver for the sake of aligning with the vendor driver. This makes
> the review for someone not familiar with the vendor driver hard,
> and raises questions like "is this really needed
: ipa: the generic software interface")
Signed-off-by: Alex Elder
---
drivers/net/ipa/gsi.c | 11 ++-
drivers/net/ipa/gsi.h | 6 ++
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c
index 14d9a791924bf..7e7629902911e 100644
--
bling the interrupt when stopping.
Without this fix in place we would occasionally see a hang while
stopping channels during suspend.
-Alex
Alex Elder (2):
net: ipa: introduce atomic channel STOPPING flag
net: ipa: re-enable NAPI before enabling inte
.
Fixes: 650d1603825d8 ("soc: qcom: ipa: the generic software interface")
Signed-off-by: Alex Elder
---
drivers/net/ipa/gsi.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c
index 7e7629902911e..9bde6d02b1cd6 100644
"qcom_rproc.h", but those are only exposed if
QCOM_RPROC_COMMON is enabled.
Rearrange the conditional definition so the qcom_ssr_notify_data
structure and qcom_ssr_notify_type enumerated type are defined
whether or not QCOM_RPROC_COMMON is enabled.
Reviewed-by: Bjorn Andersson
Signed-of
".
Reported-by: kernel test robot
Signed-off-by: Alex Elder
---
drivers/net/ipa/gsi_trans.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ipa/gsi_trans.h b/drivers/net/ipa/gsi_trans.h
index 4d4606b5fa951..3a4ab8a94d827 100644
--- a/drivers/net/ipa/gsi_trans.h
+++ b/drivers
Define stub functions for the exposed MDT functions in case
QCOM_MDT_LOADER is not configured. This allows users of these
functions to link correctly for COMPILE_TEST builds without
QCOM_SCM enabled.
Reviewed-by: Bjorn Andersson
Signed-off-by: Alex Elder
---
include/linux/soc/qcom
The Intel kernel test
robot reported that this was a problem for the alpha build.
David/Jakub, please take all four of these patches through the
net-next tree if you find them acceptable.
Thanks.
-Alex
Alex Elder (4):
remoteproc: qcom: expose types for CO
Arrange for the IPA driver to be built when COMPILE_TEST is enabled.
Update the help text to reflect that we support two Qualcomm SoCs.
Suggested-by: Jakub Kicinski
Signed-off-by: Alex Elder
---
drivers/net/ipa/Kconfig | 10 ++
1 file changed, 6 insertions(+), 4 deletions(-)
diff
On 1/7/21 8:38 PM, Jakub Kicinski wrote:
On Thu, 7 Jan 2021 15:43:25 -0600 Alex Elder wrote:
@@ -743,21 +743,21 @@ static void gsi_channel_freeze(struct gsi_channel
*channel)
set_bit(GSI_CHANNEL_FLAG_STOPPING, channel->flags);
smp_mb__after_atomic(); /* Ensure gsi_channel_p
On 1/14/21 5:22 PM, Saeed Mahameed wrote:
On Wed, 2021-01-13 at 11:15 -0600, Alex Elder wrote:
This series implements some updates for the GSI interrupt code,
buliding on some bug fixes implemented last month.
The first two are simple changes made to improve readability and
consistency. The
On 1/14/21 8:08 PM, Jakub Kicinski wrote:
Dropped the fixes tags (since its not a series of fixes) and applied.
Thanks for applying these.
Do you only want "Fixes" tags on patches posted for the net
branch (and not net-next)?
I think I might have debated sending these as bug fixes but
decided
.
Reported-by: Randy Dunlap
Fixes: 30eb3fbee3da7 ("net: ipa: new notification infrastructure")
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa.h | 2 --
drivers/net/ipa/ipa_main.c | 38 ++
2 files changed, 2 insertions(+), 38 deletions(-)
di
The "modem-remoteproc" property is no longer required for the IPA
driver, so get rid of it.
Signed-off-by: Alex Elder
---
arch/arm64/boot/dts/qcom/sc7180.dtsi | 2 --
1 file changed, 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi
b/arch/arm64/boot/dts/qcom/sc7180.
d the binding and DT patches.
Thanks.
-Alex
Alex Elder (4):
net: ipa: remove a remoteproc dependency
dt-bindings: net: remove modem-remoteproc property
arm64: dts: qcom: sc7180: kill IPA modem-remoteproc property
arm64: dts: qcom: sdm845: kill IPA modem-remoteproc property
.../
The "modem-remoteproc" property is no longer required for the IPA
driver, so get rid of it.
Signed-off-by: Alex Elder
---
arch/arm64/boot/dts/qcom/sdm845.dtsi | 2 --
1 file changed, 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi
b/arch/arm64/boot/dts/qcom/sdm845.
The IPA driver uses the remoteproc SSR notifier now, rather than the
temporary IPA notification system used initially. As a result it no
longer needs a property identifying the modem subsystem DT node.
Use GIC_SPI rather than 0 in the example interrupt definition.
Signed-off-by: Alex Elder
interconnect-related cleanups are implemented as well.
-Alex
Alex Elder (7):
net: ipa: rename interconnect settings
net: ipa: don't return an error from ipa_interconnect_disable()
net: ipa: introduce an IPA interconnect structure
net: ipa: store averag
of it.
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_clock.c | 113 +-
drivers/net/ipa/ipa_data-sc7180.c | 41 ++-
drivers/net/ipa/ipa_data-sdm845.c | 41 ++-
drivers/net/ipa/ipa_data.h| 14 ++--
4 files changed, 97 insertions(+), 112 dele
y the first error seen.
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_clock.c | 31 +++
1 file changed, 11 insertions(+), 20 deletions(-)
diff --git a/drivers/net/ipa/ipa_clock.c b/drivers/net/ipa/ipa_clock.c
index 459c357e09678..baedb481fe824 100644
--- a/drivers/ne
of
an IPA interconnect structure.
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_clock.c | 83 +
1 file changed, 47 insertions(+), 36 deletions(-)
diff --git a/drivers/net/ipa/ipa_clock.c b/drivers/net/ipa/ipa_clock.c
index 07069dbc6d033..fbe42106fc2a8 1
ed to keep a copy of the interconnect data
after initialization.
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_clock.c | 88 ++---
1 file changed, 52 insertions(+), 36 deletions(-)
diff --git a/drivers/net/ipa/ipa_clock.c b/drivers/net/ipa/ipa_clock.c
Use "bandwidth" rather than "rate" in describing the average and
peak values to use for IPA interconnects. They should have been
named that way to begin with.
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_clock.c | 20 ++--
drivers/net/ipa/ip
Add the name to the configuration data for each interconnect. Use
this information rather than a constant string during initialization.
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_clock.c | 6 +++---
drivers/net/ipa/ipa_data-sc7180.c | 3 +++
drivers/net/ipa/ipa_data-sdm845.c | 3
Rather than having separate pointers for the memory, imem, and
config interconnect paths, maintain an array of ipa_interconnect
structures each of which contains a pointer to a path.
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_clock.c | 59 +
1 file
On 12/28/20 4:14 PM, Jakub Kicinski wrote:
If only it could have been caught with COMPILE_TEST.. ;)
I know, I know!!! I've had a branch that's half done
for a long time. It has other dependencies that are
not set up for COMPILE_TEST so it's harder than I'd
like. Let me see if I can make some
On 12/29/20 7:50 AM, Zheng Yongjun wrote:
Use kzalloc rather than kcalloc(1,...)
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)
//
@@
@@
- kcalloc(1,
+ kzalloc(
...)
//
Signed-off-by: Zheng Yongjun
---
drivers/staging/greybus/light.c | 2
On 12/29/20 7:37 PM, Zheng Yongjun wrote:
Use kzalloc rather than kcalloc(1,...)
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)
//
@@
@@
- kcalloc(1,
+ kzalloc(
...)
//
Signed-off-by: Zheng Yongjun
Looks good.
Reviewed-by: Alex Elder
d
success")
Signed-off-by: Alex Elder
---
drivers/net/ipa/gsi.c | 21 +++--
1 file changed, 7 insertions(+), 14 deletions(-)
diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c
index 579cc3e516775..e51a770578990 100644
--- a/drivers/net/ipa/gsi.c
+++ b/drivers/net/ipa/
s")
Signed-off-by: Alex Elder
---
drivers/net/ipa/gsi.c | 17 ++---
1 file changed, 6 insertions(+), 11 deletions(-)
diff --git a/drivers/net/ipa/gsi.c b/drivers/net/ipa/gsi.c
index e51a770578990..14d9a791924bf 100644
--- a/drivers/net/ipa/gsi.c
+++ b/drivers/net/ipa/gsi.c
@
.
-Alex
Alex Elder (2):
net: ipa: don't return a value from gsi_channel_command()
net: ipa: don't return a value from evt_ring_command()
drivers/net/ipa/gsi.c | 38 +-
1 file changed, 13 insertions(+), 25 deletions(-)
--
2.27.0
o "ipa_main.c" where it's used. TIMER_FREQUENCY is used only
by that function, so move that definition as well.
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_main.c | 15 +++
drivers/net/ipa/ipa_reg.h | 12
2 files changed, 15 insertions(+), 12 de
ersion and subsequent versions. (E.g.,
"present for IPA v4.2+" instead of just "present for v4.2".)
Signed-off-by: Alex Elder
---
drivers/net/ipa/gsi.c | 8
drivers/net/ipa/ipa_cmd.c | 26 +++---
drivers/net/ipa/ipa_endpoint.c | 25
.
-Alex
Alex Elder (6):
net: ipa: reduce IPA version assumptions
net: ipa: update version definitions
net: ipa: define the ENDP_INIT_NAT register
net: ipa: limit local processing context address
net: ipa: move ipa_aggr_granularity_val()
net: ipa: increase channels and
Add IPA version definitions for all IPA v3.x and v4.x. Fix the GSI
version associated with IPA version 4.1.
Signed-off-by: Alex Elder
---
v2: - Add kernel-doc descriptions for ipa_version members.
drivers/net/ipa/ipa_version.h | 29 ++---
1 file changed, 22 insertions
the valid bits.
Shorten the name of the register (omit "_BASE") to avoid the need to
wrap the line in the one place it's used.
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_mem.c | 6 --
drivers/net/ipa/ipa_reg.h | 14 --
2 files changed, 16 insertions(+), 4 del
Define the ENDP_INIT_NAT register for setting up the NAT
configuration for an endpoint. We aren't using NAT at this
time, so explicitly set the type to BYPASS for all endpoints.
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_endpoint.c | 17 -
drivers/net/ipa/ipa_
Increase the maximum number of channels and event rings supported by
the driver, to allow the maximum available on the SDX55.
Signed-off-by: Alex Elder
---
drivers/net/ipa/gsi.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ipa/gsi.h b/drivers/net/ipa/gsi.h
On 3/24/21 11:27 AM, David Laight wrote:
From: Alex Elder
Sent: 23 March 2021 01:05
It is possible for a 32 bit x86 build to use a 64 bit DMA address.
There are two remaining spots where the IPA driver does a modulo
operation to check alignment of a DMA address, and under certain
conditions
On 3/24/21 12:12 PM, David Laight wrote:
I think 'count' is also required to be a power of 2.
so you could have checked 'addr & (size - 1)'.
It is required to be, and that is checked elsewhere
(in gsi_channel_data_valid()). And yes, size would
therefore be a power-of-2, and so your clever test
-Alex
Alex Elder (6):
net: ipa: update IPA register comments
net: ipa: update component config register
net: ipa: support IPA interrupt addresses for IPA v4.7
net: ipa: GSI register cleanup
net: ipa: update GSI ring size registers
net: ipa: expand GSI channel types
drivers/net
purpose for the register.
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_main.c | 2 +-
drivers/net/ipa/ipa_reg.h | 32 +---
2 files changed, 30 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ipa/ipa_main.c b/drivers/net/ipa/ipa_main.c
index
Starting with IPA v4.7, registers related to IPA interrupts are
located at a fixed offset 0x1000 above than the addresses used for
earlier versions. Define and use functions to provide the offset to
use for these registers based on IPA version.
Signed-off-by: Alex Elder
---
drivers/net/ipa
require changes elsewhere in the
code.
Update rsrc_grp_encoded() to support these other IPA versions.
Add kerneldoc comments for the IPA IRQ numbers and sequencer type.
Fix a few spots where the version check should be less restrictive
(missed by an earlier patch).
Signed-off-by: Alex Elder
- Add the definition of GSI_CH_DB_STOP channel command
- Add a couple of blank lines
- Move one comment and indent another
- Delete two unused register definitions at the end.
Signed-off-by: Alex Elder
---
drivers/net/ipa/gsi_reg.h | 14 +-
1 file changed, 9 insertions(+), 5 deletion
can be larger starting with
IPA v4.9, so create a function to encode that as well.
Signed-off-by: Alex Elder
---
drivers/net/ipa/gsi.c | 7 +--
drivers/net/ipa/gsi_reg.h | 17 +++--
2 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ipa/gsi.c b
protocols. At this point we still use only GPI protocol.
Signed-off-by: Alex Elder
---
drivers/net/ipa/gsi.c | 2 +-
drivers/net/ipa/gsi_reg.h | 38 +++---
2 files changed, 32 insertions(+), 8 deletions(-)
diff --git a/drivers/net/ipa/gsi.c b/drivers/net
On 3/18/21 11:03 AM, Florian Fainelli wrote:
On 3/18/2021 6:51 AM, Alex Elder wrote:
Use upper_32_bits() to extract the high-order 32 bits of a DMA
address. This avoids doing a 32-position shift on a DMA address
if it happens not to be 64 bits wide.
Suggested-by: Florian Fainelli
Signed
entries, and a fixed constant
IPA_TABLE_ENTRY_SIZE to describe the size of those entries.
Loosen up two checks so they still verify some requirements, but
such that they do not assume the size of a DMA address is 64 bits.
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_table.c | 14
f the minimum is smaller than that.
Remove the BUILD_BUG_ON() call checking against minimim DMA alignment
and instead verify at rutime that the allocated memory is properly
aligned.
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_table.c | 20
1 file changed, 12 insertions(
d, size_t will be 32 bits wide, so there remains no reason to
use do_div() for divide and modulo.
A few recent commits also fix some code that assumes that DMA
addresses are 64 bits wide.
With that, we can get rid of the 64-bit build requirement.
Signed-off-by: Alex Elder
---
drivers/net
ned-off-by: Alex Elder
---
v3: - Use upper_32_bits() where appropriate, and lower_32_bits() too.
v2: - Switched to use the upper_32_bits(), as suggested by Florian.
drivers/net/ipa/gsi.c | 14 ++
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/drivers/net/ipa/gsi.c b/d
series uses upper_32_bits() rather than creating
a new function to extract bits out of a DMA address. Version 3 of
uses lower_32_bits() as well.
-Alex
Alex Elder (4):
net: ipa: fix assumptions about DMA address size
net: ipa: use upper_32_bits()
net
ignored.
IPA assertion errors will be reported using the IPA device if
possible.
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_assert.h | 50
1 file changed, 50 insertions(+)
create mode 100644 drivers/net/ipa/ipa_assert.h
diff --git a/drivers/net/ipa
-off-by: Alex Elder
---
drivers/net/ipa/ipa_cmd.c | 49 +--
1 file changed, 32 insertions(+), 17 deletions(-)
diff --git a/drivers/net/ipa/ipa_cmd.c b/drivers/net/ipa/ipa_cmd.c
index 35e35852c25c5..b40f031a905a7 100644
--- a/drivers/net/ipa/ipa_cmd.c
+++ b
both runtime and build-time assertions, both with and without the
device pointer.
Signed-off-by: Alex Elder
---
drivers/net/ipa/ipa_reg.h | 7 ---
drivers/net/ipa/ipa_table.c | 5 -
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ipa/ipa_reg.h b/drivers/net/ipa
or or compiler.
A final patch converts a handful of commented assertions into
"real" ones. Some existing validation code can done more simply
with assertions, so over time such cases will be converted. For
now though, this series adds this assertion capability.
checking.
The checks are defined conditionally, but not consistently. In
some cases IPA_VALIDATION enables the optional checks, while in
others IPA_VALIDATE is used.
Fix this by using IPA_VALIDATION consistently.
Signed-off-by: Alex Elder
---
drivers/net/ipa/Makefile | 2 +-
drivers/net/ipa
201 - 300 of 1349 matches
Mail list logo