All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cezary Rojewski <cezary.rojewski@intel.com>
To: alsa-devel@alsa-project.org
Cc: lgirdwood@gmail.com, Cezary Rojewski <cezary.rojewski@intel.com>,
	broonie@kernel.org, tiwai@suse.com,
	pierre-louis.bossart@linux.intel.com
Subject: [PATCH v5 0/2] ASoC: Intel: Skylake: large_config_get overhaul
Date: Thu,  8 Aug 2019 20:15:47 +0200	[thread overview]
Message-ID: <20190808181549.12521-1-cezary.rojewski@intel.com> (raw)

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.

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(-)

-- 
2.17.1

             reply	other threads:[~2019-08-08 18:16 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-08 18:15 Cezary Rojewski [this message]
2019-08-08 18:15 ` [PATCH v5 1/2] ASoC: Intel: Skylake: Limit large_config_get to single frame Cezary Rojewski
2019-08-08 20:33   ` Applied "ASoC: Intel: Skylake: Limit large_config_get to single frame" to the asoc tree Mark Brown
2019-08-08 18:15 ` [PATCH v5 2/2] ASoC: Intel: Skylake: large_config_get overhaul Cezary Rojewski
2019-08-08 20:33   ` Applied "ASoC: Intel: Skylake: large_config_get overhaul" to the asoc tree Mark Brown
2019-08-08 18:54 ` [PATCH v5 0/2] ASoC: Intel: Skylake: large_config_get overhaul Pierre-Louis Bossart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190808181549.12521-1-cezary.rojewski@intel.com \
    --to=cezary.rojewski@intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=tiwai@suse.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.