alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: "Martin Povišer" <povik@cutebit.org>
To: Mark Brown <broonie@kernel.org>
Cc: devicetree@vger.kernel.org, alsa-devel@alsa-project.org,
	"Sven Peter" <sven@svenpeter.dev>,
	linux-kernel@vger.kernel.org, "Hector Martin" <marcan@marcan.st>,
	"Takashi Iwai" <tiwai@suse.com>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Mark Kettenis" <kettenis@openbsd.org>,
	"Martin Povišer" <povik+lin@cutebit.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>
Subject: Re: [RFC PATCH 0/5] Apple Macs machine-level ASoC driver
Date: Fri, 22 Apr 2022 12:43:30 +0200	[thread overview]
Message-ID: <DB0255C3-C9EC-4EFA-A377-C4BB1073D9B3@cutebit.org> (raw)
In-Reply-To: <YkXKmxJ0R3qpUoH4@sirena.org.uk>


> On 31. 3. 2022, at 17:36, Mark Brown <broonie@kernel.org> wrote:
> 
> On Thu, Mar 31, 2022 at 05:04:32PM +0200, Martin Povišer wrote:
>>> On 31. 3. 2022, at 16:18, Mark Brown <broonie@kernel.org> wrote:
> 
>>> Yes, having two devices driving the bus at the same time wouldn't be
>>> great.  How is the TDM slot selection for the signals done in the
>>> hardware, I'm not seeing anything immediately obvious in the driver?
>>> I'd have thought that things would be implemented such that you could
>>> implement speaker protection on all speakers simultaneously but perhaps
>>> not.
> 
>> I don’t know. I would have to go study the details of this. Should I see
>> if I can find a combination of ‘ASI1 Sel’ ‘VSENSE’ ‘ISENSE’ settings
>> that would lead to driver conflict on one of the models, or is there
>> a chance we could hide those controls just on the basis of ‘it doesn’t
>> do anything usable and is possibly dangerous’?
> 
> If ISENSE and VSENSE output are controlled by the same mux as routing
> then we should lock one of the controls out for at least stereo devices
> (it might be a good idea to check if the output is actually high Z when
> ISENSE and VSENSE are off rather than just driving zeros, if not it
> definitely has to be the routing control).  My instinct is that it's
> better to preserve the ability to implement speaker protection in future
> since that is something that'd be broadly useful, especially if someone
> comes up with a generic speaker protection implementation in which case
> there should be an awful lot of systems out there which could benefit. 

Sorry for having put this on hold for a while.

I looked in the TAS2770 and TAS2764 drivers/datasheets, and to answer
the questions we had:

 * VSENSE/ISENSE output slots are configured independently of audio samples
   routing. Kernel drivers configure the slots based on the 'ti,imon-slot-no'
   and 'ti,vmon-slot-no' properties of devicetree.

 * By default codecs transmit Hi-Z for duration of unused slots.

So once we supply the devicetree props it should be electrically sound
under any configuration of userspace knobs.

One final thought on the playback routing controls: On systems with >2
speakers, the codecs need to be assigned slots through set_tdm_slot.
The macaudio driver RFCed here assigns a single slot to each speaker,
making the effect of each speaker's routing control this:

  'I2C offset' -- uses a random slot

  'Left' 'Right' 'LeftRight' -- uses the single slot we configured

I suppose I better assign two slots to speakers in each left-right pair
of the same kind (e.g. woofer 1, woofer 2, tweeter). This way the
routing control will mimic its behavior from simple stereo systems but
replicated within each left-right pair.  (I would prefer to hide the
controls altogether, but as I learned that hiding things unless proven
dangerous is an ASoC non-goal, this way I can make the controls do
something interesting.)

Martin


  reply	other threads:[~2022-04-22 13:34 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-31  0:04 [RFC PATCH 0/5] Apple Macs machine-level ASoC driver Martin Povišer
2022-03-31  0:04 ` [RFC PATCH 1/5] dt-bindings: sound: Add Apple Macs sound system Martin Povišer
2022-03-31  0:04 ` [RFC PATCH 2/5] HACK: ASoC: Add card->filter_controls hook Martin Povišer
2022-03-31 11:34   ` Mark Brown
2022-03-31  0:04 ` [RFC PATCH 3/5] HACK: ASoC: Tolerate N-cpus-to-M-codecs links Martin Povišer
2022-04-04 12:28   ` Mark Brown
2022-04-22 14:06     ` Martin Povišer
2022-04-25 12:25       ` Mark Brown
2022-04-25 12:34         ` Martin Povišer
2022-04-25 12:55           ` Mark Brown
2022-04-25 13:11             ` Martin Povišer
2022-04-25 13:46               ` Mark Brown
2022-04-25 13:55                 ` Martin Povišer
2022-03-31  0:04 ` [RFC PATCH 4/5] ASoC: Introduce snd_soc_of_get_dai_link_cpus Martin Povišer
2022-03-31  0:04 ` [RFC PATCH 5/5] ASoC: Add macaudio machine driver Martin Povišer
2022-03-31 11:59   ` Mark Brown
     [not found]     ` <4651D426-BA1A-418F-90E5-278C705DA984@cutebit.org>
2022-03-31 12:56       ` Mark Brown
2022-03-31 12:34 ` [RFC PATCH 0/5] Apple Macs machine-level ASoC driver Mark Brown
2022-03-31 13:28   ` Hector Martin
2022-03-31 14:33     ` Mark Brown
     [not found]   ` <CCE4A06E-6D6F-457D-B3C5-C36209BF38D3@cutebit.org>
2022-03-31 14:18     ` Mark Brown
     [not found]       ` <6D199EAB-FE14-4030-96A7-2E0E89D25FAB@cutebit.org>
2022-03-31 15:36         ` Mark Brown
2022-04-22 10:43           ` Martin Povišer [this message]
2022-04-22 11:19             ` Mark Brown
2022-04-22 11:28               ` Martin Povišer
2022-04-22 11:33                 ` Mark Brown
2022-04-22 11:44                   ` Martin Povišer
2022-04-22 12:22                     ` Mark Brown
2022-04-22 12:36                       ` Martin Povišer
2022-04-22 12:44                         ` Mark Brown
2022-04-22 12:53                           ` Martin Povišer
2022-04-22 13:06                             ` Mark Brown
2022-04-22 13:59                               ` Martin Povišer
2022-04-05  9:31 ` (subset) " Mark Brown

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=DB0255C3-C9EC-4EFA-A377-C4BB1073D9B3@cutebit.org \
    --to=povik@cutebit.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=kettenis@openbsd.org \
    --cc=krzk+dt@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcan@marcan.st \
    --cc=povik+lin@cutebit.org \
    --cc=robh+dt@kernel.org \
    --cc=sven@svenpeter.dev \
    --cc=tiwai@suse.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).