Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
41227b2
soundwire: sdw_slave: add new fields to track probe status
plbossart Oct 9, 2019
0b61091
soundwire: add enumeration_complete structure
plbossart Sep 26, 2019
3da420b
soundwire: add initialization_complete definition
plbossart Nov 4, 2019
9ff2159
soundwire: intel: update interfaces between ASoC and SoundWire
plbossart Oct 23, 2019
e8a55aa
soundwire: intel: update stream callbacks for hwparams/free stream op…
RanderWang Aug 19, 2019
1ace40f
soundwire: intel: fix PDI/stream mapping for Bulk
plbossart Sep 17, 2019
9c71273
soundwire: remove bitfield for unique_id, use u8
plbossart Oct 21, 2019
fb8e530
soundwire: slave: add helper to extract slave ID
plbossart Oct 21, 2019
5e68982
soundwire: ignore uniqueID when irrelevant
plbossart Oct 21, 2019
f58212c
soundwire: renames to prepare support for master drivers/devices
plbossart Sep 10, 2019
ea80c01
soundwire: rename dev_to_sdw_dev macro
plbossart Sep 11, 2019
c46560f
soundwire: rename drv_to_sdw_slave_driver macro
plbossart Sep 11, 2019
9e6843f
soundwire: bus_type: rename sdw_drv_ to sdw_slave_drv
plbossart Sep 11, 2019
a53c311
soundwire: intel: rename res field as link_res
plbossart Sep 11, 2019
55b771f
soundwire: add support for sdw_slave_type
plbossart Sep 11, 2019
466cf6c
soundwire: add initial definitions for sdw_master_device
plbossart Sep 11, 2019
169ea89
soundwire: intel: remove platform devices and provide new interface
plbossart Oct 23, 2019
a255d99
soundwire: add device driver to sdw_md_driver
bardliao Sep 12, 2019
3102cf0
ASoC: SOF: Intel: add SoundWire configuration interface
plbossart Sep 11, 2019
a7f233b
ASoC: SOF: IPC: dai-intel: move ALH declarations in header file
plbossart Aug 16, 2019
696348d
ASoC: SOF: Intel: hda: add SoundWire stream config/free callbacks
plbossart Jun 26, 2019
3e4b73f
ASoC: SOF: Intel: hda: initial SoundWire machine driver autodetect
plbossart Sep 12, 2019
417004c
ASoC: SOF: Intel: hda: disable SoundWire interrupts on suspend
plbossart Sep 24, 2019
2531984
ASoC: SOF: Intel: add build support for SoundWire
plbossart Sep 4, 2019
acdb781
ASoC: SOF: Intel: hda-ctrl: add reset cycle before parsing capabilities
plbossart Oct 21, 2019
f5e99e2
ASoC: codecs: rt700: add Soundwire support
shumingfan Apr 18, 2018
2d35c7e
ASoC: codecs: rt1308: add SoundWire support
shumingfan Aug 2, 2019
592284e
ASoC: codecs: rt711: add SoundWire support
shumingfan Aug 15, 2019
ab51c26
ASoC: codecs: rt715: add SoundWire support
Aug 21, 2019
74b8b4e
ASoC: codecs: Add DEBUG to Makefile
plbossart Apr 18, 2019
b2d8fab
ASoC: codecs: rt715: rt715_sdw_regmap can be static
intel-lab-lkp Oct 18, 2019
05effd6
ASoC: rt711: changes 32bits address mapping of index defined register…
shumingfan Oct 23, 2019
551a1dd
ASoC: rt700: changes 32bits address mapping of index defined register…
shumingfan Oct 23, 2019
d885c09
ASoC: rt1308-sdw: fix some coding style
shumingfan Oct 23, 2019
e76945d
Resume correct register setting for dmic recording after suspend.
Oct 24, 2019
07d8a39
ASoC: rt711: add JD2 configuration
shumingfan Oct 24, 2019
81f964d
ASoC: codec:rt715-sdw:Modify register mapping of index from 32bits to…
Oct 25, 2019
e828fe3
ASoC: rt700: fix pop noise while stopping playback
shumingfan Oct 28, 2019
f54f8e0
ASoC: rt711: fix pop noise while stopping playback
shumingfan Oct 28, 2019
1e77916
ASoC: rt1308-sdw: fix DC offset loading from EFUSE and increase DAC v…
shumingfan Oct 28, 2019
5579fbd
ASoC: codec:rt715-sdw: Modify some ret values regarding to warning an…
Oct 29, 2019
1cc00e5
ASoC: rt1308-sdw: output gain enhancement
shumingfan Oct 30, 2019
66b736c
ASoC: rt711: move rt711_parse_dt to rt711_probe
bardliao Nov 4, 2019
aad24cf
ASoC: codecs: rt1308-sdw.c: wait for initialization_complete
plbossart Nov 4, 2019
f3ac2fd
ASoC: codecs: rt700-sdw.c: wait for initialization_complete
plbossart Nov 4, 2019
a441b9e
ASoC: codecs: rt711-sdw.c: wait for initialization_complete
plbossart Nov 4, 2019
0020b7f
ASoC: codecs: rt715-sdw.c: wait for initialization_complete
plbossart Nov 4, 2019
97ba5a2
ASoC: Intel: common: soc-acpi: declare new tables for SoundWire
plbossart Aug 24, 2019
5b3ea6f
ASoC: Intel: common: add match tables for ICL w/ SoundWire
bardliao Jun 20, 2019
d3d8b55
ASoC: Intel: common: add match tables for CNL/CFL/CML w/ SoundWire
RanderWang Jul 22, 2019
74743fe
ASoC: Intel: common: add match tables for TGL w/ SoundWire
plbossart Sep 4, 2019
f7a6a03
ASoC: SOF: Intel: reference SoundWire machine lists
plbossart Sep 4, 2019
6ec22a8
ASoC: Intel: boards: add sdw_rt700 machine driver
plbossart Apr 11, 2019
7da16ae
ASoC: Intel: boards: add sdw_rt711_rt1308_rt715 3-in-1 config support
plbossart Aug 26, 2019
2b5ede1
ASoC: Intel: boards: sdw_rt711: add machine driver
plbossart Sep 17, 2019
add8804
ASoC: Intel: boards: SoundWire rt711 + I2S RT1308 configuration
plbossart Sep 25, 2019
fbeb8e0
NOT FOR UPSTREAM: Add debug for boards
plbossart Jun 24, 2019
993570a
ASoC: intel: sdw_rt711_rt1308_rt715: remove ENABLE_RT1308_SDW2 flag
bardliao Nov 5, 2019
87a98d1
soundwire: intel: add prepare support in sdw dai driver
RanderWang Aug 19, 2019
a104feb
soundwire: intel: add trigger support in sdw dai driver
RanderWang Aug 19, 2019
5e96ee9
soundwire: intel: add sdw_stream_setup helper for .startup callback
RanderWang Aug 19, 2019
a5a307b
soundwire: intel: free all resources on hw_free()
plbossart Oct 23, 2019
23fc905
soundwire: intel_init: add implementation of sdw_intel_enable_irq()
plbossart Oct 23, 2019
ed04f8e
soundwire: intel/cadence: fix timeouts in MSI mode
bardliao Sep 24, 2019
6908c9d
soundwire: fix race between driver probe and update_status callback
plbossart Aug 2, 2019
cc75826
soundwire: bus: add PM/no-PM versions of read/write functions
plbossart Jun 11, 2019
9dd34d9
soundwire: bus: write Slave Device Number without runtime_pm
plbossart Sep 26, 2019
a8e28a9
soundwire: intel: add helpers for link power down and shim wake
plbossart Sep 20, 2019
34b3875
soundwire: intel: Add basic power management support
plbossart Sep 20, 2019
01f46cf
soundwire: intel: add pm_runtime support
plbossart Sep 20, 2019
92011c3
soundwire: intel: reset pm_runtime status during system resume
plbossart Oct 11, 2019
6572466
soundwire: bus: add helper to reset Slave status to UNATTACHED
plbossart Sep 26, 2019
c6e53c3
soundwire: intel: call helper to reset Slave states on resume
plbossart Sep 26, 2019
b9beb3b
soundwire: bus: check first if Slaves become UNATTACHED
plbossart Sep 26, 2019
8e37222
soundwire: add enumeration_complete signaling
plbossart Sep 26, 2019
ba0197f
soundwire: bus: add initialization_complete signaling
plbossart Nov 4, 2019
12c720e
soundwire: intel: disable pm_runtime when removing a master
plbossart Oct 9, 2019
5211c36
soundwire: bus: disable pm_runtime in sdw_slave_delete
plbossart Oct 9, 2019
00ec1c6
soundwire: stream: update state machine and add state checks
plbossart Oct 12, 2019
bcced86
soundwire: stream: only prepare stream when it is configured.
bardliao Sep 20, 2019
81f3108
soundwire: stream: do not update parameters during DISABLED-PREPARED …
plbossart Oct 15, 2019
237ddcc
soundwire: intel: reinitialize IP+DSP in .prepare()
bardliao Oct 14, 2019
7802c09
[HACK] add traces to debug aplay suspend/resume issue
plbossart Oct 12, 2019
9020a25
soundwire: intel: update logs when Master is disabled
plbossart Oct 24, 2019
e51113c
soundwire: intel: pm_runtime idle scheduling
plbossart Oct 24, 2019
8b2493d
soundwire: fix jack detection failure when booting up
RanderWang Oct 29, 2019
8085159
soundwire: intel: clear slave status on intel_resume
bardliao Oct 31, 2019
7f1b2da
soundwire: cadence_master: handle multiple status reports per Slave
plbossart Jun 11, 2019
c04be17
soundwire: Add generic bandwidth allocation algorithm
plbossart Apr 24, 2018
16ff869
soundwire: dynamic_allocation: set grp_ctrl_valid false
bardliao Aug 2, 2019
d0dee92
soundwire: bus: fix device number leak on errors
plbossart Jul 30, 2019
07ae950
soundwire: intel: modify DMAT field for ALH
bardliao Aug 19, 2019
cf496f1
soundwire: intel: fix factor of two in MCLK handling
bardliao Aug 19, 2019
f6ec289
soundwire: cadence_master: log register write info
plbossart Jun 26, 2019
26770ec
add more traces to bus code
plbossart Jun 11, 2019
5c9af85
add traces for bus
plbossart Aug 1, 2019
383045b
[HACK] soundwire: add dynamic DEBUG in makefile
plbossart Sep 12, 2019
4956261
ALSA: HDA: intel-dsp-config: add DMI info for Dell laptop
bardliao Nov 5, 2019
64983a3
ASoC: intel: sdw_rt711_rt1308_rt715: Use a fixed number of num_links and
bardliao Nov 7, 2019
b8f1ab7
ASoC: rt700: enable wake_capable
shumingfan Nov 7, 2019
3c89ee2
ASoC: rt711: enable wake_capable
shumingfan Nov 7, 2019
321b31c
ASoC: rt715: enable wake_capable
shumingfan Nov 7, 2019
3bbd330
ASoC: rt700: re-do io_init in cache_bypass mode when system resume
shumingfan Nov 7, 2019
574eecd
ASoC: rt711: re-do io_init in cache_bypass mode when system resume
shumingfan Nov 7, 2019
b28f04c
ASoC: rt1308-sdw: re-do io_init in cache_bypass mode when system resume
shumingfan Nov 7, 2019
26858f5
Merge remote-tracking branch 'sof/integration/soundwire-interfaces' i…
plbossart Nov 8, 2019
92b0b25
Merge remote-tracking branch 'sof/integration/soundwire-intel' into i…
plbossart Nov 8, 2019
6749d7b
Merge remote-tracking branch 'sof/integration/soundwire-sof' into int…
plbossart Nov 8, 2019
a7f4bbd
Merge remote-tracking branch 'sof/integration/realtek-sdw-codecs' int…
plbossart Nov 8, 2019
46f4e6a
Merge remote-tracking branch 'sof/integration/soundwire-machine-drive…
plbossart Nov 8, 2019
391b5f9
Merge remote-tracking branch 'sof/integration/soundwire-debug-fixes' …
plbossart Nov 8, 2019
e3c392f
soundwire: store unattach request to avoid races between codec resume…
plbossart Nov 8, 2019
9a65904
ASoC: codecs: rt1308-sdw: check unattach request before wait_for_comp…
plbossart Nov 8, 2019
27cd4ad
ASoC: codecs: rt700-sdw: check unattach request before wait_for_compl…
plbossart Nov 8, 2019
ebd261d
ASoC: codecs: rt711-sdw: check unattach request before wait_for_compl…
plbossart Nov 8, 2019
e0b9944
ASoC: codecs: rt715-sdw: check unattach request before wait_for_compl…
plbossart Nov 8, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 45 additions & 18 deletions Documentation/driver-api/soundwire/stream.rst
Original file line number Diff line number Diff line change
Expand Up @@ -156,22 +156,27 @@ Below shows the SoundWire stream states and state transition diagram. ::
+-----------+ +------------+ +----------+ +----------+
| ALLOCATED +---->| CONFIGURED +---->| PREPARED +---->| ENABLED |
| STATE | | STATE | | STATE | | STATE |
+-----------+ +------------+ +----------+ +----+-----+
^
|
|
v
+----------+ +------------+ +----+-----+
+-----------+ +------------+ +---+--+---+ +----+-----+
^ ^ ^
| | |
__| |___________ |
| | |
v | v
+----------+ +-----+------+ +-+--+-----+
| RELEASED |<----------+ DEPREPARED |<-------+ DISABLED |
| STATE | | STATE | | STATE |
+----------+ +------------+ +----------+

NOTE: State transition between prepare and deprepare is supported in Spec
but not in the software (subsystem)
NOTE: State transitions between ``SDW_STREAM_ENABLED`` and
``SDW_STREAM_DISABLED`` are only relevant when then INFO_PAUSE flag is
supported at the ALSA/ASoC level. Likewise the transition between
``SDW_DISABLED_STATE`` and ``SDW_PREPARED_STATE`` depends on the
INFO_RESUME flag.

NOTE2: Stream state transition checks need to be handled by caller
framework, for example ALSA/ASoC. No checks for stream transition exist in
SoundWire subsystem.
NOTE2: The framework implements basic state transition checks, but
does not e.g. check if a transition from DISABLED to ENABLED is valid
on a specific platform. Such tests need to be added at the ALSA/ASoC
level.

Stream State Operations
-----------------------
Expand Down Expand Up @@ -246,6 +251,9 @@ SDW_STREAM_PREPARED

Prepare state of stream. Operations performed before entering in this state:

(0) Steps 1 and 2 are omitted in the case of a resume operation,
where the bus bandwidth is known.

(1) Bus parameters such as bandwidth, frame shape, clock frequency,
are computed based on current stream as well as already active
stream(s) on Bus. Re-computation is required to accommodate current
Expand All @@ -270,13 +278,15 @@ Prepare state of stream. Operations performed before entering in this state:
After all above operations are successful, stream state is set to
``SDW_STREAM_PREPARED``.

Bus implements below API for PREPARE state which needs to be called once per
stream. From ASoC DPCM framework, this stream state is linked to
.prepare() operation.
Bus implements below API for PREPARE state which needs to be called
once per stream. From ASoC DPCM framework, this stream state is linked
to .prepare() operation. Since the .trigger() operations may not
follow the .prepare(), a direct transitions from
``SDW_STREAM_PREPARED`` to ``SDW_STREAM_DEPREPARED`` is allowed.

.. code-block:: c

int sdw_prepare_stream(struct sdw_stream_runtime * stream);
int sdw_prepare_stream(struct sdw_stream_runtime * stream, bool resume);


SDW_STREAM_ENABLED
Expand Down Expand Up @@ -332,6 +342,14 @@ Bus implements below API for DISABLED state which needs to be called once
per stream. From ASoC DPCM framework, this stream state is linked to
.trigger() stop operation.

When the INFO_PAUSE flag is supported, a direct transition to
``SDW_STREAM_ENABLED`` is allowed.

For resume operations where ASoC will use the .prepare() callback, the
stream can transition from ``SDW_STREAM_DISABLED`` to
``SDW_STREAM_PREPARED``, with all required settings restored but
without updating the bandwidth and bit allocation.

.. code-block:: c

int sdw_disable_stream(struct sdw_stream_runtime * stream);
Expand All @@ -353,9 +371,18 @@ state:
After all above operations are successful, stream state is set to
``SDW_STREAM_DEPREPARED``.

Bus implements below API for DEPREPARED state which needs to be called once
per stream. From ASoC DPCM framework, this stream state is linked to
.trigger() stop operation.
Bus implements below API for DEPREPARED state which needs to be called
once per stream. ALSA/ASoC do not have a concept of 'deprepare', and
the mapping from this stream state to ALSA/ASoC operation may be
implementation specific.

When the INFO_PAUSE flag is supported, the stream state is linked to
the .hw_free() operation - the stream is not deprepared on a
TRIGGER_STOP.

Other implementations may transition to the ``SDW_STREAM_DEPREPARED``
state on TRIGGER_STOP, should they require a transition through the
``SDW_STREAM_PREPARED`` state.

.. code-block:: c

Expand Down
4 changes: 2 additions & 2 deletions drivers/base/regmap/regmap-sdw.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@
static int regmap_sdw_write(void *context, unsigned int reg, unsigned int val)
{
struct device *dev = context;
struct sdw_slave *slave = dev_to_sdw_dev(dev);
struct sdw_slave *slave = to_sdw_slave_device(dev);

return sdw_write(slave, reg, val);
}

static int regmap_sdw_read(void *context, unsigned int reg, unsigned int *val)
{
struct device *dev = context;
struct sdw_slave *slave = dev_to_sdw_dev(dev);
struct sdw_slave *slave = to_sdw_slave_device(dev);
int read;

read = sdw_read(slave, reg);
Expand Down
4 changes: 4 additions & 0 deletions drivers/soundwire/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,15 @@ config SOUNDWIRE_CADENCE
config SOUNDWIRE_INTEL
tristate "Intel SoundWire Master driver"
select SOUNDWIRE_CADENCE
select SOUNDWIRE_GENERIC_ALLOCATION
depends on ACPI && SND_SOC
help
SoundWire Intel Master driver.
If you have an Intel platform which has a SoundWire Master then
enable this config option to get the SoundWire support for that
device.

config SOUNDWIRE_GENERIC_ALLOCATION
tristate

endif
6 changes: 5 additions & 1 deletion drivers/soundwire/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,15 @@
#
# Makefile for soundwire core
#
ccflags-y += -DDEBUG

#Bus Objs
soundwire-bus-objs := bus_type.o bus.o slave.o mipi_disco.o stream.o
soundwire-bus-objs := bus_type.o bus.o master.o slave.o mipi_disco.o stream.o
obj-$(CONFIG_SOUNDWIRE) += soundwire-bus.o

soundwire-generic-allocation-objs := generic_bandwidth_allocation.o
obj-$(CONFIG_SOUNDWIRE_GENERIC_ALLOCATION) += soundwire-generic-allocation.o

ifdef CONFIG_DEBUG_FS
soundwire-bus-objs += debugfs.o
endif
Expand Down
Loading