alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Lars-Peter Clausen <lars@metafoo.de>
To: Vinod Koul <vinod.koul@intel.com>
Cc: alsa-devel@alsa-project.org, broonie@kernel.org, lgirdwood@gmail.com
Subject: Re: [PATCH 13/19] ASoC: Intel: mrfld: add bytes control for modules
Date: Wed, 25 Jun 2014 06:23:54 +0200	[thread overview]
Message-ID: <53AA4EDA.20504@metafoo.de> (raw)
In-Reply-To: <20140623041500.GN22053@intel.com>

On 06/23/2014 06:15 AM, Vinod Koul wrote:
> On Sat, Jun 21, 2014 at 08:19:13AM +0200, Lars-Peter Clausen wrote:
>>>>>>> +static const struct snd_kcontrol_new sst_algo_controls[] = {
>>>>>>> +	SST_ALGO_KCONTROL_BYTES("media_loop1_out", "fir", 272, SST_MODULE_ID_FIR_24,
>>>>>>> +		 SST_PATH_INDEX_MEDIA_LOOP1_OUT, 0, SST_TASK_SBA, SBA_VB_SET_FIR),
>>>>>>> +	SST_ALGO_KCONTROL_BYTES("media_loop1_out", "iir", 300, SST_MODULE_ID_IIR_24,
>>>>>>> +		SST_PATH_INDEX_MEDIA_LOOP1_OUT, 0, SST_TASK_SBA, SBA_VB_SET_IIR),
>>>>>>> +	SST_ALGO_KCONTROL_BYTES("media_loop1_out", "mdrp", 286, SST_MODULE_ID_MDRP,
>>>>>>> +		SST_PATH_INDEX_MEDIA_LOOP1_OUT, 0, SST_TASK_SBA, SBA_SET_MDRP),
>>>>>>> +	SST_ALGO_KCONTROL_BYTES("media_loop2_out", "fir", 272, SST_MODULE_ID_FIR_24,
>>>>>>> +		SST_PATH_INDEX_MEDIA_LOOP2_OUT, 0, SST_TASK_SBA, SBA_VB_SET_FIR),
>>>>>>> +	SST_ALGO_KCONTROL_BYTES("media_loop2_out", "iir", 300, SST_MODULE_ID_IIR_24,
>>>>>>> +		SST_PATH_INDEX_MEDIA_LOOP2_OUT, 0, SST_TASK_SBA, SBA_VB_SET_IIR),
>>>>>>> +	SST_ALGO_KCONTROL_BYTES("media_loop2_out", "mdrp", 286, SST_MODULE_ID_MDRP,
>>>>>>> +		SST_PATH_INDEX_MEDIA_LOOP2_OUT, 0, SST_TASK_SBA, SBA_SET_MDRP),
>>>>>>> +	SST_ALGO_KCONTROL_BYTES("sprot_loop_out", "lpro", 192, SST_MODULE_ID_SPROT,
>>>>>>> +		SST_PATH_INDEX_SPROT_LOOP_OUT, 0, SST_TASK_SBA, SBA_VB_LPRO),
>>>>>>> +	SST_ALGO_KCONTROL_BYTES("codec_in0", "dcr", 52, SST_MODULE_ID_FILT_DCR,
>>>>>>> +		SST_PATH_INDEX_CODEC_IN0, 0, SST_TASK_SBA, SBA_VB_SET_IIR),
>>>>>>> +	SST_ALGO_KCONTROL_BYTES("codec_in1", "dcr", 52, SST_MODULE_ID_FILT_DCR,
>>>>>>> +		SST_PATH_INDEX_CODEC_IN1, 0, SST_TASK_SBA, SBA_VB_SET_IIR),
>>>>>>
>>>>>>
>>>>>> You are creating a lot of global non-const variables here that are
>>>>>> later modified in the put and get handlers and also elsewhere.
>>>>> Sorry which ones above are modfied. Above values are information for headers of
>>>>> IPCs which we send to DSPs
>>>>>
>>>>
>>>> The SST_ALGO_CTL_VALUE() macro uses compound literals to create a
>>>> global (nameless) struct. A pointer to this struct is assigned to
>>>> the kcontrols private_value field. This is later read and the struct
>>>> is modified.
>>> Yes but not the above values as these as IPC header info which DSP needs.
>>>
>>
>> The SST_ALGO_KCONTROL_BYTES() macro calls SST_ALGO_KCONTROL() which
>> in return calls SST_ALGO_CTL_VALUE()
> Yes and
> #define SST_ALGO_CTL_VALUE(xcount, xtype, xpipe, xmod, xtask, xcmd)	\
>          (struct sst_algo_control){					\
>                  .max = xcount + sizeof(u16), .type = xtype, .module_id = xmod,\
>                  .pipe_id = xpipe, .task_id = xtask, .cmd_id = xcmd,\
>          }
>
> So these values passed above are filled here and put in private_data as you
> rightly noticed. But later on get/put handlers will not modify these specfic
> value but other private value. Above are used _only_ for IPC headers to DSP so
> we cant afford to modify them. We cna try making these values above as
> consts, static

Ok, but how does this work, where does the different private_value come from?

- Lars

  reply	other threads:[~2014-06-25  4:24 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-13 12:33 [PATCH 00/19]: add mrfld DSP support Vinod Koul
2014-06-13 12:33 ` [PATCH 01/19] ASoC: Intel: add COMPILE_TEST to mfld machine Vinod Koul
2014-06-21 10:42   ` Mark Brown
2014-06-21 15:34     ` Mark Brown
2014-06-21 16:08       ` Vinod Koul
2014-06-13 12:33 ` [PATCH 02/19] ASoC: Intel: mfld_pcm: move stream handling to dai_ops Vinod Koul
2014-06-21 10:43   ` Mark Brown
2014-06-13 12:33 ` [PATCH 03/19] ASoC: Intel: mfld-pcm rename period callback arg Vinod Koul
2014-06-21 10:43   ` Mark Brown
2014-06-13 12:33 ` [PATCH 04/19] ASoc: Intel: mfld-pcm: report pcm delay Vinod Koul
2014-06-21 10:43   ` Mark Brown
2014-06-13 12:33 ` [PATCH 05/19] ASoC: Intel: add the mrfld fw IPC definations Vinod Koul
2014-06-22 11:02   ` Mark Brown
2014-06-13 12:33 ` [PATCH 06/19] ASoC: Intel: mfld-pcm: modularize stream allocation code Vinod Koul
2014-06-22 11:02   ` Mark Brown
2014-06-13 12:33 ` [PATCH 07/19] ASoC: Intel: add mrfld pipelines Vinod Koul
2014-06-23 11:24   ` Mark Brown
2014-06-13 12:33 ` [PATCH 08/19] ASoC: Intel: use common stream allocation method for compressed stream Vinod Koul
2014-06-23 11:24   ` Mark Brown
2014-06-13 12:33 ` [PATCH 09/19] ASoC: Intel: mfld-pcm: add FE and BE ops Vinod Koul
2014-06-23 11:26   ` Mark Brown
2014-06-13 12:33 ` [PATCH 10/19] ASoC: Intel: add mrfld DSP registers Vinod Koul
2014-06-20  8:22   ` Lars-Peter Clausen
2014-06-20 11:32     ` Vinod Koul
2014-06-20 12:33       ` Lars-Peter Clausen
2014-06-21  6:22         ` Vinod Koul
2014-06-21  6:56           ` Lars-Peter Clausen
2014-06-23  4:27             ` Vinod Koul
2014-06-25  4:31               ` Lars-Peter Clausen
2014-06-26 10:22                 ` Vinod Koul
2014-06-13 12:34 ` [PATCH 11/19] ASoC: intel: mfld-pcm: don't call trigger ops to DSP for internal streams Vinod Koul
2014-06-13 12:34 ` [PATCH 12/19] ASoC: Intel: add generic parameter set interface Vinod Koul
2014-06-13 12:34 ` [PATCH 13/19] ASoC: Intel: mrfld: add bytes control for modules Vinod Koul
2014-06-20  8:11   ` Lars-Peter Clausen
2014-06-20 11:30     ` Vinod Koul
2014-06-20 12:27       ` Lars-Peter Clausen
2014-06-21  6:16         ` Vinod Koul
2014-06-21  6:19           ` Lars-Peter Clausen
2014-06-23  4:15             ` Vinod Koul
2014-06-25  4:23               ` Lars-Peter Clausen [this message]
2014-06-13 12:34 ` [PATCH 14/19] ASoC: Intel: mrfld: add the gain controls Vinod Koul
2014-06-13 12:34 ` [PATCH 15/19] ASoC: Intel: mfld-pcm: add control for powering up/down dsp Vinod Koul
2014-06-13 12:34 ` [PATCH 16/19] ASoC: Intel: mrfld: add DSP core controls Vinod Koul
2014-06-13 12:34 ` [PATCH 17/19] ASoC: InteL; mrfld: add the DSP DAPM widgets Vinod Koul
2014-06-13 12:34 ` [PATCH 18/19] ASoC: Intel: mfld-pcm: add the fe & be dai ops Vinod Koul
2014-06-13 12:34 ` [RFC 19/19] ASoC: Intel: mrfld: add the DSP mixers Vinod Koul
2014-06-14 15:39   ` Lars-Peter Clausen
2014-07-04  4:46     ` Vinod Koul
2014-07-04 11:21       ` Lars-Peter Clausen
2014-07-07  8:45         ` Vinod Koul
2014-06-20  8:04 ` [PATCH 00/19]: add mrfld DSP support Lars-Peter Clausen
2014-06-20  8:20   ` Vinod Koul
2014-06-20  8:57     ` Lars-Peter Clausen
2014-06-23 10:09       ` Mark Brown
2014-06-25  4:27         ` Lars-Peter Clausen
2014-06-26 10:31           ` Vinod Koul

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=53AA4EDA.20504@metafoo.de \
    --to=lars@metafoo.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=vinod.koul@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).