alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] slimbus: Add Stream Support
@ 2018-06-21 13:40 Srinivas Kandagatla
  2018-06-21 13:40 ` [PATCH 1/2] slimbus: stream: add stream support Srinivas Kandagatla
  2018-06-21 13:40 ` [PATCH 2/2] slimbus: ngd: " Srinivas Kandagatla
  0 siblings, 2 replies; 11+ messages in thread
From: Srinivas Kandagatla @ 2018-06-21 13:40 UTC (permalink / raw)
  To: gregkh, broonie
  Cc: alsa-devel, ctatlor97, linux-arm-msm, linux-kernel, vkoul,
	Srinivas Kandagatla, sdharia

This patchset adds basic stream support for SLIMbus devices and
controllers. Mostly inspired by soundwire stream patches. But slimbus
stream is much simpler compared to soundwire

>From slim_device side, we have below 6 new apis.
slim_stream_allocate() - allocating runtime slim stream
slim_stream_prepare() - to configure runtime stream with config
slim_stream_enable() - enable channels/ports for data
slim_stream_disable() - disable channels/ports.
slim_stream_unprepare() - un configure runtime stream
slim_stream_free() - free all associated memory.

>From Controller side:
Data channel Management and reconfiguration messages are applicable for
all the controllers which are inline with SLIMbus specs. However light
weight controller like NGD which have user specific implementation of
some messages need to be invoked instead of standard message commands.
For usecases like this simple enable/disable stream apis are provided.

Assumptions:
1> Current design assumes that the channel and ports are statically allocated
to the device during SoC integration, which is the case with all the
Qualcomm SoCs.
2> One-to-One mapping between Port and Channel, SLIMBus versions earlier
than 2.0 has only one endpoint per port. Current patchset can be extended
to support more than one endpoints per port.
3> Only audio usecase, This patchset only supports Isochronous and Push/Pull
transport protocols, which are sufficient for audio use cases.
4> DSP does all the data handling for the allocated channels. Which is true
for Qcom SoCs.

TODO:
	Bandwidth management.

Dependency:
	This patchset has dependency on the NGD driver
	https://patchwork.kernel.org/patch/10474959/

Tested this patchset with WCD9335 codec playback on DB820c on
top of 4.18-rc1 with qdsp6.

I have pushed my working branch to [1] incase someone want to try.

[1]:https://git.linaro.org/people/srinivas.kandagatla/linux.git/log/?h=slimbus-ngd


Thanks,
srini

Srinivas Kandagatla (2):
  slimbus: stream: add stream support
  slimbus: ngd: add stream support

 Documentation/driver-api/slimbus.rst |   5 +
 drivers/slimbus/Makefile             |   2 +-
 drivers/slimbus/core.c               |   2 +
 drivers/slimbus/qcom-ngd-ctrl.c      | 144 +++++++++-
 drivers/slimbus/slimbus.h            | 206 +++++++++++++++
 drivers/slimbus/stream.c             | 493 +++++++++++++++++++++++++++++++++++
 include/linux/slimbus.h              |  56 ++++
 7 files changed, 905 insertions(+), 3 deletions(-)
 create mode 100644 drivers/slimbus/stream.c

-- 
2.16.2

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

end of thread, other threads:[~2018-06-25 16:30 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-21 13:40 [PATCH 0/2] slimbus: Add Stream Support Srinivas Kandagatla
2018-06-21 13:40 ` [PATCH 1/2] slimbus: stream: add stream support Srinivas Kandagatla
2018-06-22 12:50   ` Vinod
2018-06-25 10:11     ` Srinivas Kandagatla
2018-06-25 16:21       ` Vinod
2018-06-25 16:30         ` Srinivas Kandagatla
2018-06-25 16:12   ` Stephen Boyd
2018-06-25 16:15     ` Srinivas Kandagatla
2018-06-21 13:40 ` [PATCH 2/2] slimbus: ngd: " Srinivas Kandagatla
2018-06-25  4:43   ` Vinod
2018-06-25 10:11     ` Srinivas Kandagatla

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).