From: Lars-Peter Clausen <lars@metafoo.de>
To: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Cc: alsa-devel@alsa-project.org, Mark Brown <broonie@kernel.org>,
patches@opensource.wolfsonmicro.com, lgirdwood@gmail.com
Subject: Re: [PATCH] ASoC: arizona: Add support for SNDRV_PCM_RATE_KNOT
Date: Thu, 4 Feb 2016 13:55:58 +0100 [thread overview]
Message-ID: <56B34A5E.7060003@metafoo.de> (raw)
In-Reply-To: <20160204124536.GV1490@localhost.localdomain>
On 02/04/2016 01:45 PM, Charles Keepax wrote:
> On Wed, Feb 03, 2016 at 09:24:25AM +0100, Lars-Peter Clausen wrote:
>> On 02/02/2016 08:30 PM, Mark Brown wrote:
>>> On Tue, Feb 02, 2016 at 04:38:04PM +0000, Charles Keepax wrote:
>>>
>>>> +#define ARIZONA_48K_RATES 12000, 24000, 48000, 96000, 192000, 4000, 8000, \
>>>> + 16000, 32000
>>>
>>> This just looks wrong. It's valid code but with the combination of the
>>> split line and the list without any sort of parenthesis it sets off
>>> alarm bells. Duplicating might not be the worst thing ever...
>>
>> For list constraints it is possible to specify a mask for which of the
>> entries in the rates array should be considered. So you could use the same
>> rate array, but use different masks. The adau1977 drive for example does this.
>>
>
> Ok so looking at this a little more I think you can only apply
> the mask thing to values that are part of the basic defines
> rather than masking off entries in a constraint list. The
> adau1977 is using the mask to limit the supported formats which
> is all done through the defines in that driver.
The list constraint struct looks like this:
struct snd_pcm_hw_constraint_list {
unsigned int count;
const unsigned int *list;
unsigned int mask;
};
list is your rates array, count is the size of the rates array and mask
specifies which of the entries in the rates array are valid.
E.g.
unsigned int rates[] = {
44100,
48000,
};
struct snd_pcm_hw_constraint_list constr_44100 {
.count = ARRAY_SIZE(rates),
.list = rates,
.mask = 0x1,
};
struct snd_pcm_hw_constraint_list constr_48000 {
.count = ARRAY_SIZE(rates),
.list = rates,
.mask = 0x2,
};
struct snd_pcm_hw_constraint_list constr_all {
.count = ARRAY_SIZE(rates),
.list = rates,
.mask = 0, /* 0 = All */
};
next prev parent reply other threads:[~2016-02-04 12:56 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-02 16:38 [PATCH] ASoC: arizona: Add support for SNDRV_PCM_RATE_KNOT Charles Keepax
2016-02-02 19:30 ` Mark Brown
2016-02-03 8:24 ` Lars-Peter Clausen
2016-02-03 9:41 ` Charles Keepax
2016-02-04 12:45 ` Charles Keepax
2016-02-04 12:55 ` Lars-Peter Clausen [this message]
2016-02-04 14:34 ` Charles Keepax
2016-02-04 12:46 ` Charles Keepax
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=56B34A5E.7060003@metafoo.de \
--to=lars@metafoo.de \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=ckeepax@opensource.wolfsonmicro.com \
--cc=lgirdwood@gmail.com \
--cc=patches@opensource.wolfsonmicro.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).