All of lore.kernel.org
 help / color / mirror / Atom feed
From: Damien Horsley <Damien.Horsley-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>
To: Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org,
	James Hartley
	<James.Hartley-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Pawel Moll <pawel.moll-5wv7dgnIgG8@public.gmane.org>,
	Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
	Ian Campbell
	<ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org>,
	Kumar Gala <galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
	Liam Girdwood <lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Jaroslav Kysela <perex-/Fr2/VpizcU@public.gmane.org>,
	Takashi Iwai <tiwai-IBi9RG/b67k@public.gmane.org>,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.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-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>

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
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
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

  parent reply	other threads:[~2015-10-22 19:21 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-12 12:40 [PATCH V2 00/10] Add support for Imagination Technologies audio controllers Damien Horsley
2015-10-12 12:40 ` [PATCH V2 01/10] ASoC: img: Add binding document for I2S input controller Damien Horsley
2015-10-12 12:40 ` [PATCH V2 02/10] ASoC: img: Add driver " Damien Horsley
2015-10-19 17:47   ` Mark Brown
2015-10-19 17:47     ` [alsa-devel] " Mark Brown
     [not found]     ` <20151019174732.GG32054-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-10-22 19:09       ` Damien Horsley
2015-10-22 19:09         ` Damien Horsley
     [not found]         ` <56293472.7000401-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>
2015-10-23 22:57           ` Mark Brown
2015-10-23 22:57             ` Mark Brown
     [not found]             ` <20151023225723.GO29919-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-10-27 13:55               ` Damien Horsley
2015-10-27 13:55                 ` Damien Horsley
2015-10-28  1:04                 ` Mark Brown
2015-10-28  1:04                   ` [alsa-devel] " Mark Brown
2015-10-28 21:18                   ` Damien Horsley
2015-10-28 21:18                     ` Damien Horsley
2015-10-28 23:43                     ` Mark Brown
     [not found]                       ` <20151028234334.GF28319-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-10-29 15:42                         ` Damien Horsley
2015-10-29 15:42                           ` Damien Horsley
     [not found]                           ` <56323E83.5010605-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>
2015-10-30  1:20                             ` Mark Brown
2015-10-30  1:20                               ` Mark Brown
2015-10-12 12:40 ` [PATCH V2 03/10] ASoC: img: Add binding document for I2S output controller Damien Horsley
2015-10-19 17:56   ` [alsa-devel] " Mark Brown
     [not found]     ` <20151019175658.GI32054-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-10-22 19:11       ` Damien Horsley
2015-10-22 19:11         ` Damien Horsley
2015-10-12 12:40 ` [PATCH V2 04/10] ASoC: img: Add driver " Damien Horsley
2015-10-12 12:40 ` [PATCH V2 05/10] ASoC: img: Add binding document for parallel " Damien Horsley
2015-10-12 12:40 ` [PATCH V2 06/10] ASoC: img: Add driver " Damien Horsley
2015-10-19 18:07   ` Mark Brown
2015-10-19 18:07     ` [alsa-devel] " Mark Brown
     [not found]     ` <20151019180757.GJ32054-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-10-22 19:21       ` Damien Horsley [this message]
2015-10-22 19:21         ` Damien Horsley
     [not found]         ` <5629371F.5080700-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>
2015-10-23 22:58           ` Mark Brown
2015-10-23 22:58             ` Mark Brown
2015-10-12 12:40 ` [PATCH V2 07/10] ASoC: img: Add binding document for SPDIF input controller Damien Horsley
2015-10-12 12:40 ` [PATCH V2 08/10] ASoC: img: Add driver " Damien Horsley
     [not found]   ` <1444653637-14711-9-git-send-email-Damien.Horsley-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>
2015-10-19 18:27     ` [alsa-devel] " Mark Brown
2015-10-19 18:27       ` Mark Brown
     [not found]       ` <20151019182758.GK32054-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-10-22 19:21         ` Damien Horsley
2015-10-22 19:21           ` Damien Horsley
2015-10-12 12:40 ` [PATCH V2 09/10] ASoC: img: Add binding document for SPDIF output controller Damien Horsley
2015-10-12 12:40 ` [PATCH V2 10/10] ASoC: img: Add driver " 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-1axoqhu6uovqt0dzr+alfa@public.gmane.org \
    --cc=James.Hartley-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org \
    --cc=alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw@public.gmane.org \
    --cc=broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
    --cc=ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org \
    --cc=lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
    --cc=pawel.moll-5wv7dgnIgG8@public.gmane.org \
    --cc=perex-/Fr2/VpizcU@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=tiwai-IBi9RG/b67k@public.gmane.org \
    /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.