From: Charles Keepax <ckeepax@opensource.cirrus.com>
To: Tobias Bachmann <tobac@mailbox.org>
Cc: linux-sound@vger.kernel.org,
Richard Fitzgerald <rf@opensource.cirrus.com>,
David Rhodes <david.rhodes@cirrus.com>,
patches@opensource.cirrus.com, Mark Brown <broonie@kernel.org>
Subject: Re: ASoC: cs42l43: SDCA reattach timeout on Dell XPS 14 Panther Lake; chip stuck across distros and kernels; worked initially; still working at hardware level
Date: Fri, 8 May 2026 09:41:10 +0100 [thread overview]
Message-ID: <af2hpsMI1N6NDQG5@opensource.cirrus.com> (raw)
In-Reply-To: <5QsknC2RSUiRut94Zp-HMw@mailbox.org>
On Thu, May 07, 2026 at 08:53:27PM +0200, Tobias Bachmann wrote:
> On Thur, May 07, 2026, 05:35:37PM CEST, Charles Keepax wrote:
> > Yeah I am afraid this looks like a hardware problem, enumerating on
> > the SoundWire bus is pretty much only dependant on power rails.
> >
> > As you say there is a tiny hope the device has got into a weird state
> > but isn't reset on a reboot. However, given it looks from the log like
> > the amps were reset:
> >
> > [ 14.603448] cs35l56 sdw:0:2:01fa:3557:01:2: Cirrus Logic CS35L57
> > Rev B2 OTP1 fw:4.2.1 (patched=0)
> >
> > That patched=0 means the firmware has been wiped and that only happens
> > on a reset and as far as I know the resets are tied together on this
> > model. The very very long shot would be to let the battery run down
> > and leave the device for a bit to try and super make sure the power
> > rails went down which would also fully reset the device. But it is
> > definitely a long shot.
>
> I figured as much. I can take this up with Dell as a hardware issue, but
> before I do, I wanted to ask about something architecturally:
>
> Windows (or the Cirrus driver?) apparently treats the speakers and the
> headphone jack as independent functional paths and can drive the
> speakers fine despite the jack being non-responsive. The Linux driver
> currently appears to bring up the sound hardware as a whole, which
> means the headphone subfunction failing to reattach kills the entire
> card initialization, including the still-healthy amps.
>
> Would it be reasonable to consider a degraded-mode behavior where the
> driver proceeds with partial initialization when one subfunction fails,
> as long as others remain reachable? My particular case is likely
> hardware degradation, but I imagine similar failures could occur from
> manufacturing defects, physical damage to the jack contact, or other
> single-subfunction faults that don't render the whole chip unusable. The
> current behavior makes such a laptop entirely silent in Linux while
> still usable in Windows, which seems like a worse outcome than
> necessary.
>
> I realize this might be a significant change and there may be good
> reasons it's not feasible with the current architecture. Happy to test
> any patches.
Yeah mostly this is an artifact of how the two operating systems
have structure the audio subsystem. Windows has more of a
collective of drivers, Linux is slightly more monolithic.
Changing things at that level is a pretty serious endeavour. I
would agree in this case the windows behaviour is slightly nicer
but its non-trivial for such a niche case.
However, that said we (and others) have been trying to get the
audio system to load more dynamically, the intention here has
been to not require as much work to support new models. But I
guess one could perhaps "abuse" this for your situation. The
current code creates the soundcard based mostly on what is
present in the ACPI. So if one removed the codec from the ACPI I
believe the machine driver would create a soundcard with just
speakers in theory. The simplest way to do this would probably be
to add an SSDT that adds a _STA method to the codec returning
zero, this would tell the kernel that the device is disabled and
it would ignore it.
Thanks,
Charles
next prev parent reply other threads:[~2026-05-08 8:41 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-06 19:38 ASoC: cs42l43: SDCA reattach timeout on Dell XPS 14 Panther Lake; chip stuck across distros and kernels; worked initially; still working at hardware level Tobias Bachmann
2026-05-07 9:20 ` Charles Keepax
2026-05-07 12:32 ` Tobias Bachmann
2026-05-07 15:35 ` Charles Keepax
2026-05-07 18:53 ` Tobias Bachmann
2026-05-08 8:41 ` Charles Keepax [this message]
2026-05-08 14:56 ` Tobias Bachmann
2026-05-08 15:16 ` Charles Keepax
2026-05-08 15:21 ` Charles Keepax
2026-05-08 15:45 ` Tobias Bachmann
2026-05-08 15:56 ` Charles Keepax
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=af2hpsMI1N6NDQG5@opensource.cirrus.com \
--to=ckeepax@opensource.cirrus.com \
--cc=broonie@kernel.org \
--cc=david.rhodes@cirrus.com \
--cc=linux-sound@vger.kernel.org \
--cc=patches@opensource.cirrus.com \
--cc=rf@opensource.cirrus.com \
--cc=tobac@mailbox.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox