alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Vinod Koul <vinod.koul@intel.com>
To: Mark Brown <broonie@kernel.org>
Cc: alsa-devel@alsa-project.org, Lars-Peter Clausen <lars@metafoo.de>,
	"Subhransu S. Prusty" <subhransu.s.prusty@intel.com>,
	lgirdwood@gmail.com
Subject: Re: [PATCH v6 05/10] ASoC: Intel: mrfld: add DSP core controls
Date: Fri, 19 Sep 2014 13:51:53 +0530	[thread overview]
Message-ID: <20140919082152.GC24663@intel.com> (raw)
In-Reply-To: <20140919081047.GB24663@intel.com>


[-- Attachment #1.1: Type: text/plain, Size: 2986 bytes --]

On Fri, Sep 19, 2014 at 01:40:47PM +0530, Vinod Koul wrote:
> On Thu, Sep 18, 2014 at 10:28:52AM -0700, Mark Brown wrote:
> > On Thu, Sep 18, 2014 at 11:42:37AM +0530, Vinod Koul wrote:
> > > On Wed, Sep 17, 2014 at 12:37:06PM -0700, Mark Brown wrote:
> > 
> > > > This doesn't really answer my concern - what happens if we're already
> > > > active and making a change?
> > 
> > > Since this is specfic to BE (SSP) port, the DSP FW doesnt allow us to reconfigure
> > > the slots when it is active. These will take effect next time the BE
> > > restarts.
> > 
> > > Yes not ideal but thats something we have to live with!
> > 
> > That's fine but in that case I would expect to see an error returned to
> > userspace rather than just silently ignoring what it's doing until the
> > next time we start a stream, or at the very least some sort of warning
> > generated.  Silently ignoring things isn't great especially with no
> > comments in the code, it ends up looking like a bug.
> Error to usermode wont be apt as we accept the value and due to constraint
> the value is applied at next BE start.
> 
> Yes definately makes sense to put a comment about this. Will update that
And turns out that limitation is gone so I was wrong here, thanks to Shubransu for pointing this out.

This function does indeed send the updated slot values to DSP

see this bit:

static int sst_slot_put(struct snd_kcontrol *kcontrol,
                        struct snd_ctl_elem_value *ucontrol)
{
        struct snd_soc_component *cmpnt =snd_soc_kcontrol_component(kcontrol);
        struct sst_data *drv = snd_soc_component_get_drvdata(cmpnt);
        struct sst_enum *e = (void *)kcontrol->private_value;
        int i, ret = 0;
        unsigned int ctl_no = e->reg;
        unsigned int is_tx = e->tx;
        unsigned int slot_channel_no;
        unsigned int val, mux;
        u8 *map;

        map = is_tx ? sst_ssp_channel_map : sst_ssp_slot_map;

        val = 1 << ctl_no;
        mux = ucontrol->value.enumerated.item[0];
        if (mux > e->max - 1) {
                return -EINVAL;
        }

        mutex_lock(&drv->lock);
        /* first clear all registers of this bit */
        for (i = 0; i < e->max; i++)
                map[i] &= ~val;

        if (mux == 0) {/* kctl set to 'none' */
                mutex_unlock(&drv->lock);
                return 0;
        }

        /* offset by one to take "None" into account */
        slot_channel_no = mux - 1;
        map[slot_channel_no] |= val;

        dev_dbg(cmpnt->dev, "%s %s map = %#x\n",
                        is_tx ? "tx channel" : "rx slot",
                        e->texts[mux], map[slot_channel_no]);

        if (e->w && e->w->power)
                ret = sst_send_slot_map(drv);
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Here is the widget is powered up then we send the updated slot map to DSP.

So it will be updated real time now :)

-- 
~Vinod


[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



  reply	other threads:[~2014-09-19  8:48 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-09  9:41 [PATCH v6 00/10] Add mrfld DSP topology and widgets Subhransu S. Prusty
2014-09-09  9:41 ` [PATCH v6 01/10] ASoC: Intel: mfld-pcm: don't call trigger ops to DSP for internal streams Subhransu S. Prusty
2014-09-16 18:54   ` Mark Brown
2014-09-09  9:41 ` [PATCH v6 02/10] ASoC: Intel: mrfld: add bytes control for modules Subhransu S. Prusty
2014-09-16 18:50   ` Mark Brown
2014-09-16 18:55   ` Mark Brown
2014-09-09  9:41 ` [PATCH v6 03/10] ASoC: Intel: mrfld: add the gain controls Subhransu S. Prusty
2014-09-16 19:00   ` Mark Brown
2014-09-09  9:41 ` [PATCH v6 04/10] ASoC: Intel: mfld-pcm: add control for powering up/down dsp Subhransu S. Prusty
2014-09-16 19:03   ` Mark Brown
2014-09-17 10:56     ` [alsa-devel] " Subhransu S. Prusty
2014-09-17 10:56     ` Subhransu S. Prusty
2014-09-09  9:41 ` [PATCH v6 05/10] ASoC: Intel: mrfld: add DSP core controls Subhransu S. Prusty
2014-09-16 19:30   ` Mark Brown
2014-09-17 10:55     ` [alsa-devel] " Subhransu S. Prusty
2014-09-17 19:37       ` Mark Brown
2014-09-18  6:12         ` Vinod Koul
2014-09-18 17:28           ` Mark Brown
2014-09-19  8:10             ` Vinod Koul
2014-09-19  8:21               ` Vinod Koul [this message]
2014-09-23  1:57                 ` Mark Brown
2014-09-23  3:52                   ` Vinod Koul
2014-09-17 10:55     ` Subhransu S. Prusty
2014-09-09  9:41 ` [PATCH v6 06/10] ASoC: Export dapm_kcontrol_get_value Subhransu S. Prusty
2014-09-09  9:41 ` [PATCH v6 07/10] ASoC: Intel: mrfld: add the DSP DAPM widgets Subhransu S. Prusty
2014-09-09  9:41 ` [PATCH v6 08/10] ASoC: Intel: mfld-pcm: add FE and BE ops Subhransu S. Prusty
2014-09-09  9:41 ` [PATCH v6 09/10] ASoC: Intel: mrfld: Use snd_soc_dai_get_drvdata to derive drv data Subhransu S. Prusty
2014-09-16 23:40   ` Mark Brown
2014-09-09  9:41 ` [PATCH v6 10/10] ASoC: Intel: mrfld: add the DSP mixers Subhransu S. Prusty

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=20140919082152.GC24663@intel.com \
    --to=vinod.koul@intel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=lars@metafoo.de \
    --cc=lgirdwood@gmail.com \
    --cc=subhransu.s.prusty@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).