[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4de9613c-2da4-8d39-6f99-3039811673b8@linux.intel.com>
Date: Wed, 4 Sep 2019 08:31:42 -0500
From: Pierre-Louis Bossart <pierre-louis.bossart@...ux.intel.com>
To: Vinod Koul <vkoul@...nel.org>
Cc: Guennadi Liakhovetski <guennadi.liakhovetski@...ux.intel.com>,
alsa-devel@...a-project.org, linux-kernel@...r.kernel.org,
tiwai@...e.de, broonie@...nel.org, gregkh@...uxfoundation.org,
jank@...ence.com, srinivas.kandagatla@...aro.org,
slawomir.blauciak@...el.com,
Bard liao <yung-chuan.liao@...ux.intel.com>,
Rander Wang <rander.wang@...ux.intel.com>,
Ranjani Sridharan <ranjani.sridharan@...ux.intel.com>,
Liam Girdwood <lgirdwood@...il.com>,
Jaroslav Kysela <perex@...ex.cz>,
Takashi Iwai <tiwai@...e.com>,
Zhu Yingjiang <yingjiang.zhu@...ux.intel.com>,
YueHaibing <yuehaibing@...wei.com>,
Kai Vehmanen <kai.vehmanen@...ux.intel.com>,
Arnd Bergmann <arnd@...db.de>
Subject: Re: [alsa-devel] [RFC PATCH 4/5] ASoC: SOF: Intel: hda: add SoundWire
stream config/free callbacks
On 9/4/19 2:35 AM, Vinod Koul wrote:
> On 22-08-19, 08:53, Pierre-Louis Bossart wrote:
>> Thanks for the review Guennadi
>>
>>>> +static int sdw_config_stream(void *arg, void *s, void *dai,
>>>> + void *params, int link_id, int alh_stream_id)
>>>
>>> I realise, that these function prototypes aren't being introduced by these
>>> patches, but just wondering whether such overly generic prototype is really
>>> a good idea here, whether some of those "void *" pointers could be given
>>> real types. The first one could be "struct device *" etc.
>>
>> In this case the 'arg' parameter is actually a private 'struct snd_sof_dev',
>> as shown below [1]. We probably want to keep this relatively opaque, this is
>> a context that doesn't need to be exposed to the SoundWire code.
>
> This does look bit ugly.
>
>> The dai and params are indeed cases where we could use stronger types, they
>> are snd_soc_dai and hw_params respectively. I don't recall why the existing
>> code is this way, Vinod and Sanyog may have the history of this.
>
> Yes we wanted to decouple the sdw and audio bits that is the reason why
> none of the audio types are used here, but I think it should be revisited
> and perhaps made as:
>
> sdw_config_stream(struct device *sdw, struct sdw_callback_ctx *ctx)
>
> where the callback context contains all the other args. That would make
> it look lot neater too and of course use real structs if possible
the suggested sdw_callbback_ctx is really intel-specific at the moment,
e.g. the notion of link_id and alh_stream_id are due to the hardware,
it's not generic at all. And in the latest code we also pass the dai->id.
Powered by blists - more mailing lists