21 May, 2019
1 commit
-
Add SPDX license identifiers to all Make/Kconfig files which:
- Have no license information of any form
These files fall under the project license, GPL v2 only. The resulting SPDX
license identifier is:GPL-2.0-only
Signed-off-by: Thomas Gleixner
Signed-off-by: Greg Kroah-Hartman
07 Feb, 2019
1 commit
-
snd_pcm_lib_preallocate_pages() and co always succeed, so the error
check is simply redundant. Drop it.Reviewed-by: Jaroslav Kysela
Acked-by: Mark Brown
Signed-off-by: Takashi Iwai
28 Mar, 2018
1 commit
-
…c/es8316', 'asoc/topic/es8328' and 'asoc/topic/fsl' into asoc-next
17 Feb, 2018
1 commit
-
When we have same register to tell capture and playback capability
of a device and we want separate cpu dais for playback and
capture. Then, DW_I2S_QUIRK_COMP_PARAM1 is used to enable one
capability per dai.Signed-off-by: Akshu Agrawal
Reviewed-by: Alex Deucher
Signed-off-by: Mark Brown
12 Feb, 2018
1 commit
-
Now platform can be replaced to component, let's do it.
Signed-off-by: Kuninori Morimoto
Signed-off-by: Mark Brown
09 Oct, 2017
1 commit
-
This fixes a few typos in the snd_designware description.
Signed-off-by: Nik Nyby
Signed-off-by: Mark Brown
15 Aug, 2017
1 commit
-
Omit an extra message for a memory allocation failure in this function.
This issue was detected by using the Coccinelle software.
Link: http://events.linuxfoundation.org/sites/events/files/slides/LCJ16-Refactor_Strings-WSang_0.pdf
Signed-off-by: Markus Elfring
Signed-off-by: Mark Brown
17 Jul, 2017
1 commit
-
This structure is only stored in the ops field of a snd_soc_dai_driver
structure. That field is declared const, so snd_soc_dai_ops structures
that have this property can be declared as const also.Signed-off-by: Gustavo A. R. Silva
Signed-off-by: Mark Brown
29 Jun, 2017
1 commit
-
Added quirk DW_I2S_QUIRK_16BIT_IDX_OVERRIDE to Designware
driver. This quirk will set idx value to 1.By setting this quirk, it will override supported format
as 16 bit resolution and bus width as 2 Bytes.Reviewed-by: Alex Deucher
Signed-off-by: Vijendar Mukunda
Signed-off-by: Alex Deucher
Signed-off-by: Mark Brown
30 Apr, 2017
1 commit
-
Designware PCM is an extension to Designware I2S and they are dependent
on each other. For this reason, make Designware PCM a boolean which will
compile with Desigwnare I2S module. The name of the module is not changed
but the name of the files need to be changed.Also, without this commit we get errors when probbing designware_i2s module
because of unspecified license:designware_pcm: module license 'unspecified' taints kernel.
Disabling lock debugging due to kernel taint
designware_pcm: Unknown symbol __rcu_read_lock (err 0)
designware_pcm: Unknown symbol devm_snd_soc_register_platform (err 0)
designware_pcm: Unknown symbol synchronize_rcu (err 0)
designware_pcm: Unknown symbol __rcu_read_unlock (err 0)
designware_pcm: Unknown symbol snd_soc_set_runtime_hwparams (err 0)So, this is really needed as a fix.
Fixes: 79361b2b98b7 ("ASoC: dwc: Add PIO PCM extension")
Signed-off-by: Lubomir Rintel
Signed-off-by: Jose Abreu
Signed-off-by: Mark Brown
09 Jan, 2017
2 commits
-
Sample size of 24 bits use in reality 32 bits for storage. We
can safelly enable this sample size and treat the data as
32 bits.Tested in a x86_64 platform and in ARC AXS101 SDP platform.
Signed-off-by: Jose Abreu
Signed-off-by: Mark Brown -
Up until now PIO mode offered only playback support. With
this patch we add support for record mode. The PCM was
refactored so that we could reuse the existing infrastructure
without many changes.We have support for 16 and 32 bits of sample size using
only 2 channels.Tested in a x86_64 platform and in ARC AXS101 SDP platform.
Signed-off-by: Jose Abreu
Signed-off-by: Mark Brown
14 Dec, 2016
1 commit
-
We can no longer rely on the return value of
devm_snd_dmaengine_pcm_register(...) to check if the DMA
handle is declared in the DT.Previously this check activated PIO mode but currently
dma_request_chan returns either a valid channel or -EPROBE_DEFER.In order to activate PIO mode check instead if the interrupt
line is declared. This reflects better what is documented in
the DT bindings (see Documentation/devicetree/bindings/sound/
designware-i2s.txt).Also, initialize use_pio variable which was never being set
causing PIO mode to never work.Signed-off-by: Jose Abreu
Signed-off-by: Mark Brown
08 Aug, 2016
1 commit
-
The dw_configure_dai_by_dt() function and further dev->{play,capture}
_dma_data.dt data structures seem to be used in this driver only in case
of a system using devicetree, thus chan_name assignments have no effect
since they will be ignored in dmaengine_pcm_request_chan_of() call and
will be substituted with values taken form dmaengine_pcm_dma_channel_names[]
table ("tx", "rx").Also there is no any "TX", "RX" dma-names entries in arch/arm/boot/dts,
only lower case "tx", "rx" seem to be used.Lastly, this driver doesn't set SND_DMAENGINE_PCM_FLAG_CUSTOM_CHANNEL_NAME
flag when registering a dmaengine PCM to indicate the chan_name should be
used.My intention is to eventually remove the struct snd_dmaengine_dai_dma_data
chan_name field as there is also a chan_names[] field in struct
snd_dmaengine_pcm_config which can be used for same purpose.Signed-off-by: Sylwester Nawrocki
Signed-off-by: Mark Brown
26 Jun, 2016
1 commit
-
trivial fix to spelling mistake in dev_err message
Signed-off-by: Colin Ian King
Signed-off-by: Mark Brown
22 Jun, 2016
1 commit
-
The new PIO mode for the dwc audio driver causes a link failure
when it is built as a loadable module but the audio driver is built-in:sound/built-in.o: In function `i2s_irq_handler':
:(.text+0x58c64): undefined reference to `dw_pcm_push_tx'
sound/built-in.o: In function `dw_i2s_probe':
:(.text+0x593dc): undefined reference to `dw_pcm_register'We could link both into a single module, but apparently the
author intended them to be separate, so this instead changes
the Makefile to force the pcm module to be built-in if the
base module is. This is a bit hacky but not as bad as trying
to work around it in Kconfig language.Signed-off-by: Arnd Bergmann
Fixes: 79361b2b98b7 ("ASoC: dwc: Add PIO PCM extension")
Signed-off-by: Mark Brown
14 Jun, 2016
1 commit
-
A PCM extension was added to I2S driver so that audio
samples are transferred using PIO mode.The PCM supports two channels @ 16 or 32 bits with rates
32k, 44.1k and 48k.Although the mainline I2S driver uses ALSA DMA engine the
I2S controller can be built without DMA support, therefore
this is the reason why this extension was added.Signed-off-by: Jose Abreu
Cc: Carlos Palminha
Cc: Mark Brown
Cc: Liam Girdwood
Cc: Jaroslav Kysela
Cc: Takashi Iwai
Cc: Rob Herring
Cc: Alexey Brodkin
Cc: linux-snps-arc@lists.infradead.org
Cc: alsa-devel@alsa-project.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Mark Brown
30 May, 2016
1 commit
-
Helper functions to disable and enable the I2S interrupts were
added. Only the interrupts of the used channels are enabled.Also, there is no need to enable irqs at dw_i2s_config(), they
are already enabled at startup.Signed-off-by: Jose Abreu
Cc: Carlos Palminha
Cc: Mark Brown
Cc: Liam Girdwood
Cc: Jaroslav Kysela
Cc: Takashi Iwai
Cc: Rob Herring
Cc: Alexey Brodkin
Cc: linux-snps-arc@lists.infradead.org
Cc: alsa-devel@alsa-project.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Mark Brown
08 Apr, 2016
1 commit
-
This patch makes Designware I2S driver use the fifo
depth value to program the fifo configuration register
instead of using hardcoded values.Signed-off-by: Jose Abreu
Signed-off-by: Mark Brown
06 Apr, 2016
1 commit
-
There is no need to unmask all interrupts at I2S start. This
can cause performance issues in slower platforms.Unmask only the interrupts for the used channels.
Signed-off-by: Jose Abreu
Signed-off-by: Mark Brown
03 Feb, 2016
1 commit
-
In the case that the driver is configured from device-tree
i2s_reg_comp1 and i2s_reg_comp2 aren't initialised, breaking the driver.
Fix this by unconditionally setting these values before checking for quirks.Fixes: a242cac1d3aa ("ASoC: dwc: add quirk to override COMP_PARAM_1 register")
Signed-off-by: Jon Medhurst
Signed-off-by: Mark Brown
10 Jan, 2016
1 commit
-
DWC for capture in ACP 2.x IP reports playback and capture capabilities
though it supports only capture. Added a quirk to override default value
to represent capture capability only.Signed-off-by: Maruthi Bayyavarapu
Signed-off-by: Alex Deucher
Signed-off-by: Mark Brown
08 Dec, 2015
3 commits
-
DWC IP can be powered off during system suspend in some platforms.
After system is resumed, dwc needs to be programmed again to continue
audio use case.Signed-off-by: Maruthi Bayyavarapu
Reviewed-by: Alex Deucher
Signed-off-by: Alex Deucher
Signed-off-by: Mark Brown -
DWC in ACP 2.x IP has different offsets for I2S_COMP_PARAM_* registers.
Added a quirk to support the same.Signed-off-by: Maruthi Bayyavarapu
Reviewed-by: Alex Deucher
Signed-off-by: Alex Deucher
Signed-off-by: Mark Brown -
When DW controller is in master mode, it can disable/enable clock
during the device runtime suspend/resume sequence.Signed-off-by: Maruthi Bayyavarapu
Reviewed-by: Alex Deucher
Signed-off-by: Alex Deucher
Signed-off-by: Mark Brown
26 Oct, 2015
1 commit
-
…c/fsl' and 'asoc/topic/fsl-card' into asoc-next
24 Oct, 2015
1 commit
-
DW i2s controller's master/slave config can be read from a
read-only register. Machine driver can try to set a master/slave
format on cpu-dai using 'set_fmt' of dai ops. A check is added to
verify codec is master when dwc is slave and vice-versa.Signed-off-by: Maruthi Bayyavarapu
Signed-off-by: Alex Deucher
Signed-off-by: Mark Brown
05 Oct, 2015
1 commit
-
dw i2s controller can work in slave mode, codec being master.
dw i2s is made to support master/slave operation, by reading dwc
register.Signed-off-by: Maruthi Bayyavarapu
Signed-off-by: Alex Deucher
Signed-off-by: Mark Brown
03 Oct, 2015
1 commit
-
Designware I2S uses tx empty and rx available signals as the DMA
handshaking signals. during music playing, if XRUN occurs,
i2s_stop() function will be executed and both tx and rx irq are
masked, when music continues to be played, i2s_start() is executed
but both tx and rx irq are not unmasked which cause I2S stop
sending DMA handshaking signal to DMA controller, and it finally
causes music playing will be stopped once XRUN occurs for the first
time.[On list discussion suggests this may be partly a race condition on slow
systems -- broonie]Signed-off-by: Yitian Bu
Signed-off-by: Mark Brown
02 Oct, 2015
1 commit
-
from Designware I2S datasheet, tx/rx XRUN irq is cleared by
reading register TOR/ROR, rather than by writing into them.Signed-off-by: Yitian Bu
Signed-off-by: Mark Brown
Cc: stable@vger.kernel.org
05 Feb, 2015
1 commit
-
…si', 'asoc/topic/fsl' and 'asoc/topic/fsl-asrc' into asoc-next
29 Jan, 2015
1 commit
-
of_match_ptr is already conditionally compiled based on
CONFIG_OF so further conditional compilation is not
required. Remove conditional compilation surrounding
of_match_ptr.Signed-off-by: Andrew Jackson
Signed-off-by: Mark Brown
31 Dec, 2014
5 commits
-
Allow the driver to be configured through a device tree rather than platform
data.Signed-off-by: Andrew Jackson
Signed-off-by: Mark Brown -
Register SOC component using managed interface to
simplify error handling and future introduction of
device tree.Signed-off-by: Andrew Jackson
Signed-off-by: Mark Brown -
Some I2S clocks may require some time to get the clock ready
for operation and so need to be prepared before they are enabled.
So, prepare the clock as well as enabling it, but combine the
two through clk_prepare_enable.Signed-off-by: Andrew Jackson
Signed-off-by: Mark Brown -
The I2S block provides component parameter registers which
describe how the block is instantiated. Use these registers
to extract the block's configuration rather than relying on
platform data.Signed-off-by: Andrew Jackson
Signed-off-by: Mark Brown -
Simplify error handling during probe by using managed clock
resources.Signed-off-by: Andrew Jackson
Signed-off-by: Mark Brown
22 Dec, 2014
3 commits
-
The Designware core can be configured with up to four stereo channels.
Each stereo channel is individually configured so, when the driver's
hw_params call is made, each requested stereo channel has to be
programmed.Signed-off-by: Andrew Jackson
Signed-off-by: Mark Brown -
Flush the FIFOs when the stream is prepared for use. This avoids
an inadvertent swapping of the left/right channels if the FIFOs are
not empty at startup.Signed-off-by: Andrew Jackson
Signed-off-by: Mark Brown
Cc: stable@vger.kernel.org -
Move code that configures the DAI and DMA into a separate function. This
reduces the size of the dw_i2s_probe function and will make it easier to
add support for device tree to the driver.Signed-off-by: Andrew Jackson
Signed-off-by: Mark Brown