[PATCH v2 5/5] ARM: dts: r8a7794: add sound support
Sergei Shtylyov
sergei.shtylyov at cogentembedded.com
Fri Feb 12 11:08:54 PST 2016
On 02/12/2016 09:43 PM, Simon Horman wrote:
>>>> Sorry for my un-ordered response
>>>>
>>>>> Define the generic R8A7794 part of the sound device node.
>>>>> This sound device is a complex one and comprises the Audio Clock Generator
>>>>> (ADG), Sampling Rate Converter Unit (SCU), Serial Sound Interface [Unit]
>>>>> (SSI[U]), and Audio DMAC-Peripheral-Peripheral.
>>>>> It is up to the board file to enable the device.
>>>>>
>>>>> This patch is based on the R8A7791 sound work by Kuninori Morimoto.
>>>>>
>>>>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov at cogentembedded.com>
>>>> (snip)
>>>>> + rcar_sound,src {
>>>>> + src1: src at 1 {
>>>>> + interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
>>>>> + dmas = <&audma0 0x87>, <&audma0 0x9c>;
>>>>> + dma-names = "rx", "tx";
>>>>> + };
>>>>> + src2: src at 2 {
>>>>> + interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
>>>>> + dmas = <&audma0 0x89>, <&audma0 0x9e>;
>>>>> + dma-names = "rx", "tx";
>>>>> + };
>>>>> + src3: src at 3 {
>>>>> + interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
>>>>> + dmas = <&audma0 0x8b>, <&audma0 0xa0>;
>>>>> + dma-names = "rx", "tx";
>>>>> + };
>>>>> + src4: src at 4 {
>>>>> + interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
>>>>> + dmas = <&audma0 0x8d>, <&audma0 0xb0>;
>>>>> + dma-names = "rx", "tx";
>>>>> + };
>>>>> + src5: src at 5 {
>>>>> + interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
>>>>> + dmas = <&audma0 0x8f>, <&audma0 0xb2>;
>>>>> + dma-names = "rx", "tx";
>>>>> + };
>>>>> + src6: src at 6 {
>>>>> + interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
>>>>> + dmas = <&audma0 0x91>, <&audma0 0xb4>;
>>>>> + dma-names = "rx", "tx";
>>>>> + };
>>>>> + };
>>>>
>>>> I think this can't work correctly, because driver is assuming
>>>> DT has all channles (from 0). (see linux/sound/soc/sh/rcar/src.c :: rsnd_src_probe)
>>>> Can you adds dummy src0 with some comments ? or fix src.c driver ?
>>>
>>> I would prefer the driver to be fixed (I had a similar patchset locally
>>> and I found it doesn't work).
>>
>> You mean you had R8A7794 sound patch set too?
>
> Yes, I was working on it recently.
> I suppose we should coordinate these things in future to avoid
> duplicated effort.
Yes, seems a good idea now. :-)
>>> The reason is that DT should describe
>>> the hardware rather than the current state of the software.
>>
>> Yes, of course. Just tell me do I have to fix the driver *before* this
>> patch set is accepted?
> I did not entirely get to the bottom of the problem, but I think that at
> the very least something needs to be done about the for_each_rsnd_src()
> loop in rsnd_src_probe.
It's not that it replies to my question. :-)
So you're looking at this issue yourself?
> My, obviously not satisfactory, hack around there being no src0 was as follows.
>
> diff --git a/sound/soc/sh/rcar/src.c b/sound/soc/sh/rcar/src.c
> index 68b439ed22d7..58a447b0785b 100644
> --- a/sound/soc/sh/rcar/src.c
> +++ b/sound/soc/sh/rcar/src.c
> @@ -1072,7 +1072,7 @@ int rsnd_src_probe(struct platform_device *pdev,
>
> for_each_rsnd_src(src, priv, i) {
Which tree is this? The recent devel branch of renesas.git has
for_each_child_of_node() here...
> snprintf(name, RSND_SRC_NAME_SIZE, "%s.%d",
> - SRC_NAME, i);
> + SRC_NAME, i + 1);
>
> clk = devm_clk_get(dev, name);
> if (IS_ERR(clk))
MBR, Sergei
More information about the linux-arm-kernel
mailing list