[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5a7b75e5-4d64-9927-df81-68164ef2662a@linux.intel.com>
Date: Wed, 26 Aug 2020 09:35:19 -0500
From: Pierre-Louis Bossart <pierre-louis.bossart@...ux.intel.com>
To: Vinod Koul <vkoul@...nel.org>,
Bard Liao <yung-chuan.liao@...ux.intel.com>
Cc: 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,
rander.wang@...ux.intel.com, ranjani.sridharan@...ux.intel.com,
hui.wang@...onical.com, sanyog.r.kale@...el.com,
mengdong.lin@...el.com, bard.liao@...el.com
Subject: Re: [PATCH 07/11] soundwire: intel: Only call sdw stream APIs for the
first cpu_dai
>> - ret = sdw_prepare_stream(dma->stream);
>> + /*
>> + * All cpu dais belong to a stream. To ensure sdw_prepare_stream
>> + * is called once per stream, we should call it only when
>> + * dai = first_cpu_dai.
>> + */
>> + if (first_cpu_dai == dai)
>> + ret = sdw_prepare_stream(dma->stream);
>
> Hmmm why not use the one place which is unique in the card to call this,
> hint machine dais are only called once.
we are already calling directly sdw_startup_stream() and
sdw_shutdown_stream() from the machine driver.
We could call sdw_stream_enable() in the dailink .trigger as well, since
it only calls the stream API.
However for both .prepare() and .hw_free() there are a set of dai-level
configurations using static functions defined only in intel.c, and I
don't think we can move the code to the machine driver, or split the
prepare/hw_free in two (dailink and dai operations).
I am not against your idea, I am not sure if it can be done.
Would you be ok to merge this as a first step and let us work on an
optimization later (which would require ASoC/SoundWire synchronization)?
Powered by blists - more mailing lists