[PATCH 5/6] ASoC: fsl_ssi: instantiate AC'97 CODEC

Markus Pargmann mpa at pengutronix.de
Mon Aug 3 03:48:43 AEST 2015


On Fri, Jul 31, 2015 at 04:39:20PM +0200, Maciej S. Szmigiero wrote:
> On 31.07.2015 07:46, Markus Pargmann wrote:
> > On Thu, Jul 30, 2015 at 04:35:23PM +0200, Maciej S. Szmigiero wrote:
> >> Instantiate AC'97 CODEC in fsl_ssi driver AC'97 mode.
> >>
> >> Signed-off-by: Maciej Szmigiero <mail at maciej.szmigiero.name>
> >> ---
> >>  sound/soc/fsl/fsl_ssi.c |   21 +++++++++++++++++++++
> >>  1 files changed, 21 insertions(+), 0 deletions(-)
> >>
> >> diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c
> >> index 154bcf6..8e5ff5e 100644
> >> --- a/sound/soc/fsl/fsl_ssi.c
> >> +++ b/sound/soc/fsl/fsl_ssi.c
> >> @@ -1460,6 +1460,27 @@ done:
> >>  		_fsl_ssi_set_dai_fmt(&pdev->dev, ssi_private,
> >>  				     ssi_private->dai_fmt);
> >>  
> >> +	if (fsl_ssi_is_ac97(ssi_private)) {
> >> +		u32 ssi_idx;
> >> +
> >> +		ret = of_property_read_u32(np, "cell-index", &ssi_idx);
> > 
> > This property is not set anywhere in the imx* DTs.
> 
> That's right, but it is documented as required property in sound/fsl,ssi.txt:
> > Required properties:
> > (..)
> > - cell-index:       The SSI, <0> = SSI1, <1> = SSI2, and so on.
> 
> > 
> >> +		if (ret) {
> >> +			dev_err(&pdev->dev, "cannot get SSI index property\n");
> >> +			goto error_sound_card;
> >> +		}
> >> +
> >> +		ssi_private->pdev =
> >> +			platform_device_register_data(NULL,
> >> +					"ac97-codec", ssi_idx, NULL, 0);
> > 
> > If you really want to create a device at this point you should use
> > PLATFORM_DEVID_AUTO. I would prefer something where this is created in
> > DT. On the other side it is a discoverable bus..
> 
> In the original implementation the codec was instantiated in DT but
> the feedback was that this is wrong since devices on discoverable
> buses shouldn't be in DT.
> 
> The platform device index is based on SSI index since the sound
> card driver (fsl-asoc-card) has to know CODEC device name to identify
> it in DAI links - as the only identification options seem to be either
> DT node of CODEC or its device name.
> 
> That's why the (platform) device name has to be deterministic
> if there is no mechanism to pass it from controller driver
> to sound card driver.

Thanks for clarification. I am not really happy with using this
cell-index as the whole information that should be necessary is already
contained in the memory address range given. The SSI units are otherwise
identical in hardware, so cell-index feels like some arbitrary
description that is used in the Reference Manual and for software.

However I don't have a better idea how to solve this at the moment and
as it is listed as required property and not a new DT binding it can be
used.

Best regards,

Markus

> 
> > Regards,
> > 
> > Markus
> 
> Best regards,
> Maciej Szmigiero
> 
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20150802/1c3c37d5/attachment.sig>


More information about the Linuxppc-dev mailing list