From: Damien Horsley <Damien.Horsley@imgtec.com>
To: Mark Brown <broonie@kernel.org>
Cc: <alsa-devel@alsa-project.org>,
James Hartley <James.Hartley@imgtec.com>,
Rob Herring <robh+dt@kernel.org>, Pawel Moll <pawel.moll@arm.com>,
"Mark Rutland" <mark.rutland@arm.com>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
Kumar Gala <galak@codeaurora.org>,
Liam Girdwood <lgirdwood@gmail.com>,
Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [alsa-devel] [PATCH V2 06/10] ASoC: img: Add driver for parallel output controller
Date: Thu, 22 Oct 2015 20:21:03 +0100 [thread overview]
Message-ID: <5629371F.5080700@imgtec.com> (raw)
In-Reply-To: <20151019180757.GJ32054@sirena.org.uk>
On 19/10/15 19:07, Mark Brown wrote:
> On Mon, Oct 12, 2015 at 01:40:33PM +0100, Damien Horsley wrote:
>
>> + spin_lock_irqsave(&prl->lock, flags);
>> + reg = img_prl_out_readl(prl, IMG_PRL_OUT_CTL);
>> + ucontrol->value.integer.value[0] = !!(reg & IMG_PRL_OUT_CTL_EDGE_MASK);
>> + spin_unlock_irqrestore(&prl->lock, flags);
>
> Do you need to lock a single register read?
>
Between the calls to reset_control_assert and reset_control_deassert,
the block is held in reset. During this time, no register access will
succeed. All register access that may occur concurrently with the reset
needs to be locked
>> +static struct snd_kcontrol_new img_prl_out_controls[] = {
>> + {
>> + .iface = SNDRV_CTL_ELEM_IFACE_PCM,
>> + .name = "Parallel Out Edge Falling",
>> + .info = img_prl_out_edge_info,
>> + .get = img_prl_out_get_edge,
>> + .put = img_prl_out_set_edge
>> + }
>> +};
>
> If this is a boolean control (it looked like one) it should be called
> Switch but it's not clear to me what exactly is being controlled here or
> why it's something that should be exposed to userspace.
>
This controls the edge (rising/falling) of the frame clock that the
samples are generated on. Should I create a set_fmt function and use
SND_SOC_DAIFMT_NB_NF / SND_SOC_DAIFMT_NB_IF to set this instead? I
wasn't sure if those formats were just for I2S or not
>> + switch (cmd) {
>> + case SNDRV_PCM_TRIGGER_START:
>> + case SNDRV_PCM_TRIGGER_RESUME:
>> + case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
>> + reg = img_prl_out_readl(prl, IMG_PRL_OUT_CTL);
>> + reg |= IMG_PRL_OUT_CTL_ME_MASK;
>> + img_prl_out_writel(prl, reg, IMG_PRL_OUT_CTL);
>> + prl->active = true;
>> + break;
>> + case SNDRV_PCM_TRIGGER_STOP:
>> + case SNDRV_PCM_TRIGGER_SUSPEND:
>> + case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
>> + img_prl_out_reset(prl);
>> + prl->active = false;
>> + break;
>
> No need for locking on the reset (and doesn't this mean that the control
> state is going to be changed underneath userspace)?
>
The reset function restores the setting after the reset
next prev parent reply other threads:[~2015-10-22 19:21 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1444653637-14711-1-git-send-email-Damien.Horsley@imgtec.com>
[not found] ` <1444653637-14711-3-git-send-email-Damien.Horsley@imgtec.com>
2015-10-19 17:47 ` [alsa-devel] [PATCH V2 02/10] ASoC: img: Add driver for I2S input controller Mark Brown
2015-10-22 19:09 ` Damien Horsley
2015-10-23 22:57 ` Mark Brown
2015-10-27 13:55 ` Damien Horsley
2015-10-28 1:04 ` Mark Brown
2015-10-28 21:18 ` Damien Horsley
2015-10-28 23:43 ` Mark Brown
2015-10-29 15:42 ` Damien Horsley
2015-10-30 1:20 ` Mark Brown
[not found] ` <1444653637-14711-4-git-send-email-Damien.Horsley@imgtec.com>
2015-10-19 17:56 ` [alsa-devel] [PATCH V2 03/10] ASoC: img: Add binding document for I2S output controller Mark Brown
2015-10-22 19:11 ` Damien Horsley
[not found] ` <1444653637-14711-7-git-send-email-Damien.Horsley@imgtec.com>
2015-10-19 18:07 ` [alsa-devel] [PATCH V2 06/10] ASoC: img: Add driver for parallel " Mark Brown
2015-10-22 19:21 ` Damien Horsley [this message]
2015-10-23 22:58 ` Mark Brown
[not found] ` <1444653637-14711-9-git-send-email-Damien.Horsley@imgtec.com>
2015-10-19 18:27 ` [alsa-devel] [PATCH V2 08/10] ASoC: img: Add driver for SPDIF input controller Mark Brown
2015-10-22 19:21 ` Damien Horsley
2015-10-19 18:36 ` [alsa-devel] [PATCH V2 00/10] Add support for Imagination Technologies audio controllers Mark Brown
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=5629371F.5080700@imgtec.com \
--to=damien.horsley@imgtec.com \
--cc=James.Hartley@imgtec.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=galak@codeaurora.org \
--cc=ijc+devicetree@hellion.org.uk \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=pawel.moll@arm.com \
--cc=perex@perex.cz \
--cc=robh+dt@kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome