All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrey Golovko <andrey.golovko@gmail.com>
To: Antoine Monnet <antoine@montane.tech>, linux-sound@vger.kernel.org
Cc: Shenghao Ding <shenghao-ding@ti.com>, Kevin Lu <kevin-lu@ti.com>,
	Baojun Xu <baojun.xu@ti.com>, Sen Wang <sen@ti.com>,
	Mark Brown <broonie@kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Vijendar Mukunda <Vijendar.Mukunda@amd.com>,
	Vinod Koul <vkoul@kernel.org>,
	Bard Liao <yung-chuan.liao@linux.intel.com>,
	Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>,
	Robin Everaars <robineveraars@pm.me>,
	Ville Saarinen <wiza@saarinenkoti.fi>,
	linux-kernel@vger.kernel.org
Subject: Re: ASoC: tas2783-sdw: no stereo channel split for two mono amps -> mono output (AMD ACP SoundWire, ASUS ProArt PX13)
Date: Thu, 13 Aug 2026 00:33:29 +0300	[thread overview]
Message-ID: <cc1960d677a7f5a5c86d48c3037c0aa6@gmail.com> (raw)
In-Reply-To: <778f017a-e1c2-4ab6-9968-6e4c6285180b@montane.tech>

Antoine,

your patch from 27 July is still the only working stereo fix for these
boards, and it is now the only one left: Ville withdrew his series on
11 August and asked that the tags go to Robin and to you, and nobody
else has posted anything. It has never been sent as a formal [PATCH],
so as things stand it cannot be applied by anyone.

I think it should be, and I would like to know how you want that to
happen.

Where it has been tested
========================

  - your machine, ASUS ProArt PX13 HN7306EA (the original report);
  - mine, ASUS ProArt PX13 HN7306EAC: Tested-by sent on 7 August, and
    re-confirmed yesterday on a current broonie/sound for-next kernel --
    speaker-test -c2 -s1 is the physically left speaker, -s2 the right,
    with no audible level imbalance between them;
  - Robin's board, same amp pair, where the one-channel-mask approach was
    independently established and measured.

Robin has asked for Reported-by: and Suggested-by: on the channel-mask
patch, since his 5 August report and the follow-up measurement
established both the approach and the positional behaviour of
sdw_compute_slave_ports().

Two options
===========

Either you post it yourself as a proper [PATCH] -- which I would prefer,
it is your work -- or, if you would rather not spend time on it, I am
happy to send it with your authorship intact:

  From: Antoine Monnet <antoine@montane.tech>
  Reported-by: Robin Everaars <robineveraars@pm.me>
  Suggested-by: Robin Everaars <robineveraars@pm.me>
  Tested-by: Andrey Golovko <andrey@golovko.me>

Just say which, and if the second, whether you want anything changed
first. I will not send anything under your name without your word.

One thing worth putting in the changelog
========================================

The name_prefix -> BIT(n) mapping reads as if the bit chose the channel,
and it does not. As Robin measured, inverting the two masks between the
amps does not move the audio: sdw_compute_slave_ports() advances the
payload offset by hweight32(ch_mask) and never looks at which bit is
set, so a one-channel mask fixes mono by defeating mirror mode, and L/R
then follows codec order in the DAI link, which on these boards happens
to match the speakers.

That is worth a sentence in the commit message so nobody later reads the
mapping as an ABI promise. It does not make the patch less correct -- the
split it produces is right on three machines -- but it is the honest
description of why it works.

For completeness on the SDCA-correct alternative that Pierre-Louis raised:
Ville measured that UDMPU23 ClusterIndex is simply not implemented on his
TAS2783 revision, answering COMMAND_IGNORED to writes and to a plain read
alike, so that route is closed at least on that silicon. TI have not
commented on the intended mechanism.

Unrelated, but you followed it: the "no audio after s2idle resume" problem
you reported in July is understood and patched. After S0i3 the amplifier
comes back with PDE23 at PS3, and a data port cannot complete channel
preparation while the Function is powered down; the power-up only ever
happened in hw_params(), which a resumed stream never calls again. Patch:

  https://lore.kernel.org/all/20260813001500.9218-1-andrey.golovko@gmail.com/

Thanks,
Andrey

  parent reply	other threads:[~2026-08-12 21:33 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-19  0:53 ASoC: tas2783-sdw: no stereo channel split for two mono amps -> mono output (AMD ACP SoundWire, ASUS ProArt PX13) Antoine Monnet
2026-07-27  8:48 ` Andrey Golovko
2026-07-27 11:21   ` Antoine Monnet
2026-08-07  5:21     ` Andrey Golovko
2026-08-07  9:19       ` Pierre-Louis Bossart
2026-08-12 21:33     ` Andrey Golovko [this message]
2026-08-13  8:56       ` Ville Saarinen
2026-08-13  9:38         ` Charles Keepax
2026-08-13 14:20       ` Antoine Monnet

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cc1960d677a7f5a5c86d48c3037c0aa6@gmail.com \
    --to=andrey.golovko@gmail.com \
    --cc=Vijendar.Mukunda@amd.com \
    --cc=antoine@montane.tech \
    --cc=baojun.xu@ti.com \
    --cc=broonie@kernel.org \
    --cc=kevin-lu@ti.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=pierre-louis.bossart@linux.dev \
    --cc=robineveraars@pm.me \
    --cc=sen@ti.com \
    --cc=shenghao-ding@ti.com \
    --cc=vkoul@kernel.org \
    --cc=wiza@saarinenkoti.fi \
    --cc=yung-chuan.liao@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.