31 Dec, 2019
1 commit
-
[ Upstream commit c134f914e9f55b7817e2bae625ec0e5f1379f7cd ]
The previous formula is incorrect for PDI0/1, the mapping is not
linear but has a discontinuity between PDI1 and PDI2.This change has no effect on PCM PDIs (same mapping).
Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20191022232948.17156-1-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul
Signed-off-by: Sasha Levin
24 Oct, 2019
1 commit
-
fix cppcheck warning:
[drivers/soundwire/slave.c:145]: (warning) %x in format string (no. 1)
requires 'unsigned int *' but the argument type is 'signed int *'.Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20191022233147.17268-1-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul
21 Oct, 2019
1 commit
-
There are two issues, likely copy/paste:
1. Use cdns->pcm.num_in instead of stream_num_in for consistency with
the rest of the code. This was not detected earlier since platforms did
not have input-only PDIs.2. use the correct offset for bi-dir PDM, based on IN and OUT
PDIs. Again this was not detected since PDM was not supported earlier.Reported-by: Ranjani Sridharan
Signed-off-by: Bard Liao
Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190916192348.467-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul
15 Oct, 2019
2 commits
-
Now devicetree is supported for probing soundwire as well.
On platforms built with !ACPI !OF (ie s390x) the device still cannot be
probed and gives a build warning.Cc: stable@vger.kernel.org
Fixes: a2e484585ad3 ("soundwire: core: add device tree support for slave devices")
Signed-off-by: Michal Suchanek
Link: https://lore.kernel.org/r/0b89b4ea16a93f523105c81a2f718b0cd7ec66f2.1570097621.git.msuchanek@suse.de
Signed-off-by: Vinod Koul -
The device cannot be probed on !ACPI and gives this warning:
drivers/soundwire/slave.c:16:12: warning: ‘sdw_slave_add’ defined but
not used [-Wunused-function]
static int sdw_slave_add(struct sdw_bus *bus,
^~~~~~~~~~~~~Cc: stable@vger.kernel.org
Fixes: 7c3cd189b86d ("soundwire: Add Master registration")
Signed-off-by: Michal Suchanek
Link: https://lore.kernel.org/r/bd685232ea511251eeb9554172f1524eabf9a46e.1570097621.git.msuchanek@suse.de
Signed-off-by: Vinod Koul
23 Sep, 2019
1 commit
-
Pull soundwire updates from Vinod Koul:
"This includes DT support thanks to Srini and more work done by Intel
(Pierre) on improving cadence and intel support.Summary:
- Add DT bindings and DT support in core
- Add debugfs support for soundwire properties
- Improvements on streaming handling to core
- Improved handling of Cadence module
- More updates and improvements to Intel driver"
* tag 'soundwire-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire: (30 commits)
soundwire: stream: make stream name a const pointer
soundwire: Add compute_params callback
soundwire: core: add device tree support for slave devices
dt-bindings: soundwire: add slave bindings
soundwire: bus: set initial value to port_status
soundwire: intel: handle disabled links
soundwire: intel: add debugfs register dump
soundwire: cadence_master: add debugfs register dump
soundwire: add debugfs support
soundwire: intel: remove unused variables
soundwire: intel: move shutdown() callback and don't export symbol
soundwire: cadence_master: add kernel parameter to override interrupt mask
soundwire: intel_init: add kernel module parameter to filter out links
soundwire: cadence_master: fix divider setting in clock register
soundwire: cadence_master: make use of mclk_freq property
soundwire: intel: read mclk_freq property from firmware
soundwire: add new mclk_freq field for properties
soundwire: stream: remove unnecessary variable initializations
soundwire: stream: fix disable sequence
soundwire: include mod_devicetable.h to avoid compiling warnings
...
04 Sep, 2019
4 commits
-
Make stream name const pointer
Signed-off-by: Srinivas Kandagatla
Link: https://lore.kernel.org/r/20190813083550.5877-3-srinivas.kandagatla@linaro.org
Signed-off-by: Vinod Koul -
This callback allows masters to compute the bus parameters required.
Signed-off-by: Srinivas Kandagatla
Link: https://lore.kernel.org/r/20190813083550.5877-2-srinivas.kandagatla@linaro.org
Signed-off-by: Vinod Koul -
This patch adds support to parsing device tree based
SoundWire slave devices.Signed-off-by: Srinivas Kandagatla
Link: https://lore.kernel.org/r/20190829163514.11221-3-srinivas.kandagatla@linaro.org
Signed-off-by: Vinod Koul -
port_status[port_num] are assigned for each port_num in some if
conditions. So some of the port_status may not be initialized.Signed-off-by: Bard Liao
Reviewed-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190829181135.16049-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul
23 Aug, 2019
4 commits
-
On most hardware platforms, SoundWire interfaces are pin-muxed with
other interfaces (typically DMIC or I2S) and the status of each link
needs to be checked at boot time.For Intel platforms, the BIOS provides a menu to enable/disable the
links separately, and the information is provided to the OS with an
Intel-specific _DSD property. The same capability will be added to
revisions of the MIPI DisCo specification.Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190821185821.12690-5-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
Add debugfs file to dump the Intel SoundWire registers
Credits: this patch is based on an earlier internal contribution by
Vinod Koul, Sanyog Kale, Shreyas Nc and Hardik Shah.Reviewed-by: Greg Kroah-Hartman
Acked-by: Sanyog Kale
Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190821185821.12690-4-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
Add debugfs file to dump the Cadence master registers.
Credits: this patch is based on an earlier internal contribution by
Vinod Koul, Sanyog Kale, Shreyas Nc and Hardik Shah.Reviewed-by: Greg Kroah-Hartman
Acked-by: Sanyog Kale
Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190821185821.12690-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
Add base debugfs mechanism for SoundWire bus by creating soundwire
root and master-N and slave-x hierarchy.Also add SDW Slave SCP, DP0 and DP-N register debug file.
Registers not implemented will print as "XX"
Credits: this patch is based on an earlier internal contribution by
Vinod Koul, Sanyog Kale, Shreyas Nc and Hardik Shah.Reviewed-by: Greg Kroah-Hartman
Acked-by: Sanyog Kale
Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190821185821.12690-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul
22 Aug, 2019
1 commit
-
Variables 'nval' and 'i' are no longer used sdw_master_read_intel_prop()
so remove them.drivers/soundwire/intel.c: In function 'sdw_master_read_intel_prop':
drivers/soundwire/intel.c:829:12: warning: unused variable 'i' [-Wunused-variable]
int nval, i;
^
drivers/soundwire/intel.c:829:6: warning: unused variable 'nval' [-Wunused-variable]
int nval, i;
^~~~Reported-by: Stephen Rothwell
Fixes: 085f4ace103d ("soundwire: intel: read mclk_freq property from firmware")
Signed-off-by: Vinod Koul
21 Aug, 2019
14 commits
-
All DAI callbacks are in intel.c except for shutdown. Move and remove
export symbolSigned-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190806005522.22642-18-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
The code has a set of defaults which may not be relevant in all cases,
add kernel parameter as a helper - mostly for early board bring-up.Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190806005522.22642-17-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
The hardware and ACPI info may report the presence of links that are
not physically enabled (e.g. due to pin-muxing or hardware reworks),
which in turn can result in errors being thrown. This shouldn't be the
case for production devices but will happen a lot on development
devices - even more so when they expose a connector.Even when the ACPI information is correct, it's useful to be able to
only enable the links that need attention - mostly to filter out
dynamic debug messages.Add a module parameter to filter out such links, e.g. adding the
following config to a file in /etc/modprobe.d will select the second
and third links only.options soundwire_intel_init sdw_link_mask=0x6
Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190806005522.22642-16-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
The existing code uses an OR operation which would mix the original
divider setting with the new one, resulting in an invalid
configuration that can make codecs hang.Add the mask definition and use cdns_updatel to update divider
Signed-off-by: Rander Wang
Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190806005522.22642-14-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
Now that the prototype and Intel implementation are enabled, use this
property to avoid hard-coded values.For example for ICL the mclk_freq value is 38.4 MHz while on CNL/CML
it's 24 MHz. The mclk_freq should not be confused with the
max_clk_freq, which si the maximum bus clock. The mclk_freq is
typically tied to the oscillator frequency and does not change between
platforms. The max_clk_freq value is linked to the maximum bandwidth
needed and topology/trace length.Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190806005522.22642-13-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
The BIOS provides an Intel-specific property, let's use it to avoid
hard-coded clock dividers.Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190806005522.22642-12-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
A number of variables don't need to be initialized.
In a couple of cases where we loop on a list of runtimes, the code
handling of the 'bus' variable leads to warnings that it may not be
initialized. Add a specific error case to trap such cases.Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190806005522.22642-10-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
When we disable the stream and then call hw_free, two bank switches
will be handled and as a result we re-enable the stream on hw_free.Make sure the stream is disabled on both banks.
TODO: we need to completely revisit all this and make sure we have a
mirroring mechanism between current and alternate banks.Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190806005522.22642-9-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
Remove hard-coding and use firmware (BIOS/DT) values. If they are
wrong use default 48x2 frame shape.Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190806005522.22642-7-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
Add a prefix for common tables and export 2 helpers to set the frame
shapes based on row/col values.These changes simplify bandwidth allocation algorithms as well as the
Cadence parts which all need to convert from frame shape to indices
used by the standard. These helpers are used in the following patch.Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190806005522.22642-6-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
update comments to provide better understanding of enumeration flows.
Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190806005522.22642-5-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
Adding missing interrupt masks (parity, etc) and missing checks.
Clarify which masks are for which usage.Signed-off-by: Bard Liao
Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190806005522.22642-4-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
On all released Intel controllers (CNL/CML/ICL), PDI2 reports an
invalid count, force the correct hardware-supported valueThis may have to be revisited with platform-specific values if the
hardware changes, but for now this is good enough.Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190806005522.22642-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
This should not happen in production systems but we should test for
all callback arguments before invoking the config_stream callback.Update the prototype to clarify that the first argument is mandatory.
Also use local variable instead of multiple dereferences to improve
readability.Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190806005522.22642-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul
09 Aug, 2019
1 commit
-
The existing code has a mixed select/depend usage which makes no sense.
config SOUNDWIRE_BUS
tristate
select REGMAP_SOUNDWIREconfig REGMAP_SOUNDWIRE
tristate
depends on SOUNDWIRE_BUSLet's remove one layer of Kconfig definitions and align with the
solutions used by all other serial links.Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190718230215.18675-1-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul
03 Aug, 2019
1 commit
-
Assigning a device number to a Slave will result in additional events
when it reports its status in a PING frame. There is no point in
dealing with all the other devices in a loop, this can be done when a
non-device0 event happens.Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190725234032.21152-19-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul
02 Aug, 2019
5 commits
-
Two off-by-one errors: INTSTAT0 missed BIT(31) and INTSTAT1 is only
defined on first 16 bits.Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190725234032.21152-15-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
wrong prefix and wrong macro.
Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190725234032.21152-14-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
The bus clash interrupts are generated when the status is one, and
also cleared by writing a one. It's overkill/useless to use an OR when
the bit is already set.Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190725234032.21152-12-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
the values passed by all existing BIOS are fine, let's use them as is.
The existing code must have been needed only on early prototypes.Signed-off-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20190725234032.21152-9-pierre-louis.bossart@linux.intel.com
Signed-off-by: Vinod Koul -
Use use fwnode_property_count_uXX() directly, that makes code neater.
Signed-off-by: Andy Shevchenko
Link: https://lore.kernel.org/r/20190723194218.69168-1-andriy.shevchenko@linux.intel.com
Reviewed-by: Pierre-Louis Bossart
Signed-off-by: Vinod Koul
05 Jul, 2019
1 commit
-
…koul/soundwire into char-misc-next
Vinod writes:
soundwire updates for v5.3-rc1
Updates for 5.3 include:
- module_sdw_driver macro for drivers
- Documentation updates for code-blocks
- Improvement from Pierre on intel and cadence driver
- Clarification of DisCo properties and updates* tag 'soundwire-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire:
soundwire: add module_sdw_driver helper macro
docs: soundwire: locking: fix tags for a code-block
soundwire: intel_init: add checks on link numbers
soundwire: fix typo in comments
soundwire: Intel: add log for number of PCM and PDM PDIs
soundwire: cadence_master: check the number of bidir PDIs
soundwire: cadence_master: log Slave status mask on errors
soundwire: cadence_master: use rate_limited dynamic debug
soundwire: rename/clarify MIPI DisCo properties
soundwire: clarify comment
soundwire: mipi-disco: fix clock stop modes
soundwire: rename 'freq' fields
soundwire: mipi-disco: remove master_count property for masters
soundwire: remove master data port properties
soundwire: add port-related definitions
soundwire: mipi_disco: fix master/link error
soundwire: intel: filter SoundWire controller device search
soundwire: cdns: Fix compilation error on arm64
11 Jun, 2019
1 commit
-
…koul/soundwire into char-misc-linus
Vinod writes:
soundwire fixes for v5.2-rc4
Srinivas Kandagatla fixed by bunch of issues, two in core for locking
and out of bound access and one in intel driver copy-paste* tag 'soundwire-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire:
soundwire: intel: set dai min and max channels correctly
soundwire: stream: fix bad unlock balance
soundwire: stream: fix out of boundary access on port properties
07 Jun, 2019
2 commits
-
Looks like there is a copy paste error.
This patch fixes it!Signed-off-by: Srinivas Kandagatla
Signed-off-by: Vinod Koul -
the msg lock is taken for multi-link cases only but released
unconditionally, leading to an unlock balance warning for single-link usages
This patch fixes this.=====================================
WARNING: bad unlock balance detected!
5.1.0-16506-gc1c383a6f0a2-dirty #1523 Tainted: G W
-------------------------------------
aplay/2954 is trying to release lock (&bus->msg_lock) at:
do_bank_switch+0x21c/0x480
but there are no more locks to release!Signed-off-by: Srinivas Kandagatla
Acked-by: Pierre-Louis Bossart
Acked-by: Sanyog Kale
[vkoul: edited the change log as suggested by Pierre]
Signed-off-by: Vinod Koul