Hi Lars, Mark

My previous mail was missing point...

> > > In my opinion the flags are just as much a hack as the pointer. In an 
> > > ideal
> > > setup the component does not need to know what type it is. The reason why 
> > > we
> > > need this in ASoC is because the framework has grown over time and we need
> > > to support legacy code.
> > 
> > Yes, the pointer is essentially already a flag - having a separate flag
> > really doesn't add a huge amount here.  What we need to do is get rid of
> > the need for the flag entirely.
> 
> I can agree to remove flag entirely, and actually it is my final target.
> But we need many steps for it IMO.
> 
> I would like to cleanup (= remove random pointer) as 1st step.
> My 1st concern is that each struct which want to have codec pointer has
> codec pointer randomly.
> And it makes component cleanup difficult IMO.
> 
> 2nd concern is rtd has *codec, *platform, and *dai (for cpu/codec).
> These are different type of pointer.
> If platform can have dummy *dai, we can do like below ?
> 
>       struct snd_soc_pcm_runtime {
>               ...
>               struct snd_soc_dai *cpu;
>               struct snd_soc_dai *codec;
>               struct snd_soc_dai *platform;
>               ...
>       }
> 
> Here, we can get original *codec or *platform by
> using component_to_xxx, because dai already have *component;
> It can be more cleanup ?

I mean current ALSA SoC has duplicate pointer,
and using different type of pointer for CPU/Codec/Platform/Card.
I agree that we would like to have flag-less style.

If my understanding was correct, we can more cleanup struct
relationship if we can exchange pointer style.
I think this is related to flag-less style.

For example, current rtd <-> CPU/Codec/Platform relationship
is using different type of pointer.
It makes flag-less style difficult.
But we can use same type of pointer if we can have dummy dai on platform,
like above idea. Similar idea is for component.

I think this kind of cleanup is needed, and it makes hotplug support easier.
Otherwise, hotplug support will add more random pointer on each struct,
and it makes cleanup more difficult.

# Here, I said "flag-less" style, but maybe we need flag somehow to keep
# current style ? For example I don't think we can have flag-less cristal-clear
# style for CODEC-CODEC support or DPCM etc ...

Reply via email to