From: Takashi Sakamoto <o-takashi@sakamocchi.jp>
To: Clemens Ladisch <clemens@ladisch.de>
Cc: tiwai@suse.de, alsa-devel@alsa-project.org,
linux1394-devel@lists.sourceforge.net, ffado-devel@lists.sf.net
Subject: Re: [PATCH 28/44] fireworks: Add command/response functionality into hwdep interface
Date: Fri, 04 Apr 2014 20:11:12 +0900 [thread overview]
Message-ID: <533E9350.6090201@sakamocchi.jp> (raw)
In-Reply-To: <533E7C01.8040000@ladisch.de>
Hi Clemens,
(Apr 04 2014 18:31), Clemens Ladisch wrote:
> Takashi Sakamoto wrote:
>> +++ b/include/uapi/sound/firewire.h
>> #define SNDRV_FIREWIRE_EVENT_LOCK_STATUS 0x000010cc
>> #define SNDRV_FIREWIRE_EVENT_DICE_NOTIFICATION 0xd1ce004e
>> +#define SNDRV_FIREWIRE_EVENT_EFW_RESPONSE 0x4e617475
>
> Why "Natu"? ;-)
Hehe, it's my association from "Fireworks" in Japanese.
I believe cultures in Continental Europe have the similar association ;)
For practical reason, I have no other ideas to fit in the 4 bytes.
>> +/* each field should be in big endian */
>> +struct snd_efw_transaction {
>> + uint32_t length;
>> + uint32_t version;
>> + uint32_t seqnum;
>> + uint32_t category;
>> + uint32_t command;
>> + uint32_t status;
>> + uint32_t params[0];
>> +};
>
> uint32_t is not guaranteed to be available in a userspace header.
> Add <linux/types.h>, and use __u32.
Can I request the reason?
Here I force users to include <stdint.h> and use types defined in ISO
C99. I think this way is standard. (but not standard between
kernel/user-land?)
>> +++ b/sound/firewire/fireworks/fireworks.c
>> static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;
>> static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;
>> static bool enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP;
>> +unsigned int resp_buf_size = 1024;
>> +bool resp_buf_debug = false;
>
> When the driver is compiled into the kernel, these variable names could
> introduce conflicts. Use a prefix like "efw_" or "fireworks_"; the
> parameter names can then be made pretty by using module_param_named().
I never pay attension to compiling as built-in.
OK. I try to use the macro, maybe with "snd_efw" so as easily realizing
it's in Sound subsystem.
>> +static long
>> +hwdep_write(struct snd_hwdep *hwdep, const char __user *data, long count,
>> + loff_t *offset)
>> +{
>> + ...
>> + if (count < sizeof(struct snd_efw_transaction))
>> + return -EINVAL;
>
> The size must not be larger than allowed for a single write transaction.
> This would eventually be caught by the firewire core, but checking it
> here would avoid allocating lots of memory.
I investigate the length of all commands and realize the maximum bytes
is 304 (0x130) for isochronous channel mapping (see
FFADO:src/fireworks/efc/efc_cmds_ioconfig.h). With leaving some space
for this value, I think 0x140 is better for this purpose.
Thank you
Takashi Sakamoto
o-takashi@sakamocchi.jp
next prev parent reply other threads:[~2014-04-04 11:11 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-21 11:09 [PATCH 00/44 v3] Enhancement of support for Firewire devices Takashi Sakamoto
2014-03-21 11:09 ` [PATCH 01/44] firewire-lib: Add macros instead of fixed value for AMDTP Takashi Sakamoto
2014-03-21 11:09 ` [PATCH 02/44] firewire-lib: Add 'direction' member to 'amdtp_stream' structure Takashi Sakamoto
2014-03-21 11:09 ` [PATCH 03/44] firewire-lib: Split some codes into functions to reuse for both streams Takashi Sakamoto
2014-03-21 11:09 ` [PATCH 04/44] firewire-lib: Add support for AMDTP in-stream and PCM capture Takashi Sakamoto
2014-03-21 11:09 ` [PATCH 05/44] firewire-lib: Add support for MIDI capture/playback Takashi Sakamoto
2014-04-02 19:29 ` Clemens Ladisch
2014-04-02 19:42 ` [FFADO-devel] " Adrian Knoth
2014-04-02 19:58 ` Clemens Ladisch
2014-04-02 20:37 ` [FFADO-devel] [alsa-devel] " Jano Svitok
2014-04-03 8:33 ` Takashi Sakamoto
2014-04-03 8:54 ` Clemens Ladisch
2014-04-03 10:08 ` Takashi Sakamoto
2014-03-21 11:09 ` [PATCH 06/44] firewire-lib: Give syt value as parameter to handle_out_packet() Takashi Sakamoto
2014-03-21 11:09 ` [PATCH 07/44] firewire-lib: Add support for duplex streams synchronization in blocking mode Takashi Sakamoto
2014-03-21 11:09 ` [PATCH 08/44] firewire-lib: Add support for channel mapping Takashi Sakamoto
2014-04-02 20:18 ` Clemens Ladisch
2014-04-03 8:37 ` Takashi Sakamoto
2014-03-21 11:09 ` [PATCH 09/44] firewire-lib: Restrict calling flush_context_completion() when context exists Takashi Sakamoto
2014-03-21 11:09 ` [PATCH 10/44] firewire-lib: Rename macros, variables and functions for CMP Takashi Sakamoto
2014-03-21 11:09 ` [PATCH 11/44] firewire-lib: Add 'direction' member to 'cmp_connection' structure Takashi Sakamoto
2014-03-21 11:09 ` [PATCH 12/44] firewire-lib: Add handling output connection by CMP Takashi Sakamoto
2014-03-21 11:09 ` [PATCH 13/44] firewire-lib: Add a new function to check others' connection Takashi Sakamoto
2014-03-21 11:09 ` [PATCH 14/44] firewire-lib: Add support for deferred transaction Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 15/44] firewire-lib: Add some AV/C general commands Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 16/44] fireworks: Add skelton for Fireworks based devices Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 17/44] fireworks: Add transaction and some commands Takashi Sakamoto
2014-04-03 20:15 ` Clemens Ladisch
2014-04-04 4:08 ` Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 18/44] fireworks: Add connection and stream management Takashi Sakamoto
2014-04-03 20:56 ` Clemens Ladisch
2014-04-04 14:22 ` Takashi Sakamoto
2014-04-04 15:05 ` [alsa-devel] " Clemens Ladisch
2014-04-06 13:20 ` Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 19/44] fireworks/firewire-lib: Add a quirk for empty packet with TAG0 Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 20/44] fireworks/firewire-lib: Add a quirk for the meaning of dbc Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 21/44] fireworks/firewire-lib: Add a quirk for wrong dbs in tx packets Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 22/44] fireworks/firewire-libs: Add a quirk for fixed interval of reported dbc Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 23/44] fireworks: Add proc interface for debugging purpose Takashi Sakamoto
2014-04-03 21:16 ` [alsa-devel] " Clemens Ladisch
2014-04-04 11:16 ` Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 24/44] fireworks: Add MIDI interface Takashi Sakamoto
2014-04-03 21:20 ` [alsa-devel] " Clemens Ladisch
2014-04-06 12:03 ` Takashi Sakamoto
2014-04-06 14:52 ` Clemens Ladisch
2014-04-07 12:59 ` Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 25/44] fireworks/firewire-lib: Add a quirk for data blocks for MIDI in out-stream Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 26/44] fireworks: Add PCM interface Takashi Sakamoto
2014-04-04 8:48 ` Clemens Ladisch
2014-04-06 12:44 ` Takashi Sakamoto
2014-04-06 14:52 ` [alsa-devel] " Clemens Ladisch
2014-04-07 7:20 ` Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 27/44] fireworks: Add hwdep interface Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 28/44] fireworks: Add command/response functionality into " Takashi Sakamoto
2014-04-04 9:31 ` Clemens Ladisch
2014-04-04 11:11 ` Takashi Sakamoto [this message]
2014-04-04 12:15 ` [alsa-devel] " Clemens Ladisch
2014-04-08 2:45 ` Takashi Sakamoto
2014-04-04 15:13 ` Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 29/44] bebob: Add skelton for BeBoB based devices Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 30/44] bebob: Add commands and connections/streams management Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 31/44] bebob/firewire-lib: Add a quirk for discontinuity at bus reset Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 32/44] bebob: Add proc interface for debugging purpose Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 33/44] bebob: Add MIDI interface Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 34/44] bebob: Add PCM interface Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 35/44] bebob: Add hwdep interface Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 36/44] bebob: Prepare for device specific operations Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 37/44] bebob: Add support for Terratec PHASE, EWS series and Aureon Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 38/44] bebob: Add support for Yamaha GO series Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 39/44] bebob: Add support for Focusrite Saffire/SaffirePro series Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 40/44] bebob: Add support for M-Audio usual Firewire series Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 41/44] bebob: Add support for M-Audio special " Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 42/44] bebob/firewire-lib: Add a quirk of wrong dbc in empty packet " Takashi Sakamoto
2014-03-23 2:16 ` Takashi Sakamoto
2014-03-24 1:41 ` [FFADO-devel] " Euan de Kock
2014-03-24 2:52 ` Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 43/44] bebob: Send a cue to load firmware for M-Audio " Takashi Sakamoto
2014-03-21 11:10 ` [PATCH 44/44] firewire/bebob: Add a workaround for M-Audio special " Takashi Sakamoto
2014-04-02 11:15 ` [PATCH 00/44 v3] Enhancement of support for Firewire devices Takashi Sakamoto
2014-04-03 19:17 ` David Henningsson
2014-04-04 7:04 ` Takashi Iwai
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=533E9350.6090201@sakamocchi.jp \
--to=o-takashi@sakamocchi.jp \
--cc=alsa-devel@alsa-project.org \
--cc=clemens@ladisch.de \
--cc=ffado-devel@lists.sf.net \
--cc=linux1394-devel@lists.sourceforge.net \
--cc=tiwai@suse.de \
/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).