All of lore.kernel.org
 help / color / mirror / Atom feed
From: Charles Keepax <ckeepax@opensource.cirrus.com>
To: Ville Saarinen <wiza@saarinenkoti.fi>
Cc: Andrey Golovko <andrey.golovko@gmail.com>,
	Antoine Monnet <antoine@montane.tech>,
	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>,
	linux-sound@vger.kernel.org, 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 10:38:03 +0100	[thread overview]
Message-ID: <an2Qe72QRRfYZuGa@opensource.cirrus.com> (raw)
In-Reply-To: <20260813085558.64828-1-wiza@saarinenkoti.fi>

On Thu, Aug 13, 2026 at 08:56:26AM +0000, Ville Saarinen wrote:
> > 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.
> 
> Since this is headed for a changelog: the conclusion is right, but the
> stated reason was not something I had measured. COMMAND_IGNORED was my
> word, in an earlier mail, and it was an overstatement -- the host never
> sees it. find_response_code() (drivers/soundwire/bus.c) maps
> SDW_CMD_IGNORED to -ENODATA, and a control the peripheral does not
> implement arrives as -ENODATA too, so the return code cannot tell a
> deferral from an absence.
> 
> Charles, this is why you are on Cc: the same assumption is the premise
> of the .deferrable annotation on UDMPU23 Cluster Index in the patch you
> picked up, and it does not survive the measurement below.
> 
> The discriminator is Entity 0 Function Status bit 7 (FUNCTION_BUSY),
> which a deferred command sets until the Function finishes. I have now
> read it, on this board's two amps, via the SoundWire debugfs raw command
> interface -- sdw_nread_no_pm()/sdw_nwrite_no_pm(), so the driver's
> regmap is not in the path and readable_reg/mbq_size cannot colour the
> result:
> 
>   UDMPU23 Cluster Index, read:            -ENODATA
>   UDMPU23 Cluster Index, write:           -ENODATA
>   Function Status, 20 reads after each:   0x63, unchanged, ~200 us/read
>                                           FUNCTION_BUSY never set
> 
> in three states -- idle at PDE23 PS3, during playback at PS0, and forced
> to PS0 through PDE23 -- and identically on both amps.
> 
> Controls, so the result is falsifiable in both directions: PDE23 Actual
> Power State reads correctly, and a PDE23 Requested Power State write is
> accepted and moves Actual to PS0, so reads and writes both reach the
> device. A deliberately absent entity (0x3D) returns -ENODATA in every
> one of those states, indistinguishable from Cluster Index.
> 
> So the control is not deferring, powered or unpowered, on read or on
> write. "Not implemented" remains an inference rather than a datasheet,
> and a deferral shorter than one Function Status round trip (~200 us)
> would have been missed, but the deferral reading is the one thing this
> does rule out -- and that reading is what the .deferrable annotation
> encodes.

I am not sure I totally follow this, so apologies if I am getting
the wrong end of the stick, but this sounds like the solution
here is don't use a register in the driver that isn't implemented
in the device.

Thanks,
Charles

  reply	other threads:[~2026-08-13  9:38 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
2026-08-13  8:56       ` Ville Saarinen
2026-08-13  9:38         ` Charles Keepax [this message]
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=an2Qe72QRRfYZuGa@opensource.cirrus.com \
    --to=ckeepax@opensource.cirrus.com \
    --cc=Vijendar.Mukunda@amd.com \
    --cc=andrey.golovko@gmail.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.