Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
* [PATCH 0/3] soc: qcom: apr: improve RX processing
@ 2026-05-14 15:50 Srinivas Kandagatla
  2026-05-14 15:50 ` [PATCH 1/3] soc: qcom: apr: Remove service from IDR before registration failure Srinivas Kandagatla
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Srinivas Kandagatla @ 2026-05-14 15:50 UTC (permalink / raw)
  To: andersson
  Cc: srini, konradybcio, linux-sound, linux-arm-msm, linux-kernel,
	Srinivas Kandagatla

Hi all,

This series contains a couple of APR enhancements and a rework of the RX
processing path.

The first two patches makes code more robust for trival issues in the APR core.

Remove stale service entries from the IDR when apr_add_device()
fails before the device is registered.
Validate incoming packet lengths using the header size appropriate
for the active packet router type (APR or GPR).

The final patch moves RX buffering and work items from the packet
router to individual services.

Today all incoming packets are serialized through a single work item and
a global RX queue. If one service callback blocks or takes a long time
to complete, packet processing for all other services is delayed. This
can lead to command timeouts when responses are stuck behind unrelated
work.

With this change, packets are queued and processed on a per-service
basis, preserving message ordering within each service while allowing
unrelated services to make progress independently. Since queued packets
may outlive service removal, a reference count is added to keep the
service object alive until all queued packets have been processed.

The shared APR workqueue is also converted to an unbound reclaim
workqueue so multiple services can process packets in parallel.

Thanks,
Srini

Srinivas Kandagatla (3):
  soc: qcom: apr: Remove service from IDR before registration failure
  soc: qcom: apr: Check response packet length by router type
  soc: qcom: apr: Process RX messages using per-service work items

 drivers/soc/qcom/apr.c       | 283 ++++++++++++++++++++++++-----------
 include/linux/soc/qcom/apr.h |   6 +
 2 files changed, 200 insertions(+), 89 deletions(-)

-- 
2.47.3


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2026-05-28 13:50 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-14 15:50 [PATCH 0/3] soc: qcom: apr: improve RX processing Srinivas Kandagatla
2026-05-14 15:50 ` [PATCH 1/3] soc: qcom: apr: Remove service from IDR before registration failure Srinivas Kandagatla
2026-05-14 15:50 ` [PATCH 2/3] soc: qcom: apr: Check response packet length by router type Srinivas Kandagatla
2026-05-21  9:45   ` Konrad Dybcio
2026-05-21 17:19     ` Srinivas Kandagatla
2026-05-14 15:50 ` [PATCH 3/3] soc: qcom: apr: Process RX messages using per-service work items Srinivas Kandagatla
2026-05-21 22:28   ` Bjorn Andersson
2026-05-28 13:50     ` Srinivas Kandagatla
2026-05-26 22:26 ` [PATCH 0/3] soc: qcom: apr: improve RX processing Val Packett

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox