2022-04-07 19:42:01

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH] ASoC: rt5682: Add jack kcontrol

On Fri, Apr 08, 2022 at 12:46:04AM +0900, Akihiko Odaki wrote:
> On 2022/04/08 0:09, Mark Brown wrote:

> > Why not use DAPM for the jack? Note that normally the jack is part of
> > the machine driver not the CODEC - there's no way the CODEC can know how
> > it's been wired in on any given system.

> It seems it is an unsual case where the codec knows the source of the jack.
> RT5682 has interrupts and registers for the jack; see e.g.
> rt5682_button_detect in sound/soc/codecs/rt5682.c for details.

That bit is very common but there's still machine specific aspects - is
the required hardware wired up, if it is wired up how exactly are things
wired (separate microphone jack, headset jack, one of many jacks?). A
lot of the machine driver part of things is about labeling things so
that it can be displayed in a way that's easy to connect to the physical
system. Generally the machine driver would define a jack and then
connect the CODEC to it.


Attachments:
(No filename) (974.00 B)
signature.asc (499.00 B)
Download all attachments

2022-04-07 21:08:25

by Akihiko Odaki

[permalink] [raw]
Subject: Re: [PATCH] ASoC: rt5682: Add jack kcontrol

On 2022/04/08 1:00, Mark Brown wrote:
> On Fri, Apr 08, 2022 at 12:46:04AM +0900, Akihiko Odaki wrote:
>> On 2022/04/08 0:09, Mark Brown wrote:
>
>>> Why not use DAPM for the jack? Note that normally the jack is part of
>>> the machine driver not the CODEC - there's no way the CODEC can know how
>>> it's been wired in on any given system.
>
>> It seems it is an unsual case where the codec knows the source of the jack.
>> RT5682 has interrupts and registers for the jack; see e.g.
>> rt5682_button_detect in sound/soc/codecs/rt5682.c for details.
>
> That bit is very common but there's still machine specific aspects - is
> the required hardware wired up, if it is wired up how exactly are things
> wired (separate microphone jack, headset jack, one of many jacks?). A
> lot of the machine driver part of things is about labeling things so
> that it can be displayed in a way that's easy to connect to the physical
> system. Generally the machine driver would define a jack and then
> connect the CODEC to it.

Whether the required hardware wired is told from the user of the codec
via jack's type specified with snd_soc_card_jack_new(). The other
details live in the codec.