All of lore.kernel.org
 help / color / mirror / Atom feed
From: Koro Chen <koro.chen@mediatek.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Mark Brown <broonie@kernel.org>, <robh+dt@kernel.org>,
	<matthias.bgg@gmail.com>, <perex@perex.cz>, <tiwai@suse.de>,
	<srv_heupstream@mediatek.com>,
	<linux-mediatek@lists.infradead.org>, <galak@codeaurora.org>,
	<lgirdwood@gmail.com>, <devicetree@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <alsa-devel@alsa-project.org>
Subject: Re: [RESEND RFC PATCH 1/3] ASoC: mediatek: Add binding support for AFE driver
Date: Tue, 21 Apr 2015 18:15:06 +0800	[thread overview]
Message-ID: <1429611306.23823.52.camel@mtksdaap41> (raw)
In-Reply-To: <20150421094926.GU6325@pengutronix.de>

On Tue, 2015-04-21 at 11:49 +0200, Sascha Hauer wrote:
> On Mon, Apr 20, 2015 at 09:48:49PM +0100, Mark Brown wrote:
> > On Mon, Apr 20, 2015 at 06:37:47AM +0200, Sascha Hauer wrote:
> > > On Sat, Apr 18, 2015 at 06:34:07PM +0100, Mark Brown wrote:
> > > > On Fri, Apr 10, 2015 at 04:14:07PM +0800, Koro Chen wrote:
> > 
> > > > > +Each external interface (called "IO" in this driver) is presented as a
> > > > > +DAI to ASoC. An IO must be connected via the interconnect to a memif.
> > > > > +The connection paths are configured through the device tree.
> > 
> > > > Why are these connection paths configured via device tree?  I would
> > > > expect that either there would be runtime configurability of these
> > > > things (particularly if loopback configurations within the hardware are
> > > > possible) or we'd just allocate memory interfaces to DAIs automatically
> > > > as DAIs come into use.
> > 
> > > There is a crossbar switch between the memory interfaces and the DAIs.
> > > Not every connection is possible, so not every memory interface can be
> > > used for every DAI. An algorithm choosing a suitable memory interface
> > > must be quite clever, complicated and also SoC dependent (the same but
> > > different hardware is used on MT8135 aswell), so I thought offering a
> > > static configuration via device tree is a good start. Should there be
> > > runtime configuration possible later the device tree settings could
> > > provide a good default.
> > 
> > What exactly do the restrictions look like and how often do they vary in
> > practice (can we get away with just doing a single static setup in the
> > driver)? I'd have thought it should be fairly straightforward to have a
> > table of valid mappings and just pick the first free memory interface?
> 
> I think this could be done. I checked the possible connections in the
> crossbar switch and it seems all memory interfaces can be connected with
> all relevant external interfaces. So indeed the memory interfaces could
> be dynamically allocated instead of statically associated to an
> external interface. There are two problems I see: Some memory interfaces
> are limited in the rates they support, they can only do 8k/16k/32k (for
> speech). How can we know such memory interface should be used? Also
The 2 memif are "DAI" and "MOD_DAI", designed for speech cases, and they
should be only connected to corresponding external interface "DAI/BT"
and "modem", respectively. We don't need to put them into dynamic
allocation. 
> there are two programmable hardware gain blocks which can be inserted to
> the digital audio path using the crossbar switch. There must be some
> mechanism to configure them into different places.
Maybe in DPCM, they can be "widgets", and we can define "routes" and
corresponding controls for them. 
> 
> Sascha
> 



WARNING: multiple messages have this Message-ID (diff)
From: Koro Chen <koro.chen@mediatek.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Mark Brown <broonie@kernel.org>,
	robh+dt@kernel.org, matthias.bgg@gmail.com, perex@perex.cz,
	tiwai@suse.de, srv_heupstream@mediatek.com,
	linux-mediatek@lists.infradead.org, galak@codeaurora.org,
	lgirdwood@gmail.com, devicetree@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, alsa-devel@alsa-project.org
Subject: Re: [RESEND RFC PATCH 1/3] ASoC: mediatek: Add binding support for AFE driver
Date: Tue, 21 Apr 2015 18:15:06 +0800	[thread overview]
Message-ID: <1429611306.23823.52.camel@mtksdaap41> (raw)
In-Reply-To: <20150421094926.GU6325@pengutronix.de>

On Tue, 2015-04-21 at 11:49 +0200, Sascha Hauer wrote:
> On Mon, Apr 20, 2015 at 09:48:49PM +0100, Mark Brown wrote:
> > On Mon, Apr 20, 2015 at 06:37:47AM +0200, Sascha Hauer wrote:
> > > On Sat, Apr 18, 2015 at 06:34:07PM +0100, Mark Brown wrote:
> > > > On Fri, Apr 10, 2015 at 04:14:07PM +0800, Koro Chen wrote:
> > 
> > > > > +Each external interface (called "IO" in this driver) is presented as a
> > > > > +DAI to ASoC. An IO must be connected via the interconnect to a memif.
> > > > > +The connection paths are configured through the device tree.
> > 
> > > > Why are these connection paths configured via device tree?  I would
> > > > expect that either there would be runtime configurability of these
> > > > things (particularly if loopback configurations within the hardware are
> > > > possible) or we'd just allocate memory interfaces to DAIs automatically
> > > > as DAIs come into use.
> > 
> > > There is a crossbar switch between the memory interfaces and the DAIs.
> > > Not every connection is possible, so not every memory interface can be
> > > used for every DAI. An algorithm choosing a suitable memory interface
> > > must be quite clever, complicated and also SoC dependent (the same but
> > > different hardware is used on MT8135 aswell), so I thought offering a
> > > static configuration via device tree is a good start. Should there be
> > > runtime configuration possible later the device tree settings could
> > > provide a good default.
> > 
> > What exactly do the restrictions look like and how often do they vary in
> > practice (can we get away with just doing a single static setup in the
> > driver)? I'd have thought it should be fairly straightforward to have a
> > table of valid mappings and just pick the first free memory interface?
> 
> I think this could be done. I checked the possible connections in the
> crossbar switch and it seems all memory interfaces can be connected with
> all relevant external interfaces. So indeed the memory interfaces could
> be dynamically allocated instead of statically associated to an
> external interface. There are two problems I see: Some memory interfaces
> are limited in the rates they support, they can only do 8k/16k/32k (for
> speech). How can we know such memory interface should be used? Also
The 2 memif are "DAI" and "MOD_DAI", designed for speech cases, and they
should be only connected to corresponding external interface "DAI/BT"
and "modem", respectively. We don't need to put them into dynamic
allocation. 
> there are two programmable hardware gain blocks which can be inserted to
> the digital audio path using the crossbar switch. There must be some
> mechanism to configure them into different places.
Maybe in DPCM, they can be "widgets", and we can define "routes" and
corresponding controls for them. 
> 
> Sascha
> 

WARNING: multiple messages have this Message-ID (diff)
From: koro.chen@mediatek.com (Koro Chen)
To: linux-arm-kernel@lists.infradead.org
Subject: [RESEND RFC PATCH 1/3] ASoC: mediatek: Add binding support for AFE driver
Date: Tue, 21 Apr 2015 18:15:06 +0800	[thread overview]
Message-ID: <1429611306.23823.52.camel@mtksdaap41> (raw)
In-Reply-To: <20150421094926.GU6325@pengutronix.de>

On Tue, 2015-04-21 at 11:49 +0200, Sascha Hauer wrote:
> On Mon, Apr 20, 2015 at 09:48:49PM +0100, Mark Brown wrote:
> > On Mon, Apr 20, 2015 at 06:37:47AM +0200, Sascha Hauer wrote:
> > > On Sat, Apr 18, 2015 at 06:34:07PM +0100, Mark Brown wrote:
> > > > On Fri, Apr 10, 2015 at 04:14:07PM +0800, Koro Chen wrote:
> > 
> > > > > +Each external interface (called "IO" in this driver) is presented as a
> > > > > +DAI to ASoC. An IO must be connected via the interconnect to a memif.
> > > > > +The connection paths are configured through the device tree.
> > 
> > > > Why are these connection paths configured via device tree?  I would
> > > > expect that either there would be runtime configurability of these
> > > > things (particularly if loopback configurations within the hardware are
> > > > possible) or we'd just allocate memory interfaces to DAIs automatically
> > > > as DAIs come into use.
> > 
> > > There is a crossbar switch between the memory interfaces and the DAIs.
> > > Not every connection is possible, so not every memory interface can be
> > > used for every DAI. An algorithm choosing a suitable memory interface
> > > must be quite clever, complicated and also SoC dependent (the same but
> > > different hardware is used on MT8135 aswell), so I thought offering a
> > > static configuration via device tree is a good start. Should there be
> > > runtime configuration possible later the device tree settings could
> > > provide a good default.
> > 
> > What exactly do the restrictions look like and how often do they vary in
> > practice (can we get away with just doing a single static setup in the
> > driver)? I'd have thought it should be fairly straightforward to have a
> > table of valid mappings and just pick the first free memory interface?
> 
> I think this could be done. I checked the possible connections in the
> crossbar switch and it seems all memory interfaces can be connected with
> all relevant external interfaces. So indeed the memory interfaces could
> be dynamically allocated instead of statically associated to an
> external interface. There are two problems I see: Some memory interfaces
> are limited in the rates they support, they can only do 8k/16k/32k (for
> speech). How can we know such memory interface should be used? Also
The 2 memif are "DAI" and "MOD_DAI", designed for speech cases, and they
should be only connected to corresponding external interface "DAI/BT"
and "modem", respectively. We don't need to put them into dynamic
allocation. 
> there are two programmable hardware gain blocks which can be inserted to
> the digital audio path using the crossbar switch. There must be some
> mechanism to configure them into different places.
Maybe in DPCM, they can be "widgets", and we can define "routes" and
corresponding controls for them. 
> 
> Sascha
> 

  parent reply	other threads:[~2015-04-21 10:15 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-10  8:14 [RESEND RFC PATCH 0/3] ASoC: Mediatek: Add support for MT8173 SOC Koro Chen
2015-04-10  8:14 ` [RESEND RFC PATCH 1/3] ASoC: mediatek: Add binding support for AFE driver Koro Chen
2015-04-18 17:34   ` Mark Brown
2015-04-18 17:34     ` Mark Brown
2015-04-20  4:37     ` Sascha Hauer
2015-04-20  4:37       ` Sascha Hauer
2015-04-20  4:37       ` Sascha Hauer
2015-04-20 20:48       ` Mark Brown
2015-04-20 20:48         ` Mark Brown
2015-04-20 20:48         ` Mark Brown
2015-04-21  9:49         ` Sascha Hauer
2015-04-21  9:49           ` Sascha Hauer
2015-04-21  9:49           ` Sascha Hauer
2015-04-21 10:14           ` Mark Brown
2015-04-21 10:14             ` Mark Brown
2015-04-21 10:15           ` Koro Chen [this message]
2015-04-21 10:15             ` Koro Chen
2015-04-21 10:15             ` Koro Chen
2015-04-21 10:56             ` Mark Brown
2015-04-21 10:56               ` Mark Brown
2015-04-22  3:17         ` Koro Chen
2015-04-22  3:17           ` Koro Chen
2015-04-22  3:17           ` Koro Chen
2015-04-30 20:12           ` Mark Brown
2015-04-30 20:12             ` Mark Brown
2015-04-30 20:12             ` Mark Brown
2015-05-04  1:57             ` Koro Chen
2015-05-04  1:57               ` Koro Chen
2015-05-04  1:57               ` Koro Chen
2015-04-10  8:14 ` [RESEND RFC PATCH 2/3] ASoC: mediatek: Add AFE connection control Koro Chen
2015-04-18 17:37   ` Mark Brown
2015-04-18 17:37     ` Mark Brown
2015-04-18 17:37     ` Mark Brown
2015-04-20  4:50     ` Sascha Hauer
2015-04-20  4:50       ` Sascha Hauer
2015-04-20  4:50       ` Sascha Hauer
2015-04-20 20:52       ` Mark Brown
2015-04-20 20:52         ` Mark Brown
2015-04-20 20:52         ` Mark Brown
2015-04-21  5:50         ` Sascha Hauer
2015-04-21  5:50           ` Sascha Hauer
2015-04-21  5:50           ` Sascha Hauer
2015-04-21 10:15           ` Mark Brown
2015-04-21 10:15             ` Mark Brown
2015-04-21 10:15             ` Mark Brown
2015-04-10  8:14 ` [RESEND RFC PATCH 3/3] ASoC: mediatek: Add AFE platform driver Koro Chen
2015-04-18 17:51   ` Mark Brown
2015-04-18 17:51     ` Mark Brown
2015-04-20  6:22     ` Koro Chen
2015-04-20  6:22       ` Koro Chen
2015-04-20  6:22       ` Koro Chen
2015-04-20 20:55       ` Mark Brown
2015-04-20 20:55         ` Mark Brown
2015-04-20 20:55         ` Mark Brown
2015-04-21  2:27         ` Koro Chen
2015-04-21  2:27           ` Koro Chen
2015-04-21  2:27           ` Koro Chen
2015-04-21 10:05           ` Mark Brown
2015-04-21 10:05             ` 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=1429611306.23823.52.camel@mtksdaap41 \
    --to=koro.chen@mediatek.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=galak@codeaurora.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=perex@perex.cz \
    --cc=robh+dt@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=srv_heupstream@mediatek.com \
    --cc=tiwai@suse.de \
    /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.