From: Jaroslav Kysela <perex@perex.cz>
To: Takashi Iwai <tiwai@suse.de>
Cc: Vinod Koul <vinod.koul@intel.com>,
alsa-devel@alsa-project.org, broonie@kernel.org,
lgirdwood@gmail.com
Subject: Re: [RFC] ALSA: add new alsa control byte extended
Date: Fri, 29 Nov 2013 11:10:43 +0100 [thread overview]
Message-ID: <52986823.1050600@perex.cz> (raw)
In-Reply-To: <s5hsiufedxu.wl%tiwai@suse.de>
Date 29.11.2013 10:48, Takashi Iwai wrote:
> At Fri, 29 Nov 2013 10:40:51 +0100,
> Jaroslav Kysela wrote:
>>
>> Date 29.11.2013 10:08, Takashi Iwai wrote:
>>> At Fri, 29 Nov 2013 13:14:59 +0530,
>>> Vinod Koul wrote:
>>>>
>>>> On Fri, Nov 29, 2013 at 08:46:03AM +0100, Takashi Iwai wrote:
>>>>> At Fri, 29 Nov 2013 09:59:57 +0530,
>>>>> Vinod Koul wrote:
>>>>>>
>>>>>> As discussed in the last Audio uConf we need to improve byte controls to allow
>>>>>> larger size data to be sent to DSPs The modern DSPs require alsa byte controls
>>>>>> size which far exceeds the today 512bytes limit. In order for usermode to send
>>>>>> larger sizes (few 100s of KBs) along with size information we add extended byte
>>>>>> control interface which sends any size bytes parameter buffer for DSPs to use
>>>>>> Obviosly the size must be supported by the device and would be required to
>>>>>> inform the max size allowed for the control.
>>>>>
>>>>> My primary question is -- must this be a control element?
>>>> I think yes. With controls we have an easy way to send parameter bytes and a
>>>> good support from both kernel and usermode, so leveraging that would make sense.
>>>
>>> But it means that we have to extend / fix allover places using the
>>> control elements. And the variable size isn't handled there, so far.
>>> It's the biggest concern.
>>>
>>> For example, how would you read such a control element? Currently,
>>> all the control element values have the same static size, so the data
>>> is just there to read. OTOH, if you read data with an unknown size,
>>> you have to query the size at first, allocate the buffer, then read
>>> the data. It's a completely different flow.
>>>
>>>> Mostly here the limit of 512 is hitting folks and IMO arbitrarily increasing
>>>> size doesn't help. For DSPs the algorithm coefficients can be larger
>>>
>>> Well, it's basically a kind of abuse of control elements, IMO...
>>
>> I basically agree, but... I believe that these chunks can be divided to
>> the 512 limit using continuous indexes (kcontrol->count) and a simple
>> rule in the driver "write all to a DSP when the last control (index) is
>> touched" may be enough. No API extensions are required. The question is:
>> Do you rellay need 100+KB for coefficients? Do you expect to handle
>> these data in standard tools like alsactl?
>
> Yeah, I suggested a similar workaround when the issue came up ago
> (IIRC, it was about WM codecs). But it's certainly ugly, indeed.
I wouldn't mark it as ugly, because the overhead is small in this
solution (except the allocated space for the whole message in the hw
driver). But if these large data are static and they are not expected to
be saved (alsactl), the control API may be extended using a new ioctl or
the hwdep interface with some custom tools may be used.
Jaroslav
--
Jaroslav Kysela <perex@perex.cz>
Linux Kernel Sound Maintainer
ALSA Project; Red Hat, Inc.
next prev parent reply other threads:[~2013-11-29 10:10 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-29 4:29 [RFC] ALSA: add new alsa control byte extended Vinod Koul
2013-11-29 7:27 ` Jarkko Nikula
2013-11-29 7:18 ` Vinod Koul
2013-11-29 7:46 ` Takashi Iwai
2013-11-29 7:44 ` Vinod Koul
2013-11-29 9:08 ` Takashi Iwai
2013-11-29 8:34 ` Vinod Koul
2013-11-29 9:40 ` Jaroslav Kysela
2013-11-29 9:48 ` Takashi Iwai
2013-11-29 10:10 ` Jaroslav Kysela [this message]
2013-11-29 11:25 ` Mark Brown
2013-11-29 11:31 ` Takashi Iwai
2013-11-29 12:27 ` Mark Brown
2013-11-29 11:05 ` Mark Brown
2013-11-29 10:29 ` Vinod Koul
2013-11-29 11:46 ` Mark Brown
2013-11-29 13:19 ` Vinod Koul
2013-11-29 13:11 ` Charles Keepax
2013-11-29 13:28 ` Vinod Koul
2013-11-29 14:17 ` 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=52986823.1050600@perex.cz \
--to=perex@perex.cz \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=tiwai@suse.de \
--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 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.