Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754354AbbDUKPP (ORCPT ); Tue, 21 Apr 2015 06:15:15 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:36078 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1752490AbbDUKPO (ORCPT ); Tue, 21 Apr 2015 06:15:14 -0400 X-Listener-Flag: 11101 Subject: Re: [RESEND RFC PATCH 1/3] ASoC: mediatek: Add binding support for AFE driver From: Koro Chen To: Sascha Hauer CC: Mark Brown , , , , , , , , , , , , In-Reply-To: <20150421094926.GU6325@pengutronix.de> References: <1428653649-38200-1-git-send-email-koro.chen@mediatek.com> <1428653649-38200-2-git-send-email-koro.chen@mediatek.com> <20150418173407.GE26185@sirena.org.uk> <20150420043747.GH6325@pengutronix.de> <20150420204849.GJ14892@sirena.org.uk> <20150421094926.GU6325@pengutronix.de> Content-Type: text/plain; charset="UTF-8" Date: Tue, 21 Apr 2015 18:15:06 +0800 Message-ID: <1429611306.23823.52.camel@mtksdaap41> MIME-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-MTK: N Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3074 Lines: 56 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 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/