Message ID | 20190808181549.12521-1-cezary.rojewski@intel.com (mailing list archive) |
---|---|
Headers | show |
Series | ASoC: Intel: Skylake: large_config_get overhaul | expand |
On 8/8/19 1:15 PM, Cezary Rojewski wrote: > LARGE_CONFIG_GET is among the most crucial IPCs. Host is expected to > send single request first to obtain total payload size from received > header's data_off_size. From then on, it loops for each frame exceeding > inbox size until entire payload is read. If entire payload is contained > within the very first frame, no looping is performed. > > LARGE_CONFIG_GET is a flexible IPC, it not only receives payload but may > carry one with them to provide list of params DSP module should return > info for. This behavior is usually reserved for vendors and IPC handler > should not touch that content. To achieve that, simply pass provided > payload and bytes to sst_ipc_tx_message_wait as a part of request. > > In current state, LARGE_CONFIG_GET message handler does nothing of that, > in consequence making it dysfunctional. Overhaul said handler allowing > rightful king of IPCs to return back on his throne - kingdom he shares > with his twin brother: LARGE_CONFIG_SET. > > The looping has not been added in this update as payloads of such size > do not exist in practice. Will need to create custom module specifically > for that very case and test against it before that feature can be added. Thanks Cezary. For the series: Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> > > Changes since v4: > - Addressed Pierre's review: updated function's declaration and dropped > unrelated log changes > > Changes since v3: > - Split "large_config_get overhaul" patch into two segments as suggested > by Pierre: first remove looping, then adjust function's behavior > > Changes since v2: > - None, just for-next rebase > > Changes since v1: > - None, just for-next rebase > > Cezary Rojewski (2): > ASoC: Intel: Skylake: Limit large_config_get to single frame > ASoC: Intel: Skylake: large_config_get overhaul > > sound/soc/intel/skylake/skl-messages.c | 3 +- > sound/soc/intel/skylake/skl-sst-ipc.c | 54 +++++++++++--------------- > sound/soc/intel/skylake/skl-sst-ipc.h | 3 +- > 3 files changed, 27 insertions(+), 33 deletions(-) >