#
130af75b |
| 09-Sep-2024 |
Uwe Kleine-König <u.kleine-koenig@baylibre.com> |
ASoC: Switch back to struct platform_driver::remove()
After commit 0edb555a65d1 ("platform: Make platform_driver::remove() return void") .remove() is (again) the right callback to implement for plat
ASoC: Switch back to struct platform_driver::remove()
After commit 0edb555a65d1 ("platform: Make platform_driver::remove() return void") .remove() is (again) the right callback to implement for platform drivers.
Convert all drivers below sound/soc to use .remove(), with the eventual goal to drop struct platform_driver::remove_new(). As .remove() and .remove_new() have the same prototypes, conversion is done by just changing the structure member name in the driver initializer.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com> Link: https://patch.msgid.link/20240909151230.909818-2-u.kleine-koenig@baylibre.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
3e83957e |
| 01-Aug-2024 |
Matteo Martelli <matteomartelli3@gmail.com> |
ASoC: sunxi: sun4i-i2s: fix LRCLK polarity in i2s mode
This fixes the LRCLK polarity for sun8i-h3 and sun50i-h6 in i2s mode which was wrongly inverted.
The LRCLK was being set in reversed logic com
ASoC: sunxi: sun4i-i2s: fix LRCLK polarity in i2s mode
This fixes the LRCLK polarity for sun8i-h3 and sun50i-h6 in i2s mode which was wrongly inverted.
The LRCLK was being set in reversed logic compared to the DAI format: inverted LRCLK for SND_SOC_DAIFMT_IB_NF and SND_SOC_DAIFMT_NB_NF; normal LRCLK for SND_SOC_DAIFMT_IB_IF and SND_SOC_DAIFMT_NB_IF. Such reversed logic applies properly for DSP_A, DSP_B, LEFT_J and RIGHT_J modes but not for I2S mode, for which the LRCLK signal results reversed to what expected on the bus. The issue is due to a misinterpretation of the LRCLK polarity bit of the H3 and H6 i2s controllers. Such bit in this case does not mean "0 => normal" or "1 => inverted" according to the expected bus operation, but it means "0 => frame starts on low edge" and "1 => frame starts on high edge" (from the User Manuals).
This commit fixes the LRCLK polarity by setting the LRCLK polarity bit according to the selected bus mode and renames the LRCLK polarity bit definition to avoid further confusion.
Fixes: dd657eae8164 ("ASoC: sun4i-i2s: Fix the LRCK polarity") Fixes: 73adf87b7a58 ("ASoC: sun4i-i2s: Add support for H6 I2S") Signed-off-by: Matteo Martelli <matteomartelli3@gmail.com> Link: https://patch.msgid.link/20240801-asoc-fix-sun4i-i2s-v2-1-a8e4e9daa363@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
9be51470 |
| 17-Apr-2024 |
John Watts <contact@jookia.org> |
ASoC: sunxi: sun4i-i2s: Fix pcm_formats type specification
pcm_formats should be a u64 as it is a SNDRV_PCM_FMTBIT_* not a SNDRV_PCM_FORMAT_*.
Also fix a small grammar error while we're here.
Repo
ASoC: sunxi: sun4i-i2s: Fix pcm_formats type specification
pcm_formats should be a u64 as it is a SNDRV_PCM_FMTBIT_* not a SNDRV_PCM_FORMAT_*.
Also fix a small grammar error while we're here.
Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202404170103.ySYwieqi-lkp@intel.com/ Signed-off-by: John Watts <contact@jookia.org> Link: https://lore.kernel.org/r/20240417-sunxi_s32_fix-v1-1-d82e451565c0@jookia.org Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
863f94ac |
| 03-Apr-2024 |
John Watts <contact@jookia.org> |
ASoC: sunxi: sun4i-i2s: Support 32-bit audio formats
The I2S cores used in the H3 onwards support 32-bit sample rates. Support these by adding a per-variant PCM format list.
Signed-off-by: John Wat
ASoC: sunxi: sun4i-i2s: Support 32-bit audio formats
The I2S cores used in the H3 onwards support 32-bit sample rates. Support these by adding a per-variant PCM format list.
Signed-off-by: John Watts <contact@jookia.org> Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com> Link: https://lore.kernel.org/r/20240403-sunxi_s32-v2-1-29ebf6ad590a@jookia.org Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
340d79a1 |
| 06-Oct-2023 |
Rob Herring <robh@kernel.org> |
ASoC: Explicitly include correct DT includes
The DT of_device.h and of_platform.h date back to the separate of_platform_bus_type before it was merged into the regular platform bus. As part of that m
ASoC: Explicitly include correct DT includes
The DT of_device.h and of_platform.h date back to the separate of_platform_bus_type before it was merged into the regular platform bus. As part of that merge prepping Arm DT support 13 years ago, they "temporarily" include each other. They also include platform_device.h and of.h. As a result, there's a pretty much random mix of those include files used throughout the tree. In order to detangle these headers and replace the implicit includes with struct declarations, users need to explicitly include the correct includes.
Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Reviewed-by: Claudiu Beznea <claudiu.beznea@tuxon.dev> # for at91 Signed-off-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20231006-dt-asoc-header-cleanups-v3-1-13a4f0f7fee6@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
fc95a8a3 |
| 08-Aug-2023 |
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
ASoC: sunxi: merge DAI call back functions into ops
ALSA SoC merges DAI call backs into .ops. This patch merge these into one.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Re
ASoC: sunxi: merge DAI call back functions into ops
ALSA SoC merges DAI call backs into .ops. This patch merge these into one.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com> Link: https://lore.kernel.org/r/875y5pb0sr.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
5423c00e |
| 15-Mar-2023 |
Uwe Kleine-König <u.kleine-koenig@pengutronix.de> |
ASoC: sunxi: sun4i-i2s: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes many driver authors wrongly assume it's possible to
ASoC: sunxi: sun4i-i2s: Convert to platform remove callback returning void
The .remove() callback for a platform driver returns an int which makes many driver authors wrongly assume it's possible to do error handling by returning an error code. However the value returned is (mostly) ignored and this typically results in resource leaks. To improve here there is a quest to make the remove callback return void. In the first step of this quest all drivers are converted to .remove_new() which already returns void.
Trivially convert this driver from always returning zero in the remove callback to the void returning variant.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com> Acked-by: Takashi Iwai <tiwai@suse.de> Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com> Link: https://lore.kernel.org/r/20230315150745.67084-142-u.kleine-koenig@pengutronix.de Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
f450b5db |
| 23-Jun-2022 |
Charles Keepax <ckeepax@opensource.cirrus.com> |
ASoC: sunxi: Migrate to new style legacy DAI naming flag
Change the legacy DAI naming flag from opting in to the new scheme (non_legacy_dai_naming), to opting out of it (legacy_dai_naming). These dr
ASoC: sunxi: Migrate to new style legacy DAI naming flag
Change the legacy DAI naming flag from opting in to the new scheme (non_legacy_dai_naming), to opting out of it (legacy_dai_naming). These drivers appear to be on the CPU side of the DAI link and currently uses the legacy naming, so add the new flag.
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20220623125250.2355471-15-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
7c619b30 |
| 16-Jun-2022 |
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> |
ASoC: sunxi: sun4i-i2s: update kernel-doc
Remove warnings
sound/soc/sunxi/sun4i-i2s.c:205: warning: Function parameter or member 'num_din_pins' not described in 'sun4i_i2s_quirks'
sound/soc/sunxi/
ASoC: sunxi: sun4i-i2s: update kernel-doc
Remove warnings
sound/soc/sunxi/sun4i-i2s.c:205: warning: Function parameter or member 'num_din_pins' not described in 'sun4i_i2s_quirks'
sound/soc/sunxi/sun4i-i2s.c:205: warning: Function parameter or member 'num_dout_pins' not described in 'sun4i_i2s_quirks'
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://lore.kernel.org/r/20220616220802.136282-3-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
15011b23 |
| 19-May-2022 |
Charles Keepax <ckeepax@opensource.cirrus.com> |
ASoC: sunxi: Rename set_fmt_new back to set_fmt
Now the core has been migrated across to the new direct clock specification we can move the drivers back to the normal set_fmt callback.
Signed-off-b
ASoC: sunxi: Rename set_fmt_new back to set_fmt
Now the core has been migrated across to the new direct clock specification we can move the drivers back to the normal set_fmt callback.
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20220519154318.2153729-50-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
7cc3965f |
| 19-May-2022 |
Charles Keepax <ckeepax@opensource.cirrus.com> |
ASoC: sunxi: Update to use set_fmt_new callback
As part of updating the core to directly tell drivers if they are clock provider or consumer update these CPU side drivers to use the new direct callb
ASoC: sunxi: Update to use set_fmt_new callback
As part of updating the core to directly tell drivers if they are clock provider or consumer update these CPU side drivers to use the new direct callback.
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20220519154318.2153729-23-ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
e2ce580f |
| 03-Feb-2022 |
Samuel Holland <samuel@sholland.org> |
ASoC: sun4i-i2s: Add support for the R329/D1 variant
This adds a new set of quirks to set the right RX channel map. Since that is the only change to the register layout, reuse the H6 regmap config b
ASoC: sun4i-i2s: Add support for the R329/D1 variant
This adds a new set of quirks to set the right RX channel map. Since that is the only change to the register layout, reuse the H6 regmap config by extending its last register. R329 support is added by its compatible string. D1 uses R329 as its fallback compatible, so no additional code change is needed for it.
Signed-off-by: Samuel Holland <samuel@sholland.org> Acked-by: Maxime Ripard <maxime@cerno.tech> Link: https://lore.kernel.org/r/20220203020116.12279-4-samuel@sholland.org Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
c8bbc1de |
| 03-Feb-2022 |
Samuel Holland <samuel@sholland.org> |
ASoC: sun4i-i2s: Update registers for more channels
H6 expands the number of channels in each direction to 16, so the slot number fields need to be expanded from 3 to 4 bits each.
R329/D1 expand th
ASoC: sun4i-i2s: Update registers for more channels
H6 expands the number of channels in each direction to 16, so the slot number fields need to be expanded from 3 to 4 bits each.
R329/D1 expand that further by allowing each of the 16 slots to map to any of 4 data pins. For TX, the configuration of each pin is independent, so there is a copy of the mapping registers for each pin. For RX, each of the 16 slots can map to only one pin, so the registers were changed to add the pin selection inline with the channel mapping.
Signed-off-by: Samuel Holland <samuel@sholland.org> Acked-by: Maxime Ripard <maxime@cerno.tech> Link: https://lore.kernel.org/r/20220203020116.12279-3-samuel@sholland.org Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
cc384f05 |
| 17-Jun-2021 |
Yang Yingliang <yangyingliang@huawei.com> |
ASoC: sun4i-i2s: Use devm_platform_get_and_ioremap_resource()
Use devm_platform_get_and_ioremap_resource() to simplify code.
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> Link: https://l
ASoC: sun4i-i2s: Use devm_platform_get_and_ioremap_resource()
Use devm_platform_get_and_ioremap_resource() to simplify code.
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> Link: https://lore.kernel.org/r/20210617045012.1119650-3-yangyingliang@huawei.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
36785fec |
| 13-Feb-2021 |
Julia Lawall <Julia.Lawall@inria.fr> |
ASoC: sun4i-i2s: drop unneeded snd_soc_dai_set_drvdata
snd_soc_dai_set_drvdata is not needed when the set data comes from snd_soc_dai_get_drvdata or dev_get_drvdata. The problem was fixed usingthe
ASoC: sun4i-i2s: drop unneeded snd_soc_dai_set_drvdata
snd_soc_dai_set_drvdata is not needed when the set data comes from snd_soc_dai_get_drvdata or dev_get_drvdata. The problem was fixed usingthe following semantic patch: (http://coccinelle.lip6.fr/)
// <smpl> @@ expression x,y,e; @@ x = dev_get_drvdata(y->dev) ... when != x = e - snd_soc_dai_set_drvdata(y,x);
@@ expression x,y,e; @@ x = snd_soc_dai_get_drvdata(y) ... when != x = e - snd_soc_dai_set_drvdata(y,x); // </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr> Link: https://lore.kernel.org/r/20210213101907.1318496-4-Julia.Lawall@inria.fr Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
81385708 |
| 15-Jan-2021 |
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> |
ASoC: sunxi: sync parameter naming (rate/sample_bits)
This patch syncs naming rule.
- xxx_rates; + xxx_rate;
- xxx_samplebits; + xxx_sample_bits;
Signed-off-by: Kuninori Morimoto <kuninori.mo
ASoC: sunxi: sync parameter naming (rate/sample_bits)
This patch syncs naming rule.
- xxx_rates; + xxx_rate;
- xxx_samplebits; + xxx_sample_bits;
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87turin6uk.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
08c7b7d5 |
| 30-Oct-2020 |
Clément Péron <peron.clem@gmail.com> |
ASoC: sun4i-i2s: fix coding-style for callback definition
Checkpatch script produces warning: WARNING: function definition argument 'const struct sun4i_i2s *' should also have an identifier name.
L
ASoC: sun4i-i2s: fix coding-style for callback definition
Checkpatch script produces warning: WARNING: function definition argument 'const struct sun4i_i2s *' should also have an identifier name.
Let's fix this by adding identifier name to get_bclk_parent_rate() and set_fmt() callback definition.
Acked-by: Maxime Ripard <mripard@kernel.org> Signed-off-by: Clément Péron <peron.clem@gmail.com> Link: https://lore.kernel.org/r/20201030144648.397824-10-peron.clem@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
38d7adc0 |
| 30-Oct-2020 |
Samuel Holland <samuel@sholland.org> |
ASoC: sun4i-i2s: Fix setting of FIFO modes
Because SUN4I_I2S_FIFO_CTRL_REG is volatile, writes done while the regmap is cache-only are ignored. To work around this, move the configuration to a callb
ASoC: sun4i-i2s: Fix setting of FIFO modes
Because SUN4I_I2S_FIFO_CTRL_REG is volatile, writes done while the regmap is cache-only are ignored. To work around this, move the configuration to a callback that runs while the ASoC core has a runtime PM reference to the device.
Signed-off-by: Samuel Holland <samuel@sholland.org> Reviewed-by: Chen-Yu Tsai <wens@csie.org> Acked-by: Maxime Ripard <mripard@kernel.org> Signed-off-by: Clément Péron <peron.clem@gmail.com> Link: https://lore.kernel.org/r/20201030144648.397824-9-peron.clem@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
64359246 |
| 30-Oct-2020 |
Clément Péron <peron.clem@gmail.com> |
ASoC: sun4i-i2s: Fix sun8i volatile regs
The FIFO TX reg is volatile and sun8i i2s register mapping is different from sun4i.
Even if in this case it's doesn't create an issue, Avoid setting some re
ASoC: sun4i-i2s: Fix sun8i volatile regs
The FIFO TX reg is volatile and sun8i i2s register mapping is different from sun4i.
Even if in this case it's doesn't create an issue, Avoid setting some regs that are undefined in sun8i.
Acked-by: Maxime Ripard <mripard@kernel.org> Reviewed-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Clément Péron <peron.clem@gmail.com> Link: https://lore.kernel.org/r/20201030144648.397824-8-peron.clem@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
6ad7ca62 |
| 30-Oct-2020 |
Marcus Cooper <codekipper@gmail.com> |
ASoC: sun4i-i2s: Add 20 and 24 bit support
Extend the functionality of the driver to include support of 20 and 24 bits per sample.
Signed-off-by: Marcus Cooper <codekipper@gmail.com> Acked-by: Maxi
ASoC: sun4i-i2s: Add 20 and 24 bit support
Extend the functionality of the driver to include support of 20 and 24 bits per sample.
Signed-off-by: Marcus Cooper <codekipper@gmail.com> Acked-by: Maxime Ripard <mripard@kernel.org> Reviewed-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Clément Péron <peron.clem@gmail.com> Link: https://lore.kernel.org/r/20201030144648.397824-7-peron.clem@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
d8659dd9 |
| 30-Oct-2020 |
Marcus Cooper <codekipper@gmail.com> |
ASoC: sun4i-i2s: Set sign extend sample
On the newer SoCs such as the H3 and A64 this is set by default to transfer a 0 after each sample in each slot. However the A10 and A20 SoCs that this driver
ASoC: sun4i-i2s: Set sign extend sample
On the newer SoCs such as the H3 and A64 this is set by default to transfer a 0 after each sample in each slot. However the A10 and A20 SoCs that this driver was developed on had a default setting where it padded the audio gain with zeros.
This isn't a problem while we have only support for 16bit audio but with larger sample resolution rates in the pipeline then SEXT bits should be cleared so that they also pad at the LSB. Without this the audio gets distorted.
Set sign extend sample for all the sunxi generations even if they are not affected. This will keep consistency and avoid relying on default.
Signed-off-by: Marcus Cooper <codekipper@gmail.com> Reviewed-by: Chen-Yu Tsai <wens@csie.org> Acked-by: Maxime Ripard <mripard@kernel.org> Signed-off-by: Clément Péron <peron.clem@gmail.com> Link: https://lore.kernel.org/r/20201030144648.397824-6-peron.clem@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
9c2d255f |
| 30-Oct-2020 |
Clément Péron <peron.clem@gmail.com> |
ASoC: sun4i-i2s: Change get_sr() and get_wss() to be more explicit
We are actually using a complex formula to just return a bunch of simple values. Also this formula is wrong for sun4i when calling
ASoC: sun4i-i2s: Change get_sr() and get_wss() to be more explicit
We are actually using a complex formula to just return a bunch of simple values. Also this formula is wrong for sun4i when calling get_wss() the function return 4 instead of 3.
Replace this with a simpler switch case.
Also drop the i2s params which is unused and return a simple int as returning an error code could be out of range for an s8 and there is no optim to return a s8 here.
Fixes: 619c15f7fac9 ("ASoC: sun4i-i2s: Change SR and WSS computation") Reviewed-by: Chen-Yu Tsai <wens@csie.org> Acked-by: Maxime Ripard <mripard@kernel.org> Signed-off-by: Clément Péron <peron.clem@gmail.com> Link: https://lore.kernel.org/r/20201030144648.397824-5-peron.clem@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
73adf87b |
| 30-Oct-2020 |
Jernej Skrabec <jernej.skrabec@siol.net> |
ASoC: sun4i-i2s: Add support for H6 I2S
H6 I2S is very similar to that in H3, except it supports up to 16 channels.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> Signed-off-by: Marcus Coo
ASoC: sun4i-i2s: Add support for H6 I2S
H6 I2S is very similar to that in H3, except it supports up to 16 channels.
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> Signed-off-by: Marcus Cooper <codekipper@gmail.com> Reviewed-by: Chen-Yu Tsai <wens@csie.org> Acked-by: Maxime Ripard <mripard@kernel.org> Signed-off-by: Clément Péron <peron.clem@gmail.com> Link: https://lore.kernel.org/r/20201030144648.397824-4-peron.clem@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
c779e2de |
| 30-Oct-2020 |
Clément Péron <peron.clem@gmail.com> |
ASoC: sun4i-i2s: Change set_chan_cfg() params
As slots and slot_width can be set manually using set_tdm(). These values are then kept in sun4i_i2s struct. So we need to check if these values are set
ASoC: sun4i-i2s: Change set_chan_cfg() params
As slots and slot_width can be set manually using set_tdm(). These values are then kept in sun4i_i2s struct. So we need to check if these values are set or not.
This is not done actually and will trigger a bug. For example, if we set to the simple soundcard in the device-tree dai-tdm-slot-width = <32> and then start a stream using S16_LE, currently we would calculate BCLK for 32-bit slots, but program lrck_period for 16-bit slots, making the sample rate double what we expected.
To fix this, we need to check if these values are set or not but as this logic is already done by the caller. Avoid duplicating this logic and just pass the required values as params to set_chan_cfg().
Suggested-by: Samuel Holland <samuel@sholland.org> Acked-by: Maxime Ripard <mripard@kernel.org> Signed-off-by: Clément Péron <peron.clem@gmail.com> Link: https://lore.kernel.org/r/20201030144648.397824-3-peron.clem@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|
#
93c02106 |
| 30-Oct-2020 |
Clément Péron <peron.clem@gmail.com> |
ASoC: sun4i-i2s: Fix lrck_period computation for I2S justified mode
Left and Right justified mode are computed using the same formula as DSP_A and DSP_B mode. Which is wrong and the user manual expl
ASoC: sun4i-i2s: Fix lrck_period computation for I2S justified mode
Left and Right justified mode are computed using the same formula as DSP_A and DSP_B mode. Which is wrong and the user manual explicitly says:
LRCK_PERDIOD: PCM Mode: Number of BCLKs within (Left + Right) channel width. I2S/Left-Justified/Right-Justified Mode: Number of BCLKs within each individual channel width(Left or Right)
Fix this by using the same formula as the I2S mode.
Fixes: 7ae7834ec446 ("ASoC: sun4i-i2s: Add support for DSP formats") Signed-off-by: Clément Péron <peron.clem@gmail.com> Acked-by: Maxime Ripard <mripard@kernel.org> Link: https://lore.kernel.org/r/20201030144648.397824-2-peron.clem@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
show more ...
|