mbox series

[0/8] ASoC: Use the maple tree register cache for RealTek SoundWire CODECs

Message ID 20230609-asoc-rt-sdw-maple-v1-0-85ee50c93905@kernel.org
Headers show
Series ASoC: Use the maple tree register cache for RealTek SoundWire CODECs | expand

Message

Mark Brown June 10, 2023, 2:27 p.m. UTC
The RealTek SoundWire CODECs don't support bulk register operations so
they gain no advantage from using the rbtree cache, convert them to use
the maple tree cache instead - it is more modern.

Signed-off-by: Mark Brown <broonie@kernel.org>
---
Mark Brown (8):
      ASoC: rt700: Use maple tree register cache
      ASoC: rt711: Use maple tree register cache
      ASoC: rt712: Use maple tree register cache
      ASoC: rt715: Use maple tree register cache
      ASoC: rt722: Use maple tree register cache
      ASoC: rt1308: Use maple tree register cache
      ASoC: rt1316: Use maple tree register cache
      ASoC: rt1318: Use maple tree register cache

 sound/soc/codecs/rt1308-sdw.c      | 2 +-
 sound/soc/codecs/rt1316-sdw.c      | 2 +-
 sound/soc/codecs/rt1318-sdw.c      | 2 +-
 sound/soc/codecs/rt700-sdw.c       | 2 +-
 sound/soc/codecs/rt711-sdca-sdw.c  | 4 ++--
 sound/soc/codecs/rt711-sdw.c       | 2 +-
 sound/soc/codecs/rt712-sdca-dmic.c | 4 ++--
 sound/soc/codecs/rt712-sdca-sdw.c  | 4 ++--
 sound/soc/codecs/rt715-sdca-sdw.c  | 4 ++--
 sound/soc/codecs/rt722-sdca-sdw.c  | 4 ++--
 10 files changed, 15 insertions(+), 15 deletions(-)
---
base-commit: 08e6c4bb17087584261c4aff555d32fc1c620b81
change-id: 20230609-asoc-rt-sdw-maple-fa6714ac4318

Best regards,

Comments

Liao, Bard June 14, 2023, 1:15 a.m. UTC | #1
On 6/10/2023 10:27 PM, Mark Brown wrote:
> The RealTek SoundWire CODECs don't support bulk register operations so
> they gain no advantage from using the rbtree cache, convert them to use
> the maple tree cache instead - it is more modern.
>
> Signed-off-by: Mark Brown <broonie@kernel.org>

Tested on a Dell laptop with rt1316, rt711-sdca, and rt715-sdca.

Tested-by: Bard Liao <yung-chuan.liao@linux.intel.com>

> ---
> Mark Brown (8):
>        ASoC: rt700: Use maple tree register cache
>        ASoC: rt711: Use maple tree register cache
>        ASoC: rt712: Use maple tree register cache
>        ASoC: rt715: Use maple tree register cache
>        ASoC: rt722: Use maple tree register cache
>        ASoC: rt1308: Use maple tree register cache
>        ASoC: rt1316: Use maple tree register cache
>        ASoC: rt1318: Use maple tree register cache
>
>   sound/soc/codecs/rt1308-sdw.c      | 2 +-
>   sound/soc/codecs/rt1316-sdw.c      | 2 +-
>   sound/soc/codecs/rt1318-sdw.c      | 2 +-
>   sound/soc/codecs/rt700-sdw.c       | 2 +-
>   sound/soc/codecs/rt711-sdca-sdw.c  | 4 ++--
>   sound/soc/codecs/rt711-sdw.c       | 2 +-
>   sound/soc/codecs/rt712-sdca-dmic.c | 4 ++--
>   sound/soc/codecs/rt712-sdca-sdw.c  | 4 ++--
>   sound/soc/codecs/rt715-sdca-sdw.c  | 4 ++--
>   sound/soc/codecs/rt722-sdca-sdw.c  | 4 ++--
>   10 files changed, 15 insertions(+), 15 deletions(-)
> ---
> base-commit: 08e6c4bb17087584261c4aff555d32fc1c620b81
> change-id: 20230609-asoc-rt-sdw-maple-fa6714ac4318
>
> Best regards,
Mark Brown June 15, 2023, 12:53 p.m. UTC | #2
On Sat, 10 Jun 2023 15:27:11 +0100, Mark Brown wrote:
> The RealTek SoundWire CODECs don't support bulk register operations so
> they gain no advantage from using the rbtree cache, convert them to use
> the maple tree cache instead - it is more modern.
> 
> 

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/8] ASoC: rt700: Use maple tree register cache
      commit: 049a78048e15ab276052d846c9692ea272699644
[2/8] ASoC: rt711: Use maple tree register cache
      commit: 0a5757293339fbbbb627baa7d2da65fd083c7cce
[3/8] ASoC: rt712: Use maple tree register cache
      commit: f438c799aa934fcd9b956083043b6f691bcc8492
[4/8] ASoC: rt715: Use maple tree register cache
      commit: dd08b6ddcb319375b4ee69cd02ce3298ca7608aa
[5/8] ASoC: rt722: Use maple tree register cache
      commit: 799457a3200b0451ca9859c77dd4e863f70ba608
[6/8] ASoC: rt1308: Use maple tree register cache
      commit: 4f69e29ace9dce5f8226bfc99b77b8497d3d3d79
[7/8] ASoC: rt1316: Use maple tree register cache
      commit: 6179a2e84f0b0b353079fe965d321ed25251c996
[8/8] ASoC: rt1318: Use maple tree register cache
      commit: 22691a051377763e6a4e149b7362944253fb434a

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark
Mark Brown June 26, 2023, 1:29 p.m. UTC | #3
On Mon, Jun 26, 2023 at 07:00:31PM +0530, Mukunda,Vijendar wrote:

> With cache type changing to maple tree for SoundWire Codec patch series, we are observing
> rcu warnings with AMD SoundWire stack.

Do you you have 0cc6578048e0980 ("regmap: maple: Drop the RCU read lock
while syncing registers") in your tree when testing?

> Below are the pastebin links for rcu warnings dmesg logs.

> https://pastebin.com/6sadwNCw <https://pastebin.com/6sadwNCw>

Please include at least some of the actual warning in your emails so
they are directly readable.
Mukunda,Vijendar June 26, 2023, 1:30 p.m. UTC | #4
Hello,

With cache type changing to maple tree for SoundWire Codec patch series, we are observing
rcu warnings with AMD SoundWire stack.

Below are the pastebin links for rcu warnings dmesg logs.

https://pastebin.com/6sadwNCw <https://pastebin.com/6sadwNCw>

https://pastebin.com/zwhfUKGf <https://pastebin.com/zwhfUKGf>

Acquiring rcu lock in between register read/writes causes context switch.

In AMD SoundWire manager xfer_msg() callback, we are using read_poll_timeout logic.
Below is the link.
https://elixir.bootlin.com/linux/v6.4-rc7/source/drivers/soundwire/amd_manager.c#L177

As per our understanding, we need to go with busy wait rather than using usleep_range()
which will be invoked by read_poll_timeout() logic.

Could you please suggest us how to fix this issue?

Thanks,
Vijendar
Mukunda,Vijendar June 26, 2023, 2:39 p.m. UTC | #5
On 26/06/23 18:59, Mark Brown wrote:
> On Mon, Jun 26, 2023 at 07:00:31PM +0530, Mukunda,Vijendar wrote:
>
>> With cache type changing to maple tree for SoundWire Codec patch series, we are observing
>> rcu warnings with AMD SoundWire stack.
> Do you you have 0cc6578048e0980 ("regmap: maple: Drop the RCU read lock
> while syncing registers") in your tree when testing?
We have tested with ASoC tree for-next branch code.
This patch is not included in our tree while testing.

We will verify with the patch and let you know our findings.
>> Below are the pastebin links for rcu warnings dmesg logs.
>> https://pastebin.com/6sadwNCw <https://pastebin.com/6sadwNCw>
> Please include at least some of the actual warning in your emails so
> they are directly readable.
Mukunda,Vijendar June 27, 2023, 5:20 a.m. UTC | #6
On 26/06/23 20:09, Mukunda,Vijendar wrote:
> On 26/06/23 18:59, Mark Brown wrote:
>> On Mon, Jun 26, 2023 at 07:00:31PM +0530, Mukunda,Vijendar wrote:
>>
>>> With cache type changing to maple tree for SoundWire Codec patch series, we are observing
>>> rcu warnings with AMD SoundWire stack.
>> Do you you have 0cc6578048e0980 ("regmap: maple: Drop the RCU read lock
>> while syncing registers") in your tree when testing?
> We have tested with ASoC tree for-next branch code.
> This patch is not included in our tree while testing.
>
> We will verify with the patch and let you know our findings.

After inclusion of above-mentioned patch, we are no longer
observing rcu warnings.

Thanks,
Vijendar
>>> Below are the pastebin links for rcu warnings dmesg logs.
>>> https://pastebin.com/6sadwNCw <https://pastebin.com/6sadwNCw>
>> Please include at least some of the actual warning in your emails so
>> they are directly readable.