linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: lars@metafoo.de (Lars-Peter Clausen)
To: linux-arm-kernel@lists.infradead.org
Subject: [alsa-devel] [PATCH 1/4] ASoC: rockchip: add rockchip machine driver
Date: Fri, 15 May 2015 22:40:59 +0200	[thread overview]
Message-ID: <555659DB.9010204@metafoo.de> (raw)
In-Reply-To: <CAEUnVG5nkagx7CZC3t=-oOAyXOBaxxVynBxaGMf0NJpfr9ZVbA@mail.gmail.com>

On 05/14/2015 01:11 AM, Dylan Reid wrote:
> On Wed, May 13, 2015 at 10:21 AM, Dylan Reid <dgreid@chromium.org> wrote:
>> On Wed, May 13, 2015 at 9:42 AM, Mark Brown <broonie@kernel.org> wrote:
>>> On Wed, May 13, 2015 at 09:23:01PM +0800, zhengxing wrote:
>>>> On 2015?05?13? 03:22, Mark Brown wrote:
>>>
>>>>> Is it not possible to extend simple card to handle your use cases?
>>>>> Given the very generic naming and the fact that things like jack
>>>>> detection and so on should depend on the CODEC and board usually rather
>>>>> than on the SoC it doesn't sound like this is Rockchip specific.
>>>
>>>>> This also looks like you're reimplementing some device model enumeration
>>>>> stuff which probably shouldn't be happening but let's understand the
>>>>> problem you're trying to solve here before going too far into the code.
>>>
>>>> Because we are trying to bring rt5650 in the project, so we intend to
>>>> describe supported codecs with DTS via only a rockchip machine driver file,
>>>> others remain pre-implement(like max98090 / rt5645 that vendor machine
>>>> driver).
>>>
>>> I don't undertand what you're saying here, sorry - why is this not just
>>> a case of writing multiple machine drivers?
>>
>> I don't understand this either.  I'd think the best solution is
>> simple-card, configured through DTS for each device.
>>
>>>
>>>> I communicated with Dylan, and he told me that the jack detection is an
>>>> issue in the simple-card, and suggested we are better to send them at
>>>> present.
>>>
>>> But what are these issues?
>>
>> The issue I was referring to when I spoke with rock chip was the need
>> to pass the jack simple-card creates to the headset chip or codec.  We
>> need a way to specify a device like a tsa227e or rt5650 to pass the
>> jack to, which events are supported by the jack, and a generic API for
>> passing the jack.
>
> I'm having some trouble envisioning how to pass the jack to the
> headset chip in a generic way.  A callback could be added to
> snd_soc_component_driver, or a snd_soc_headset_driver could be added.
> The headset_drive would fit the ts3a227e well, but not the rt5645
> which is also a full blown codec.

Yea, our current jack detection code is quite rudimentary when it comes to 
writing generic code.

I think the proper way to support this is come up with the concept of jack 
detection providers and consumers. A component can register a jack detection 
provider just like it can register a DAI. And then in the board driver you'd 
just link the jack detection logic to the jack using the usual approach, 
which is also used for DAIs (e.g. of node or device name). The core would 
then take care of calling a enable callback or whatever is required to setup 
the jack detection logic in the driver.

This would also nicely solve the issue with the GPIO jack detectors, where 
we currently can't really handle -EPROBE_DEFER. The GPIO would be requested 
by a jack detection provider which can request them before the card is 
registered rather than having to do the requesting in the card's init callback.

- Lars

  parent reply	other threads:[~2015-05-15 20:40 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-12  9:26 [PATCH 0/4] ASoC: rockchip: add rockchip machine driver Xing Zheng
2015-05-12  9:26 ` [PATCH 1/4] " Xing Zheng
2015-05-12 19:22   ` Mark Brown
2015-05-13 13:23     ` zhengxing
2015-05-13 16:42       ` Mark Brown
2015-05-13 17:21         ` Dylan Reid
2015-05-13 23:11           ` Dylan Reid
2015-05-14  2:22             ` zhengxing
2015-05-15 20:40             ` Lars-Peter Clausen [this message]
2015-05-19 11:16               ` [alsa-devel] " Mark Brown
2015-05-19 16:37                 ` Dylan Reid
2015-05-21 11:10                   ` Mark Brown
2015-05-12  9:26 ` [PATCH 2/4] ASoC: rockchip: add rockchip machine driver for max98090 Xing Zheng
2015-05-12 19:26   ` Mark Brown
2015-05-13 13:23     ` zhengxing
2015-05-13 16:47       ` Mark Brown
2015-05-12  9:26 ` [PATCH 3/4] ASoC: rockchip: add rockchip machine driver for rt5650/rt5645 Xing Zheng
2015-05-12 19:30   ` Mark Brown
2015-05-12  9:26 ` [PATCH 4/4] ASoC: rockchip-audio-machine: add rockchip machine driver bindings Xing Zheng

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=555659DB.9010204@metafoo.de \
    --to=lars@metafoo.de \
    --cc=linux-arm-kernel@lists.infradead.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;
as well as URLs for NNTP newsgroup(s).