* [PATCH 1/5] ALSA: snd_usb_caiaq: clean whitespaces
@ 2009-05-30 21:44 Daniel Mack
2009-05-30 21:44 ` [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname Daniel Mack
0 siblings, 1 reply; 24+ messages in thread
From: Daniel Mack @ 2009-05-30 21:44 UTC (permalink / raw)
To: alsa-devel
Cosmetic changes only, no code change.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
---
sound/usb/caiaq/audio.c | 88 +++++++++++++++++++++++-----------------------
sound/usb/caiaq/device.c | 60 ++++++++++++++++----------------
sound/usb/caiaq/midi.c | 24 ++++++------
3 files changed, 86 insertions(+), 86 deletions(-)
diff --git a/sound/usb/caiaq/audio.c b/sound/usb/caiaq/audio.c
index b13ce76..b144513 100644
--- a/sound/usb/caiaq/audio.c
+++ b/sound/usb/caiaq/audio.c
@@ -42,10 +42,10 @@
(stream << 1) | (~(i / (dev->n_streams * BYTES_PER_SAMPLE_USB)) & 1)
static struct snd_pcm_hardware snd_usb_caiaq_pcm_hardware = {
- .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+ .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_BLOCK_TRANSFER),
.formats = SNDRV_PCM_FMTBIT_S24_3BE,
- .rates = (SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 |
+ .rates = (SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 |
SNDRV_PCM_RATE_96000),
.rate_min = 44100,
.rate_max = 0, /* will overwrite later */
@@ -68,7 +68,7 @@ activate_substream(struct snd_usb_caiaqdev *dev,
dev->sub_capture[sub->number] = sub;
}
-static void
+static void
deactivate_substream(struct snd_usb_caiaqdev *dev,
struct snd_pcm_substream *sub)
{
@@ -118,7 +118,7 @@ static int stream_start(struct snd_usb_caiaqdev *dev)
return -EPIPE;
}
}
-
+
return 0;
}
@@ -129,7 +129,7 @@ static void stream_stop(struct snd_usb_caiaqdev *dev)
debug("%s(%p)\n", __func__, dev);
if (!dev->streaming)
return;
-
+
dev->streaming = 0;
for (i = 0; i < N_URBS; i++) {
@@ -154,7 +154,7 @@ static int snd_usb_caiaq_substream_close(struct snd_pcm_substream *substream)
debug("%s(%p)\n", __func__, substream);
if (all_substreams_zero(dev->sub_playback) &&
all_substreams_zero(dev->sub_capture)) {
- /* when the last client has stopped streaming,
+ /* when the last client has stopped streaming,
* all sample rates are allowed again */
stream_stop(dev);
dev->pcm_info.rates = dev->samplerates;
@@ -194,7 +194,7 @@ static int snd_usb_caiaq_pcm_prepare(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime;
debug("%s(%p)\n", __func__, substream);
-
+
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
dev->period_out_count[index] = BYTES_PER_SAMPLE + 1;
dev->audio_out_buf_pos[index] = BYTES_PER_SAMPLE + 1;
@@ -205,19 +205,19 @@ static int snd_usb_caiaq_pcm_prepare(struct snd_pcm_substream *substream)
if (dev->streaming)
return 0;
-
+
/* the first client that opens a stream defines the sample rate
* setting for all subsequent calls, until the last client closed. */
for (i=0; i < ARRAY_SIZE(rates); i++)
if (runtime->rate == rates[i])
dev->pcm_info.rates = 1 << i;
-
+
snd_pcm_limit_hw_rates(runtime);
bytes_per_sample = BYTES_PER_SAMPLE;
if (dev->spec.data_alignment == 2)
bytes_per_sample++;
-
+
bpp = ((runtime->rate / 8000) + CLOCK_DRIFT_TOLERANCE)
* bytes_per_sample * CHANNELS_PER_STREAM * dev->n_streams;
@@ -232,7 +232,7 @@ static int snd_usb_caiaq_pcm_prepare(struct snd_pcm_substream *substream)
ret = stream_start(dev);
if (ret)
return ret;
-
+
dev->output_running = 0;
wait_event_timeout(dev->prepare_wait_queue, dev->output_running, HZ);
if (!dev->output_running) {
@@ -273,7 +273,7 @@ snd_usb_caiaq_pcm_pointer(struct snd_pcm_substream *sub)
return SNDRV_PCM_POS_XRUN;
if (sub->stream == SNDRV_PCM_STREAM_PLAYBACK)
- return bytes_to_frames(sub->runtime,
+ return bytes_to_frames(sub->runtime,
dev->audio_out_buf_pos[index]);
else
return bytes_to_frames(sub->runtime,
@@ -291,7 +291,7 @@ static struct snd_pcm_ops snd_usb_caiaq_ops = {
.trigger = snd_usb_caiaq_pcm_trigger,
.pointer = snd_usb_caiaq_pcm_pointer
};
-
+
static void check_for_elapsed_periods(struct snd_usb_caiaqdev *dev,
struct snd_pcm_substream **subs)
{
@@ -333,7 +333,7 @@ static void read_in_urb_mode0(struct snd_usb_caiaqdev *dev,
struct snd_pcm_runtime *rt = sub->runtime;
char *audio_buf = rt->dma_area;
int sz = frames_to_bytes(rt, rt->buffer_size);
- audio_buf[dev->audio_in_buf_pos[stream]++]
+ audio_buf[dev->audio_in_buf_pos[stream]++]
= usb_buf[i];
dev->period_in_count[stream]++;
if (dev->audio_in_buf_pos[stream] == sz)
@@ -354,14 +354,14 @@ static void read_in_urb_mode2(struct snd_usb_caiaqdev *dev,
for (i = 0; i < iso->actual_length;) {
if (i % (dev->n_streams * BYTES_PER_SAMPLE_USB) == 0) {
- for (stream = 0;
- stream < dev->n_streams;
+ for (stream = 0;
+ stream < dev->n_streams;
stream++, i++) {
if (dev->first_packet)
continue;
check_byte = MAKE_CHECKBYTE(dev, stream, i);
-
+
if ((usb_buf[i] & 0x3f) != check_byte)
dev->input_panic = 1;
@@ -410,21 +410,21 @@ static void read_in_urb(struct snd_usb_caiaqdev *dev,
}
if ((dev->input_panic || dev->output_panic) && !dev->warned) {
- debug("streaming error detected %s %s\n",
+ debug("streaming error detected %s %s\n",
dev->input_panic ? "(input)" : "",
dev->output_panic ? "(output)" : "");
dev->warned = 1;
}
}
-static void fill_out_urb(struct snd_usb_caiaqdev *dev,
- struct urb *urb,
+static void fill_out_urb(struct snd_usb_caiaqdev *dev,
+ struct urb *urb,
const struct usb_iso_packet_descriptor *iso)
{
unsigned char *usb_buf = urb->transfer_buffer + iso->offset;
struct snd_pcm_substream *sub;
int stream, i;
-
+
for (i = 0; i < iso->length;) {
for (stream = 0; stream < dev->n_streams; stream++, i++) {
sub = dev->sub_playback[stream];
@@ -444,7 +444,7 @@ static void fill_out_urb(struct snd_usb_caiaqdev *dev,
/* fill in the check bytes */
if (dev->spec.data_alignment == 2 &&
- i % (dev->n_streams * BYTES_PER_SAMPLE_USB) ==
+ i % (dev->n_streams * BYTES_PER_SAMPLE_USB) ==
(dev->n_streams * CHANNELS_PER_STREAM))
for (stream = 0; stream < dev->n_streams; stream++, i++)
usb_buf[i] = MAKE_CHECKBYTE(dev, stream, i);
@@ -453,7 +453,7 @@ static void fill_out_urb(struct snd_usb_caiaqdev *dev,
static void read_completed(struct urb *urb)
{
- struct snd_usb_caiaq_cb_info *info = urb->context;
+ struct snd_usb_caiaq_cb_info *info = urb->context;
struct snd_usb_caiaqdev *dev;
struct urb *out;
int frame, len, send_it = 0, outframe = 0;
@@ -478,7 +478,7 @@ static void read_completed(struct urb *urb)
out->iso_frame_desc[outframe].length = len;
out->iso_frame_desc[outframe].actual_length = 0;
out->iso_frame_desc[outframe].offset = BYTES_PER_FRAME * frame;
-
+
if (len > 0) {
spin_lock(&dev->spinlock);
fill_out_urb(dev, out, &out->iso_frame_desc[outframe]);
@@ -497,14 +497,14 @@ static void read_completed(struct urb *urb)
out->transfer_flags = URB_ISO_ASAP;
usb_submit_urb(out, GFP_ATOMIC);
}
-
+
/* re-submit inbound urb */
for (frame = 0; frame < FRAMES_PER_URB; frame++) {
urb->iso_frame_desc[frame].offset = BYTES_PER_FRAME * frame;
urb->iso_frame_desc[frame].length = BYTES_PER_FRAME;
urb->iso_frame_desc[frame].actual_length = 0;
}
-
+
urb->number_of_packets = FRAMES_PER_URB;
urb->transfer_flags = URB_ISO_ASAP;
usb_submit_urb(urb, GFP_ATOMIC);
@@ -528,7 +528,7 @@ static struct urb **alloc_urbs(struct snd_usb_caiaqdev *dev, int dir, int *ret)
struct usb_device *usb_dev = dev->chip.dev;
unsigned int pipe;
- pipe = (dir == SNDRV_PCM_STREAM_PLAYBACK) ?
+ pipe = (dir == SNDRV_PCM_STREAM_PLAYBACK) ?
usb_sndisocpipe(usb_dev, ENDPOINT_PLAYBACK) :
usb_rcvisocpipe(usb_dev, ENDPOINT_CAPTURE);
@@ -547,25 +547,25 @@ static struct urb **alloc_urbs(struct snd_usb_caiaqdev *dev, int dir, int *ret)
return urbs;
}
- urbs[i]->transfer_buffer =
+ urbs[i]->transfer_buffer =
kmalloc(FRAMES_PER_URB * BYTES_PER_FRAME, GFP_KERNEL);
if (!urbs[i]->transfer_buffer) {
log("unable to kmalloc() transfer buffer, OOM!?\n");
*ret = -ENOMEM;
return urbs;
}
-
+
for (frame = 0; frame < FRAMES_PER_URB; frame++) {
- struct usb_iso_packet_descriptor *iso =
+ struct usb_iso_packet_descriptor *iso =
&urbs[i]->iso_frame_desc[frame];
-
+
iso->offset = BYTES_PER_FRAME * frame;
iso->length = BYTES_PER_FRAME;
}
-
+
urbs[i]->dev = usb_dev;
urbs[i]->pipe = pipe;
- urbs[i]->transfer_buffer_length = FRAMES_PER_URB
+ urbs[i]->transfer_buffer_length = FRAMES_PER_URB
* BYTES_PER_FRAME;
urbs[i]->context = &dev->data_cb_info[i];
urbs[i]->interval = 1;
@@ -589,7 +589,7 @@ static void free_urbs(struct urb **urbs)
for (i = 0; i < N_URBS; i++) {
if (!urbs[i])
continue;
-
+
usb_kill_urb(urbs[i]);
kfree(urbs[i]->transfer_buffer);
usb_free_urb(urbs[i]);
@@ -602,11 +602,11 @@ int snd_usb_caiaq_audio_init(struct snd_usb_caiaqdev *dev)
{
int i, ret;
- dev->n_audio_in = max(dev->spec.num_analog_audio_in,
- dev->spec.num_digital_audio_in) /
+ dev->n_audio_in = max(dev->spec.num_analog_audio_in,
+ dev->spec.num_digital_audio_in) /
CHANNELS_PER_STREAM;
dev->n_audio_out = max(dev->spec.num_analog_audio_out,
- dev->spec.num_digital_audio_out) /
+ dev->spec.num_digital_audio_out) /
CHANNELS_PER_STREAM;
dev->n_streams = max(dev->n_audio_in, dev->n_audio_out);
@@ -619,7 +619,7 @@ int snd_usb_caiaq_audio_init(struct snd_usb_caiaqdev *dev)
return -EINVAL;
}
- ret = snd_pcm_new(dev->chip.card, dev->product_name, 0,
+ ret = snd_pcm_new(dev->chip.card, dev->product_name, 0,
dev->n_audio_out, dev->n_audio_in, &dev->pcm);
if (ret < 0) {
@@ -632,7 +632,7 @@ int snd_usb_caiaq_audio_init(struct snd_usb_caiaqdev *dev)
memset(dev->sub_playback, 0, sizeof(dev->sub_playback));
memset(dev->sub_capture, 0, sizeof(dev->sub_capture));
-
+
memcpy(&dev->pcm_info, &snd_usb_caiaq_pcm_hardware,
sizeof(snd_usb_caiaq_pcm_hardware));
@@ -651,9 +651,9 @@ int snd_usb_caiaq_audio_init(struct snd_usb_caiaqdev *dev)
break;
}
- snd_pcm_set_ops(dev->pcm, SNDRV_PCM_STREAM_PLAYBACK,
+ snd_pcm_set_ops(dev->pcm, SNDRV_PCM_STREAM_PLAYBACK,
&snd_usb_caiaq_ops);
- snd_pcm_set_ops(dev->pcm, SNDRV_PCM_STREAM_CAPTURE,
+ snd_pcm_set_ops(dev->pcm, SNDRV_PCM_STREAM_CAPTURE,
&snd_usb_caiaq_ops);
snd_pcm_lib_preallocate_pages_for_all(dev->pcm,
@@ -662,7 +662,7 @@ int snd_usb_caiaq_audio_init(struct snd_usb_caiaqdev *dev)
MAX_BUFFER_SIZE, MAX_BUFFER_SIZE);
dev->data_cb_info =
- kmalloc(sizeof(struct snd_usb_caiaq_cb_info) * N_URBS,
+ kmalloc(sizeof(struct snd_usb_caiaq_cb_info) * N_URBS,
GFP_KERNEL);
if (!dev->data_cb_info)
@@ -672,14 +672,14 @@ int snd_usb_caiaq_audio_init(struct snd_usb_caiaqdev *dev)
dev->data_cb_info[i].dev = dev;
dev->data_cb_info[i].index = i;
}
-
+
dev->data_urbs_in = alloc_urbs(dev, SNDRV_PCM_STREAM_CAPTURE, &ret);
if (ret < 0) {
kfree(dev->data_cb_info);
free_urbs(dev->data_urbs_in);
return ret;
}
-
+
dev->data_urbs_out = alloc_urbs(dev, SNDRV_PCM_STREAM_PLAYBACK, &ret);
if (ret < 0) {
kfree(dev->data_cb_info);
diff --git a/sound/usb/caiaq/device.c b/sound/usb/caiaq/device.c
index 515de1c..9be0f2e 100644
--- a/sound/usb/caiaq/device.c
+++ b/sound/usb/caiaq/device.c
@@ -79,7 +79,7 @@ static struct usb_device_id snd_usb_id_table[] = {
{
.match_flags = USB_DEVICE_ID_MATCH_DEVICE,
.idVendor = USB_VID_NATIVEINSTRUMENTS,
- .idProduct = USB_PID_RIGKONTROL2
+ .idProduct = USB_PID_RIGKONTROL2
},
{
.match_flags = USB_DEVICE_ID_MATCH_DEVICE,
@@ -197,7 +197,7 @@ int snd_usb_caiaq_send_command(struct snd_usb_caiaqdev *dev,
if (buffer && len > 0)
memcpy(dev->ep1_out_buf+1, buffer, len);
-
+
dev->ep1_out_buf[0] = command;
return usb_bulk_msg(usb_dev, usb_sndbulkpipe(usb_dev, 1),
dev->ep1_out_buf, len+1, &actual_len, 200);
@@ -208,7 +208,7 @@ int snd_usb_caiaq_set_audio_params (struct snd_usb_caiaqdev *dev,
{
int ret;
char tmp[5];
-
+
switch (rate) {
case 44100: tmp[0] = SAMPLERATE_44100; break;
case 48000: tmp[0] = SAMPLERATE_48000; break;
@@ -237,12 +237,12 @@ int snd_usb_caiaq_set_audio_params (struct snd_usb_caiaqdev *dev,
if (ret)
return ret;
-
- if (!wait_event_timeout(dev->ep1_wait_queue,
+
+ if (!wait_event_timeout(dev->ep1_wait_queue,
dev->audio_parm_answer >= 0, HZ))
return -EPIPE;
-
- if (dev->audio_parm_answer != 1)
+
+ if (dev->audio_parm_answer != 1)
debug("unable to set the device's audio params\n");
else
dev->bpp = bpp;
@@ -250,8 +250,8 @@ int snd_usb_caiaq_set_audio_params (struct snd_usb_caiaqdev *dev,
return dev->audio_parm_answer == 1 ? 0 : -EINVAL;
}
-int snd_usb_caiaq_set_auto_msg (struct snd_usb_caiaqdev *dev,
- int digital, int analog, int erp)
+int snd_usb_caiaq_set_auto_msg(struct snd_usb_caiaqdev *dev,
+ int digital, int analog, int erp)
{
char tmp[3] = { digital, analog, erp };
return snd_usb_caiaq_send_command(dev, EP1_CMD_AUTO_MSG,
@@ -262,7 +262,7 @@ static void __devinit setup_card(struct snd_usb_caiaqdev *dev)
{
int ret;
char val[4];
-
+
/* device-specific startup specials */
switch (dev->chip.usb_id) {
case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_RIGKONTROL2):
@@ -314,7 +314,7 @@ static void __devinit setup_card(struct snd_usb_caiaqdev *dev)
dev->control_state, 1);
break;
}
-
+
if (dev->spec.num_analog_audio_out +
dev->spec.num_analog_audio_in +
dev->spec.num_digital_audio_out +
@@ -323,7 +323,7 @@ static void __devinit setup_card(struct snd_usb_caiaqdev *dev)
if (ret < 0)
log("Unable to set up audio system (ret=%d)\n", ret);
}
-
+
if (dev->spec.num_midi_in +
dev->spec.num_midi_out > 0) {
ret = snd_usb_caiaq_midi_init(dev);
@@ -363,7 +363,7 @@ static int create_card(struct usb_device* usb_dev, struct snd_card **cardp)
if (devnum >= SNDRV_CARDS)
return -ENODEV;
- err = snd_card_create(index[devnum], id[devnum], THIS_MODULE,
+ err = snd_card_create(index[devnum], id[devnum], THIS_MODULE,
sizeof(struct snd_usb_caiaqdev), &card);
if (err < 0)
return err;
@@ -386,7 +386,7 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
struct usb_device *usb_dev = dev->chip.dev;
struct snd_card *card = dev->chip.card;
int err, len;
-
+
if (usb_set_interface(usb_dev, 0, 1) != 0) {
log("can't set alt interface.\n");
return -EIO;
@@ -395,19 +395,19 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
usb_init_urb(&dev->ep1_in_urb);
usb_init_urb(&dev->midi_out_urb);
- usb_fill_bulk_urb(&dev->ep1_in_urb, usb_dev,
+ usb_fill_bulk_urb(&dev->ep1_in_urb, usb_dev,
usb_rcvbulkpipe(usb_dev, 0x1),
- dev->ep1_in_buf, EP1_BUFSIZE,
+ dev->ep1_in_buf, EP1_BUFSIZE,
usb_ep1_command_reply_dispatch, dev);
- usb_fill_bulk_urb(&dev->midi_out_urb, usb_dev,
+ usb_fill_bulk_urb(&dev->midi_out_urb, usb_dev,
usb_sndbulkpipe(usb_dev, 0x1),
- dev->midi_out_buf, EP1_BUFSIZE,
+ dev->midi_out_buf, EP1_BUFSIZE,
snd_usb_caiaq_midi_output_done, dev);
-
+
init_waitqueue_head(&dev->ep1_wait_queue);
init_waitqueue_head(&dev->prepare_wait_queue);
-
+
if (usb_submit_urb(&dev->ep1_in_urb, GFP_KERNEL) != 0)
return -EIO;
@@ -420,10 +420,10 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
usb_string(usb_dev, usb_dev->descriptor.iManufacturer,
dev->vendor_name, CAIAQ_USB_STR_LEN);
-
+
usb_string(usb_dev, usb_dev->descriptor.iProduct,
dev->product_name, CAIAQ_USB_STR_LEN);
-
+
usb_string(usb_dev, usb_dev->descriptor.iSerialNumber,
dev->serial, CAIAQ_USB_STR_LEN);
@@ -431,7 +431,7 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
c = strchr(dev->serial, ' ');
if (c)
*c = '\0';
-
+
strcpy(card->driver, MODNAME);
strcpy(card->shortname, dev->product_name);
@@ -449,18 +449,18 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
return 0;
}
-static int __devinit snd_probe(struct usb_interface *intf,
+static int __devinit snd_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{
int ret;
struct snd_card *card;
struct usb_device *device = interface_to_usbdev(intf);
-
+
ret = create_card(device, &card);
-
+
if (ret < 0)
return ret;
-
+
usb_set_intfdata(intf, card);
ret = init_card(caiaqdev(card));
if (ret < 0) {
@@ -468,7 +468,7 @@ static int __devinit snd_probe(struct usb_interface *intf,
snd_card_free(card);
return ret;
}
-
+
return 0;
}
@@ -489,10 +489,10 @@ static void snd_disconnect(struct usb_interface *intf)
snd_usb_caiaq_input_free(dev);
#endif
snd_usb_caiaq_audio_free(dev);
-
+
usb_kill_urb(&dev->ep1_in_urb);
usb_kill_urb(&dev->midi_out_urb);
-
+
snd_card_free(card);
usb_reset_device(interface_to_usbdev(intf));
}
diff --git a/sound/usb/caiaq/midi.c b/sound/usb/caiaq/midi.c
index 8fa8cd8..538e8c0 100644
--- a/sound/usb/caiaq/midi.c
+++ b/sound/usb/caiaq/midi.c
@@ -40,7 +40,7 @@ static void snd_usb_caiaq_midi_input_trigger(struct snd_rawmidi_substream *subst
if (!dev)
return;
-
+
dev->midi_receive_substream = up ? substream : NULL;
}
@@ -64,18 +64,18 @@ static void snd_usb_caiaq_midi_send(struct snd_usb_caiaqdev *dev,
struct snd_rawmidi_substream *substream)
{
int len, ret;
-
+
dev->midi_out_buf[0] = EP1_CMD_MIDI_WRITE;
dev->midi_out_buf[1] = 0; /* port */
len = snd_rawmidi_transmit(substream, dev->midi_out_buf + 3,
EP1_BUFSIZE - 3);
-
+
if (len <= 0)
return;
-
+
dev->midi_out_buf[2] = len;
dev->midi_out_urb.transfer_buffer_length = len+3;
-
+
ret = usb_submit_urb(&dev->midi_out_urb, GFP_ATOMIC);
if (ret < 0)
log("snd_usb_caiaq_midi_send(%p): usb_submit_urb() failed,"
@@ -88,7 +88,7 @@ static void snd_usb_caiaq_midi_send(struct snd_usb_caiaqdev *dev,
static void snd_usb_caiaq_midi_output_trigger(struct snd_rawmidi_substream *substream, int up)
{
struct snd_usb_caiaqdev *dev = substream->rmidi->private_data;
-
+
if (up) {
dev->midi_out_substream = substream;
if (!dev->midi_out_active)
@@ -113,12 +113,12 @@ static struct snd_rawmidi_ops snd_usb_caiaq_midi_input =
.trigger = snd_usb_caiaq_midi_input_trigger,
};
-void snd_usb_caiaq_midi_handle_input(struct snd_usb_caiaqdev *dev,
+void snd_usb_caiaq_midi_handle_input(struct snd_usb_caiaqdev *dev,
int port, const char *buf, int len)
{
if (!dev->midi_receive_substream)
return;
-
+
snd_rawmidi_receive(dev->midi_receive_substream, buf, len);
}
@@ -142,16 +142,16 @@ int snd_usb_caiaq_midi_init(struct snd_usb_caiaqdev *device)
if (device->spec.num_midi_out > 0) {
rmidi->info_flags |= SNDRV_RAWMIDI_INFO_OUTPUT;
- snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_OUTPUT,
+ snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_OUTPUT,
&snd_usb_caiaq_midi_output);
}
if (device->spec.num_midi_in > 0) {
rmidi->info_flags |= SNDRV_RAWMIDI_INFO_INPUT;
- snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_INPUT,
+ snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_INPUT,
&snd_usb_caiaq_midi_input);
}
-
+
device->rmidi = rmidi;
return 0;
@@ -160,7 +160,7 @@ int snd_usb_caiaq_midi_init(struct snd_usb_caiaqdev *device)
void snd_usb_caiaq_midi_output_done(struct urb* urb)
{
struct snd_usb_caiaqdev *dev = urb->context;
-
+
dev->midi_out_active = 0;
if (urb->status != 0)
return;
--
1.6.3.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname
2009-05-30 21:44 [PATCH 1/5] ALSA: snd_usb_caiaq: clean whitespaces Daniel Mack
@ 2009-05-30 21:44 ` Daniel Mack
2009-05-30 21:44 ` [PATCH 3/5] ALSA: snd_usb_caiaq: use strncpy Daniel Mack
0 siblings, 1 reply; 24+ messages in thread
From: Daniel Mack @ 2009-05-30 21:44 UTC (permalink / raw)
To: alsa-devel
Give the card an 'id' name which will prevent ALSA from calling
choose_default_name(). This implementation only took the last part of a
name containing whitespaces which for example caused 'Audio 4 DJ' to be
shortened to 'DJ', which was not very descriptive.
The implementation now takes the short name and removes all whitespaces
from it which is much nicer.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
---
sound/usb/caiaq/device.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/sound/usb/caiaq/device.c b/sound/usb/caiaq/device.c
index 9be0f2e..7fdecde 100644
--- a/sound/usb/caiaq/device.c
+++ b/sound/usb/caiaq/device.c
@@ -435,6 +435,12 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
strcpy(card->driver, MODNAME);
strcpy(card->shortname, dev->product_name);
+ /* fill card->id with a shortened version of the product string
+ * which does not contain any whitespaces */
+ for (c = card->shortname, len = 0; *c && len < sizeof(card->id); c++)
+ if (*c != ' ')
+ card->id[len++] = *c;
+
len = snprintf(card->longname, sizeof(card->longname),
"%s %s (serial %s, ",
dev->vendor_name, dev->product_name, dev->serial);
--
1.6.3.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 3/5] ALSA: snd_usb_caiaq: use strncpy
2009-05-30 21:44 ` [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname Daniel Mack
@ 2009-05-30 21:44 ` Daniel Mack
2009-05-30 21:44 ` [PATCH 4/5] ALSA: snd_usb_caiaq: give better longname Daniel Mack
2009-06-01 8:32 ` [PATCH 3/5] ALSA: snd_usb_caiaq: use strncpy Takashi Iwai
0 siblings, 2 replies; 24+ messages in thread
From: Daniel Mack @ 2009-05-30 21:44 UTC (permalink / raw)
To: alsa-devel
Signed-off-by: Daniel Mack <daniel@caiaq.de>
---
sound/usb/caiaq/device.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/usb/caiaq/device.c b/sound/usb/caiaq/device.c
index 7fdecde..f8915a5 100644
--- a/sound/usb/caiaq/device.c
+++ b/sound/usb/caiaq/device.c
@@ -432,8 +432,8 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
if (c)
*c = '\0';
- strcpy(card->driver, MODNAME);
- strcpy(card->shortname, dev->product_name);
+ strncpy(card->driver, MODNAME, sizeof(card->driver));
+ strncpy(card->shortname, dev->product_name, sizeof(card->shortname));
/* fill card->id with a shortened version of the product string
* which does not contain any whitespaces */
--
1.6.3.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 4/5] ALSA: snd_usb_caiaq: give better longname
2009-05-30 21:44 ` [PATCH 3/5] ALSA: snd_usb_caiaq: use strncpy Daniel Mack
@ 2009-05-30 21:44 ` Daniel Mack
2009-05-30 21:44 ` [PATCH 5/5] ALSA: snd_usb_caiaq: bump version number Daniel Mack
2009-06-01 8:32 ` [PATCH 3/5] ALSA: snd_usb_caiaq: use strncpy Takashi Iwai
1 sibling, 1 reply; 24+ messages in thread
From: Daniel Mack @ 2009-05-30 21:44 UTC (permalink / raw)
To: alsa-devel
The serial number is of no interest in the longname, remove it. This
gives space for the usb path information which is more informative.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
---
sound/usb/caiaq/device.c | 23 +++++------------------
sound/usb/caiaq/device.h | 1 -
2 files changed, 5 insertions(+), 19 deletions(-)
diff --git a/sound/usb/caiaq/device.c b/sound/usb/caiaq/device.c
index f8915a5..1970cdc 100644
--- a/sound/usb/caiaq/device.c
+++ b/sound/usb/caiaq/device.c
@@ -382,7 +382,7 @@ static int create_card(struct usb_device* usb_dev, struct snd_card **cardp)
static int __devinit init_card(struct snd_usb_caiaqdev *dev)
{
- char *c;
+ char *c, usbpath[32];
struct usb_device *usb_dev = dev->chip.dev;
struct snd_card *card = dev->chip.card;
int err, len;
@@ -424,14 +424,6 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
usb_string(usb_dev, usb_dev->descriptor.iProduct,
dev->product_name, CAIAQ_USB_STR_LEN);
- usb_string(usb_dev, usb_dev->descriptor.iSerialNumber,
- dev->serial, CAIAQ_USB_STR_LEN);
-
- /* terminate serial string at first white space occurence */
- c = strchr(dev->serial, ' ');
- if (c)
- *c = '\0';
-
strncpy(card->driver, MODNAME, sizeof(card->driver));
strncpy(card->shortname, dev->product_name, sizeof(card->shortname));
@@ -441,16 +433,11 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
if (*c != ' ')
card->id[len++] = *c;
- len = snprintf(card->longname, sizeof(card->longname),
- "%s %s (serial %s, ",
- dev->vendor_name, dev->product_name, dev->serial);
-
- if (len < sizeof(card->longname) - 2)
- len += usb_make_path(usb_dev, card->longname + len,
- sizeof(card->longname) - len);
+ usb_make_path(usb_dev, usbpath, sizeof(usbpath));
+ snprintf(card->longname, sizeof(card->longname),
+ "%s %s (%s)",
+ dev->vendor_name, dev->product_name, usbpath);
- card->longname[len++] = ')';
- card->longname[len] = '\0';
setup_card(dev);
return 0;
}
diff --git a/sound/usb/caiaq/device.h b/sound/usb/caiaq/device.h
index 4cce1ad..ece7351 100644
--- a/sound/usb/caiaq/device.h
+++ b/sound/usb/caiaq/device.h
@@ -81,7 +81,6 @@ struct snd_usb_caiaqdev {
char vendor_name[CAIAQ_USB_STR_LEN];
char product_name[CAIAQ_USB_STR_LEN];
- char serial[CAIAQ_USB_STR_LEN];
int n_streams, n_audio_in, n_audio_out;
int streaming, first_packet, output_running;
--
1.6.3.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 5/5] ALSA: snd_usb_caiaq: bump version number
2009-05-30 21:44 ` [PATCH 4/5] ALSA: snd_usb_caiaq: give better longname Daniel Mack
@ 2009-05-30 21:44 ` Daniel Mack
0 siblings, 0 replies; 24+ messages in thread
From: Daniel Mack @ 2009-05-30 21:44 UTC (permalink / raw)
To: alsa-devel
Signed-off-by: Daniel Mack <daniel@caiaq.de>
---
sound/usb/caiaq/device.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/sound/usb/caiaq/device.c b/sound/usb/caiaq/device.c
index 1970cdc..21201d5 100644
--- a/sound/usb/caiaq/device.c
+++ b/sound/usb/caiaq/device.c
@@ -35,7 +35,7 @@
#include "input.h"
MODULE_AUTHOR("Daniel Mack <daniel@caiaq.de>");
-MODULE_DESCRIPTION("caiaq USB audio, version 1.3.14");
+MODULE_DESCRIPTION("caiaq USB audio, version 1.3.15");
MODULE_LICENSE("GPL");
MODULE_SUPPORTED_DEVICE("{{Native Instruments, RigKontrol2},"
"{Native Instruments, RigKontrol3},"
--
1.6.3.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH 3/5] ALSA: snd_usb_caiaq: use strncpy
2009-05-30 21:44 ` [PATCH 3/5] ALSA: snd_usb_caiaq: use strncpy Daniel Mack
2009-05-30 21:44 ` [PATCH 4/5] ALSA: snd_usb_caiaq: give better longname Daniel Mack
@ 2009-06-01 8:32 ` Takashi Iwai
2009-06-01 9:23 ` Daniel Mack
1 sibling, 1 reply; 24+ messages in thread
From: Takashi Iwai @ 2009-06-01 8:32 UTC (permalink / raw)
To: Daniel Mack; +Cc: alsa-devel
At Sat, 30 May 2009 23:44:23 +0200,
Daniel Mack wrote:
>
> Signed-off-by: Daniel Mack <daniel@caiaq.de>
You should use strlcpy() instead of strncpy(). The latter doesn't
terminate the oversized string.
Takashi
> ---
> sound/usb/caiaq/device.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sound/usb/caiaq/device.c b/sound/usb/caiaq/device.c
> index 7fdecde..f8915a5 100644
> --- a/sound/usb/caiaq/device.c
> +++ b/sound/usb/caiaq/device.c
> @@ -432,8 +432,8 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
> if (c)
> *c = '\0';
>
> - strcpy(card->driver, MODNAME);
> - strcpy(card->shortname, dev->product_name);
> + strncpy(card->driver, MODNAME, sizeof(card->driver));
> + strncpy(card->shortname, dev->product_name, sizeof(card->shortname));
>
> /* fill card->id with a shortened version of the product string
> * which does not contain any whitespaces */
> --
> 1.6.3.1
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 3/5] ALSA: snd_usb_caiaq: use strncpy
2009-06-01 8:32 ` [PATCH 3/5] ALSA: snd_usb_caiaq: use strncpy Takashi Iwai
@ 2009-06-01 9:23 ` Daniel Mack
2009-06-01 16:55 ` Takashi Iwai
0 siblings, 1 reply; 24+ messages in thread
From: Daniel Mack @ 2009-06-01 9:23 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel
On Mon, Jun 01, 2009 at 10:32:21AM +0200, Takashi Iwai wrote:
> > Signed-off-by: Daniel Mack <daniel@caiaq.de>
>
> You should use strlcpy() instead of strncpy(). The latter doesn't
> terminate the oversized string.
Right. Want me to resend or could you do that on the fly while
commiting?
Daniel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 3/5] ALSA: snd_usb_caiaq: use strncpy
2009-06-01 9:23 ` Daniel Mack
@ 2009-06-01 16:55 ` Takashi Iwai
2009-06-01 19:36 ` [PATCH 1/5] ALSA: snd_usb_caiaq: clean whitespaces Daniel Mack
0 siblings, 1 reply; 24+ messages in thread
From: Takashi Iwai @ 2009-06-01 16:55 UTC (permalink / raw)
To: Daniel Mack; +Cc: alsa-devel
At Mon, 1 Jun 2009 11:23:54 +0200,
Daniel Mack wrote:
>
> On Mon, Jun 01, 2009 at 10:32:21AM +0200, Takashi Iwai wrote:
> > > Signed-off-by: Daniel Mack <daniel@caiaq.de>
> >
> > You should use strlcpy() instead of strncpy(). The latter doesn't
> > terminate the oversized string.
>
> Right. Want me to resend or could you do that on the fly while
> commiting?
Well, I'm going to review the whole patches again tomorrow.
Would be nice if you resend the latest fixed ones.
thanks,
Takashi
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 1/5] ALSA: snd_usb_caiaq: clean whitespaces
2009-06-01 16:55 ` Takashi Iwai
@ 2009-06-01 19:36 ` Daniel Mack
2009-06-01 19:36 ` [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname Daniel Mack
0 siblings, 1 reply; 24+ messages in thread
From: Daniel Mack @ 2009-06-01 19:36 UTC (permalink / raw)
To: alsa-devel
Cosmetic changes only, no code change.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
---
sound/usb/caiaq/audio.c | 88 +++++++++++++++++++++++-----------------------
sound/usb/caiaq/device.c | 60 ++++++++++++++++----------------
sound/usb/caiaq/midi.c | 24 ++++++------
3 files changed, 86 insertions(+), 86 deletions(-)
diff --git a/sound/usb/caiaq/audio.c b/sound/usb/caiaq/audio.c
index b13ce76..b144513 100644
--- a/sound/usb/caiaq/audio.c
+++ b/sound/usb/caiaq/audio.c
@@ -42,10 +42,10 @@
(stream << 1) | (~(i / (dev->n_streams * BYTES_PER_SAMPLE_USB)) & 1)
static struct snd_pcm_hardware snd_usb_caiaq_pcm_hardware = {
- .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+ .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_BLOCK_TRANSFER),
.formats = SNDRV_PCM_FMTBIT_S24_3BE,
- .rates = (SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 |
+ .rates = (SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 |
SNDRV_PCM_RATE_96000),
.rate_min = 44100,
.rate_max = 0, /* will overwrite later */
@@ -68,7 +68,7 @@ activate_substream(struct snd_usb_caiaqdev *dev,
dev->sub_capture[sub->number] = sub;
}
-static void
+static void
deactivate_substream(struct snd_usb_caiaqdev *dev,
struct snd_pcm_substream *sub)
{
@@ -118,7 +118,7 @@ static int stream_start(struct snd_usb_caiaqdev *dev)
return -EPIPE;
}
}
-
+
return 0;
}
@@ -129,7 +129,7 @@ static void stream_stop(struct snd_usb_caiaqdev *dev)
debug("%s(%p)\n", __func__, dev);
if (!dev->streaming)
return;
-
+
dev->streaming = 0;
for (i = 0; i < N_URBS; i++) {
@@ -154,7 +154,7 @@ static int snd_usb_caiaq_substream_close(struct snd_pcm_substream *substream)
debug("%s(%p)\n", __func__, substream);
if (all_substreams_zero(dev->sub_playback) &&
all_substreams_zero(dev->sub_capture)) {
- /* when the last client has stopped streaming,
+ /* when the last client has stopped streaming,
* all sample rates are allowed again */
stream_stop(dev);
dev->pcm_info.rates = dev->samplerates;
@@ -194,7 +194,7 @@ static int snd_usb_caiaq_pcm_prepare(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime;
debug("%s(%p)\n", __func__, substream);
-
+
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
dev->period_out_count[index] = BYTES_PER_SAMPLE + 1;
dev->audio_out_buf_pos[index] = BYTES_PER_SAMPLE + 1;
@@ -205,19 +205,19 @@ static int snd_usb_caiaq_pcm_prepare(struct snd_pcm_substream *substream)
if (dev->streaming)
return 0;
-
+
/* the first client that opens a stream defines the sample rate
* setting for all subsequent calls, until the last client closed. */
for (i=0; i < ARRAY_SIZE(rates); i++)
if (runtime->rate == rates[i])
dev->pcm_info.rates = 1 << i;
-
+
snd_pcm_limit_hw_rates(runtime);
bytes_per_sample = BYTES_PER_SAMPLE;
if (dev->spec.data_alignment == 2)
bytes_per_sample++;
-
+
bpp = ((runtime->rate / 8000) + CLOCK_DRIFT_TOLERANCE)
* bytes_per_sample * CHANNELS_PER_STREAM * dev->n_streams;
@@ -232,7 +232,7 @@ static int snd_usb_caiaq_pcm_prepare(struct snd_pcm_substream *substream)
ret = stream_start(dev);
if (ret)
return ret;
-
+
dev->output_running = 0;
wait_event_timeout(dev->prepare_wait_queue, dev->output_running, HZ);
if (!dev->output_running) {
@@ -273,7 +273,7 @@ snd_usb_caiaq_pcm_pointer(struct snd_pcm_substream *sub)
return SNDRV_PCM_POS_XRUN;
if (sub->stream == SNDRV_PCM_STREAM_PLAYBACK)
- return bytes_to_frames(sub->runtime,
+ return bytes_to_frames(sub->runtime,
dev->audio_out_buf_pos[index]);
else
return bytes_to_frames(sub->runtime,
@@ -291,7 +291,7 @@ static struct snd_pcm_ops snd_usb_caiaq_ops = {
.trigger = snd_usb_caiaq_pcm_trigger,
.pointer = snd_usb_caiaq_pcm_pointer
};
-
+
static void check_for_elapsed_periods(struct snd_usb_caiaqdev *dev,
struct snd_pcm_substream **subs)
{
@@ -333,7 +333,7 @@ static void read_in_urb_mode0(struct snd_usb_caiaqdev *dev,
struct snd_pcm_runtime *rt = sub->runtime;
char *audio_buf = rt->dma_area;
int sz = frames_to_bytes(rt, rt->buffer_size);
- audio_buf[dev->audio_in_buf_pos[stream]++]
+ audio_buf[dev->audio_in_buf_pos[stream]++]
= usb_buf[i];
dev->period_in_count[stream]++;
if (dev->audio_in_buf_pos[stream] == sz)
@@ -354,14 +354,14 @@ static void read_in_urb_mode2(struct snd_usb_caiaqdev *dev,
for (i = 0; i < iso->actual_length;) {
if (i % (dev->n_streams * BYTES_PER_SAMPLE_USB) == 0) {
- for (stream = 0;
- stream < dev->n_streams;
+ for (stream = 0;
+ stream < dev->n_streams;
stream++, i++) {
if (dev->first_packet)
continue;
check_byte = MAKE_CHECKBYTE(dev, stream, i);
-
+
if ((usb_buf[i] & 0x3f) != check_byte)
dev->input_panic = 1;
@@ -410,21 +410,21 @@ static void read_in_urb(struct snd_usb_caiaqdev *dev,
}
if ((dev->input_panic || dev->output_panic) && !dev->warned) {
- debug("streaming error detected %s %s\n",
+ debug("streaming error detected %s %s\n",
dev->input_panic ? "(input)" : "",
dev->output_panic ? "(output)" : "");
dev->warned = 1;
}
}
-static void fill_out_urb(struct snd_usb_caiaqdev *dev,
- struct urb *urb,
+static void fill_out_urb(struct snd_usb_caiaqdev *dev,
+ struct urb *urb,
const struct usb_iso_packet_descriptor *iso)
{
unsigned char *usb_buf = urb->transfer_buffer + iso->offset;
struct snd_pcm_substream *sub;
int stream, i;
-
+
for (i = 0; i < iso->length;) {
for (stream = 0; stream < dev->n_streams; stream++, i++) {
sub = dev->sub_playback[stream];
@@ -444,7 +444,7 @@ static void fill_out_urb(struct snd_usb_caiaqdev *dev,
/* fill in the check bytes */
if (dev->spec.data_alignment == 2 &&
- i % (dev->n_streams * BYTES_PER_SAMPLE_USB) ==
+ i % (dev->n_streams * BYTES_PER_SAMPLE_USB) ==
(dev->n_streams * CHANNELS_PER_STREAM))
for (stream = 0; stream < dev->n_streams; stream++, i++)
usb_buf[i] = MAKE_CHECKBYTE(dev, stream, i);
@@ -453,7 +453,7 @@ static void fill_out_urb(struct snd_usb_caiaqdev *dev,
static void read_completed(struct urb *urb)
{
- struct snd_usb_caiaq_cb_info *info = urb->context;
+ struct snd_usb_caiaq_cb_info *info = urb->context;
struct snd_usb_caiaqdev *dev;
struct urb *out;
int frame, len, send_it = 0, outframe = 0;
@@ -478,7 +478,7 @@ static void read_completed(struct urb *urb)
out->iso_frame_desc[outframe].length = len;
out->iso_frame_desc[outframe].actual_length = 0;
out->iso_frame_desc[outframe].offset = BYTES_PER_FRAME * frame;
-
+
if (len > 0) {
spin_lock(&dev->spinlock);
fill_out_urb(dev, out, &out->iso_frame_desc[outframe]);
@@ -497,14 +497,14 @@ static void read_completed(struct urb *urb)
out->transfer_flags = URB_ISO_ASAP;
usb_submit_urb(out, GFP_ATOMIC);
}
-
+
/* re-submit inbound urb */
for (frame = 0; frame < FRAMES_PER_URB; frame++) {
urb->iso_frame_desc[frame].offset = BYTES_PER_FRAME * frame;
urb->iso_frame_desc[frame].length = BYTES_PER_FRAME;
urb->iso_frame_desc[frame].actual_length = 0;
}
-
+
urb->number_of_packets = FRAMES_PER_URB;
urb->transfer_flags = URB_ISO_ASAP;
usb_submit_urb(urb, GFP_ATOMIC);
@@ -528,7 +528,7 @@ static struct urb **alloc_urbs(struct snd_usb_caiaqdev *dev, int dir, int *ret)
struct usb_device *usb_dev = dev->chip.dev;
unsigned int pipe;
- pipe = (dir == SNDRV_PCM_STREAM_PLAYBACK) ?
+ pipe = (dir == SNDRV_PCM_STREAM_PLAYBACK) ?
usb_sndisocpipe(usb_dev, ENDPOINT_PLAYBACK) :
usb_rcvisocpipe(usb_dev, ENDPOINT_CAPTURE);
@@ -547,25 +547,25 @@ static struct urb **alloc_urbs(struct snd_usb_caiaqdev *dev, int dir, int *ret)
return urbs;
}
- urbs[i]->transfer_buffer =
+ urbs[i]->transfer_buffer =
kmalloc(FRAMES_PER_URB * BYTES_PER_FRAME, GFP_KERNEL);
if (!urbs[i]->transfer_buffer) {
log("unable to kmalloc() transfer buffer, OOM!?\n");
*ret = -ENOMEM;
return urbs;
}
-
+
for (frame = 0; frame < FRAMES_PER_URB; frame++) {
- struct usb_iso_packet_descriptor *iso =
+ struct usb_iso_packet_descriptor *iso =
&urbs[i]->iso_frame_desc[frame];
-
+
iso->offset = BYTES_PER_FRAME * frame;
iso->length = BYTES_PER_FRAME;
}
-
+
urbs[i]->dev = usb_dev;
urbs[i]->pipe = pipe;
- urbs[i]->transfer_buffer_length = FRAMES_PER_URB
+ urbs[i]->transfer_buffer_length = FRAMES_PER_URB
* BYTES_PER_FRAME;
urbs[i]->context = &dev->data_cb_info[i];
urbs[i]->interval = 1;
@@ -589,7 +589,7 @@ static void free_urbs(struct urb **urbs)
for (i = 0; i < N_URBS; i++) {
if (!urbs[i])
continue;
-
+
usb_kill_urb(urbs[i]);
kfree(urbs[i]->transfer_buffer);
usb_free_urb(urbs[i]);
@@ -602,11 +602,11 @@ int snd_usb_caiaq_audio_init(struct snd_usb_caiaqdev *dev)
{
int i, ret;
- dev->n_audio_in = max(dev->spec.num_analog_audio_in,
- dev->spec.num_digital_audio_in) /
+ dev->n_audio_in = max(dev->spec.num_analog_audio_in,
+ dev->spec.num_digital_audio_in) /
CHANNELS_PER_STREAM;
dev->n_audio_out = max(dev->spec.num_analog_audio_out,
- dev->spec.num_digital_audio_out) /
+ dev->spec.num_digital_audio_out) /
CHANNELS_PER_STREAM;
dev->n_streams = max(dev->n_audio_in, dev->n_audio_out);
@@ -619,7 +619,7 @@ int snd_usb_caiaq_audio_init(struct snd_usb_caiaqdev *dev)
return -EINVAL;
}
- ret = snd_pcm_new(dev->chip.card, dev->product_name, 0,
+ ret = snd_pcm_new(dev->chip.card, dev->product_name, 0,
dev->n_audio_out, dev->n_audio_in, &dev->pcm);
if (ret < 0) {
@@ -632,7 +632,7 @@ int snd_usb_caiaq_audio_init(struct snd_usb_caiaqdev *dev)
memset(dev->sub_playback, 0, sizeof(dev->sub_playback));
memset(dev->sub_capture, 0, sizeof(dev->sub_capture));
-
+
memcpy(&dev->pcm_info, &snd_usb_caiaq_pcm_hardware,
sizeof(snd_usb_caiaq_pcm_hardware));
@@ -651,9 +651,9 @@ int snd_usb_caiaq_audio_init(struct snd_usb_caiaqdev *dev)
break;
}
- snd_pcm_set_ops(dev->pcm, SNDRV_PCM_STREAM_PLAYBACK,
+ snd_pcm_set_ops(dev->pcm, SNDRV_PCM_STREAM_PLAYBACK,
&snd_usb_caiaq_ops);
- snd_pcm_set_ops(dev->pcm, SNDRV_PCM_STREAM_CAPTURE,
+ snd_pcm_set_ops(dev->pcm, SNDRV_PCM_STREAM_CAPTURE,
&snd_usb_caiaq_ops);
snd_pcm_lib_preallocate_pages_for_all(dev->pcm,
@@ -662,7 +662,7 @@ int snd_usb_caiaq_audio_init(struct snd_usb_caiaqdev *dev)
MAX_BUFFER_SIZE, MAX_BUFFER_SIZE);
dev->data_cb_info =
- kmalloc(sizeof(struct snd_usb_caiaq_cb_info) * N_URBS,
+ kmalloc(sizeof(struct snd_usb_caiaq_cb_info) * N_URBS,
GFP_KERNEL);
if (!dev->data_cb_info)
@@ -672,14 +672,14 @@ int snd_usb_caiaq_audio_init(struct snd_usb_caiaqdev *dev)
dev->data_cb_info[i].dev = dev;
dev->data_cb_info[i].index = i;
}
-
+
dev->data_urbs_in = alloc_urbs(dev, SNDRV_PCM_STREAM_CAPTURE, &ret);
if (ret < 0) {
kfree(dev->data_cb_info);
free_urbs(dev->data_urbs_in);
return ret;
}
-
+
dev->data_urbs_out = alloc_urbs(dev, SNDRV_PCM_STREAM_PLAYBACK, &ret);
if (ret < 0) {
kfree(dev->data_cb_info);
diff --git a/sound/usb/caiaq/device.c b/sound/usb/caiaq/device.c
index 515de1c..9be0f2e 100644
--- a/sound/usb/caiaq/device.c
+++ b/sound/usb/caiaq/device.c
@@ -79,7 +79,7 @@ static struct usb_device_id snd_usb_id_table[] = {
{
.match_flags = USB_DEVICE_ID_MATCH_DEVICE,
.idVendor = USB_VID_NATIVEINSTRUMENTS,
- .idProduct = USB_PID_RIGKONTROL2
+ .idProduct = USB_PID_RIGKONTROL2
},
{
.match_flags = USB_DEVICE_ID_MATCH_DEVICE,
@@ -197,7 +197,7 @@ int snd_usb_caiaq_send_command(struct snd_usb_caiaqdev *dev,
if (buffer && len > 0)
memcpy(dev->ep1_out_buf+1, buffer, len);
-
+
dev->ep1_out_buf[0] = command;
return usb_bulk_msg(usb_dev, usb_sndbulkpipe(usb_dev, 1),
dev->ep1_out_buf, len+1, &actual_len, 200);
@@ -208,7 +208,7 @@ int snd_usb_caiaq_set_audio_params (struct snd_usb_caiaqdev *dev,
{
int ret;
char tmp[5];
-
+
switch (rate) {
case 44100: tmp[0] = SAMPLERATE_44100; break;
case 48000: tmp[0] = SAMPLERATE_48000; break;
@@ -237,12 +237,12 @@ int snd_usb_caiaq_set_audio_params (struct snd_usb_caiaqdev *dev,
if (ret)
return ret;
-
- if (!wait_event_timeout(dev->ep1_wait_queue,
+
+ if (!wait_event_timeout(dev->ep1_wait_queue,
dev->audio_parm_answer >= 0, HZ))
return -EPIPE;
-
- if (dev->audio_parm_answer != 1)
+
+ if (dev->audio_parm_answer != 1)
debug("unable to set the device's audio params\n");
else
dev->bpp = bpp;
@@ -250,8 +250,8 @@ int snd_usb_caiaq_set_audio_params (struct snd_usb_caiaqdev *dev,
return dev->audio_parm_answer == 1 ? 0 : -EINVAL;
}
-int snd_usb_caiaq_set_auto_msg (struct snd_usb_caiaqdev *dev,
- int digital, int analog, int erp)
+int snd_usb_caiaq_set_auto_msg(struct snd_usb_caiaqdev *dev,
+ int digital, int analog, int erp)
{
char tmp[3] = { digital, analog, erp };
return snd_usb_caiaq_send_command(dev, EP1_CMD_AUTO_MSG,
@@ -262,7 +262,7 @@ static void __devinit setup_card(struct snd_usb_caiaqdev *dev)
{
int ret;
char val[4];
-
+
/* device-specific startup specials */
switch (dev->chip.usb_id) {
case USB_ID(USB_VID_NATIVEINSTRUMENTS, USB_PID_RIGKONTROL2):
@@ -314,7 +314,7 @@ static void __devinit setup_card(struct snd_usb_caiaqdev *dev)
dev->control_state, 1);
break;
}
-
+
if (dev->spec.num_analog_audio_out +
dev->spec.num_analog_audio_in +
dev->spec.num_digital_audio_out +
@@ -323,7 +323,7 @@ static void __devinit setup_card(struct snd_usb_caiaqdev *dev)
if (ret < 0)
log("Unable to set up audio system (ret=%d)\n", ret);
}
-
+
if (dev->spec.num_midi_in +
dev->spec.num_midi_out > 0) {
ret = snd_usb_caiaq_midi_init(dev);
@@ -363,7 +363,7 @@ static int create_card(struct usb_device* usb_dev, struct snd_card **cardp)
if (devnum >= SNDRV_CARDS)
return -ENODEV;
- err = snd_card_create(index[devnum], id[devnum], THIS_MODULE,
+ err = snd_card_create(index[devnum], id[devnum], THIS_MODULE,
sizeof(struct snd_usb_caiaqdev), &card);
if (err < 0)
return err;
@@ -386,7 +386,7 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
struct usb_device *usb_dev = dev->chip.dev;
struct snd_card *card = dev->chip.card;
int err, len;
-
+
if (usb_set_interface(usb_dev, 0, 1) != 0) {
log("can't set alt interface.\n");
return -EIO;
@@ -395,19 +395,19 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
usb_init_urb(&dev->ep1_in_urb);
usb_init_urb(&dev->midi_out_urb);
- usb_fill_bulk_urb(&dev->ep1_in_urb, usb_dev,
+ usb_fill_bulk_urb(&dev->ep1_in_urb, usb_dev,
usb_rcvbulkpipe(usb_dev, 0x1),
- dev->ep1_in_buf, EP1_BUFSIZE,
+ dev->ep1_in_buf, EP1_BUFSIZE,
usb_ep1_command_reply_dispatch, dev);
- usb_fill_bulk_urb(&dev->midi_out_urb, usb_dev,
+ usb_fill_bulk_urb(&dev->midi_out_urb, usb_dev,
usb_sndbulkpipe(usb_dev, 0x1),
- dev->midi_out_buf, EP1_BUFSIZE,
+ dev->midi_out_buf, EP1_BUFSIZE,
snd_usb_caiaq_midi_output_done, dev);
-
+
init_waitqueue_head(&dev->ep1_wait_queue);
init_waitqueue_head(&dev->prepare_wait_queue);
-
+
if (usb_submit_urb(&dev->ep1_in_urb, GFP_KERNEL) != 0)
return -EIO;
@@ -420,10 +420,10 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
usb_string(usb_dev, usb_dev->descriptor.iManufacturer,
dev->vendor_name, CAIAQ_USB_STR_LEN);
-
+
usb_string(usb_dev, usb_dev->descriptor.iProduct,
dev->product_name, CAIAQ_USB_STR_LEN);
-
+
usb_string(usb_dev, usb_dev->descriptor.iSerialNumber,
dev->serial, CAIAQ_USB_STR_LEN);
@@ -431,7 +431,7 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
c = strchr(dev->serial, ' ');
if (c)
*c = '\0';
-
+
strcpy(card->driver, MODNAME);
strcpy(card->shortname, dev->product_name);
@@ -449,18 +449,18 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
return 0;
}
-static int __devinit snd_probe(struct usb_interface *intf,
+static int __devinit snd_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{
int ret;
struct snd_card *card;
struct usb_device *device = interface_to_usbdev(intf);
-
+
ret = create_card(device, &card);
-
+
if (ret < 0)
return ret;
-
+
usb_set_intfdata(intf, card);
ret = init_card(caiaqdev(card));
if (ret < 0) {
@@ -468,7 +468,7 @@ static int __devinit snd_probe(struct usb_interface *intf,
snd_card_free(card);
return ret;
}
-
+
return 0;
}
@@ -489,10 +489,10 @@ static void snd_disconnect(struct usb_interface *intf)
snd_usb_caiaq_input_free(dev);
#endif
snd_usb_caiaq_audio_free(dev);
-
+
usb_kill_urb(&dev->ep1_in_urb);
usb_kill_urb(&dev->midi_out_urb);
-
+
snd_card_free(card);
usb_reset_device(interface_to_usbdev(intf));
}
diff --git a/sound/usb/caiaq/midi.c b/sound/usb/caiaq/midi.c
index 8fa8cd8..538e8c0 100644
--- a/sound/usb/caiaq/midi.c
+++ b/sound/usb/caiaq/midi.c
@@ -40,7 +40,7 @@ static void snd_usb_caiaq_midi_input_trigger(struct snd_rawmidi_substream *subst
if (!dev)
return;
-
+
dev->midi_receive_substream = up ? substream : NULL;
}
@@ -64,18 +64,18 @@ static void snd_usb_caiaq_midi_send(struct snd_usb_caiaqdev *dev,
struct snd_rawmidi_substream *substream)
{
int len, ret;
-
+
dev->midi_out_buf[0] = EP1_CMD_MIDI_WRITE;
dev->midi_out_buf[1] = 0; /* port */
len = snd_rawmidi_transmit(substream, dev->midi_out_buf + 3,
EP1_BUFSIZE - 3);
-
+
if (len <= 0)
return;
-
+
dev->midi_out_buf[2] = len;
dev->midi_out_urb.transfer_buffer_length = len+3;
-
+
ret = usb_submit_urb(&dev->midi_out_urb, GFP_ATOMIC);
if (ret < 0)
log("snd_usb_caiaq_midi_send(%p): usb_submit_urb() failed,"
@@ -88,7 +88,7 @@ static void snd_usb_caiaq_midi_send(struct snd_usb_caiaqdev *dev,
static void snd_usb_caiaq_midi_output_trigger(struct snd_rawmidi_substream *substream, int up)
{
struct snd_usb_caiaqdev *dev = substream->rmidi->private_data;
-
+
if (up) {
dev->midi_out_substream = substream;
if (!dev->midi_out_active)
@@ -113,12 +113,12 @@ static struct snd_rawmidi_ops snd_usb_caiaq_midi_input =
.trigger = snd_usb_caiaq_midi_input_trigger,
};
-void snd_usb_caiaq_midi_handle_input(struct snd_usb_caiaqdev *dev,
+void snd_usb_caiaq_midi_handle_input(struct snd_usb_caiaqdev *dev,
int port, const char *buf, int len)
{
if (!dev->midi_receive_substream)
return;
-
+
snd_rawmidi_receive(dev->midi_receive_substream, buf, len);
}
@@ -142,16 +142,16 @@ int snd_usb_caiaq_midi_init(struct snd_usb_caiaqdev *device)
if (device->spec.num_midi_out > 0) {
rmidi->info_flags |= SNDRV_RAWMIDI_INFO_OUTPUT;
- snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_OUTPUT,
+ snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_OUTPUT,
&snd_usb_caiaq_midi_output);
}
if (device->spec.num_midi_in > 0) {
rmidi->info_flags |= SNDRV_RAWMIDI_INFO_INPUT;
- snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_INPUT,
+ snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_INPUT,
&snd_usb_caiaq_midi_input);
}
-
+
device->rmidi = rmidi;
return 0;
@@ -160,7 +160,7 @@ int snd_usb_caiaq_midi_init(struct snd_usb_caiaqdev *device)
void snd_usb_caiaq_midi_output_done(struct urb* urb)
{
struct snd_usb_caiaqdev *dev = urb->context;
-
+
dev->midi_out_active = 0;
if (urb->status != 0)
return;
--
1.6.3.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname
2009-06-01 19:36 ` [PATCH 1/5] ALSA: snd_usb_caiaq: clean whitespaces Daniel Mack
@ 2009-06-01 19:36 ` Daniel Mack
2009-06-01 19:36 ` [PATCH 3/5] ALSA: snd_usb_caiaq: use strlcpy Daniel Mack
2009-06-01 21:09 ` [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname Jaroslav Kysela
0 siblings, 2 replies; 24+ messages in thread
From: Daniel Mack @ 2009-06-01 19:36 UTC (permalink / raw)
To: alsa-devel
Give the card an 'id' name which will prevent ALSA from calling
choose_default_name(). This implementation only took the last part of a
name containing whitespaces which for example caused 'Audio 4 DJ' to be
shortened to 'DJ', which was not very descriptive.
The implementation now takes the short name and removes all whitespaces
from it which is much nicer.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
---
sound/usb/caiaq/device.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/sound/usb/caiaq/device.c b/sound/usb/caiaq/device.c
index 9be0f2e..7fdecde 100644
--- a/sound/usb/caiaq/device.c
+++ b/sound/usb/caiaq/device.c
@@ -435,6 +435,12 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
strcpy(card->driver, MODNAME);
strcpy(card->shortname, dev->product_name);
+ /* fill card->id with a shortened version of the product string
+ * which does not contain any whitespaces */
+ for (c = card->shortname, len = 0; *c && len < sizeof(card->id); c++)
+ if (*c != ' ')
+ card->id[len++] = *c;
+
len = snprintf(card->longname, sizeof(card->longname),
"%s %s (serial %s, ",
dev->vendor_name, dev->product_name, dev->serial);
--
1.6.3.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 3/5] ALSA: snd_usb_caiaq: use strlcpy
2009-06-01 19:36 ` [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname Daniel Mack
@ 2009-06-01 19:36 ` Daniel Mack
2009-06-01 19:36 ` [PATCH 4/5] ALSA: snd_usb_caiaq: give better longname Daniel Mack
2009-06-01 21:09 ` [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname Jaroslav Kysela
1 sibling, 1 reply; 24+ messages in thread
From: Daniel Mack @ 2009-06-01 19:36 UTC (permalink / raw)
To: alsa-devel
Signed-off-by: Daniel Mack <daniel@caiaq.de>
---
sound/usb/caiaq/device.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/usb/caiaq/device.c b/sound/usb/caiaq/device.c
index 7fdecde..7bfe3ae 100644
--- a/sound/usb/caiaq/device.c
+++ b/sound/usb/caiaq/device.c
@@ -432,8 +432,8 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
if (c)
*c = '\0';
- strcpy(card->driver, MODNAME);
- strcpy(card->shortname, dev->product_name);
+ strlcpy(card->driver, MODNAME, sizeof(card->driver));
+ strlcpy(card->shortname, dev->product_name, sizeof(card->shortname));
/* fill card->id with a shortened version of the product string
* which does not contain any whitespaces */
--
1.6.3.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 4/5] ALSA: snd_usb_caiaq: give better longname
2009-06-01 19:36 ` [PATCH 3/5] ALSA: snd_usb_caiaq: use strlcpy Daniel Mack
@ 2009-06-01 19:36 ` Daniel Mack
2009-06-01 19:36 ` [PATCH 5/5] ALSA: snd_usb_caiaq: bump version number Daniel Mack
0 siblings, 1 reply; 24+ messages in thread
From: Daniel Mack @ 2009-06-01 19:36 UTC (permalink / raw)
To: alsa-devel
The serial number is of no interest in the longname, remove it. This
gives space for the usb path information which is more informative.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
---
sound/usb/caiaq/device.c | 25 ++++++-------------------
sound/usb/caiaq/device.h | 1 -
2 files changed, 6 insertions(+), 20 deletions(-)
diff --git a/sound/usb/caiaq/device.c b/sound/usb/caiaq/device.c
index 7bfe3ae..f7a1f88 100644
--- a/sound/usb/caiaq/device.c
+++ b/sound/usb/caiaq/device.c
@@ -382,7 +382,7 @@ static int create_card(struct usb_device* usb_dev, struct snd_card **cardp)
static int __devinit init_card(struct snd_usb_caiaqdev *dev)
{
- char *c;
+ char *c, usbpath[32];
struct usb_device *usb_dev = dev->chip.dev;
struct snd_card *card = dev->chip.card;
int err, len;
@@ -424,16 +424,8 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
usb_string(usb_dev, usb_dev->descriptor.iProduct,
dev->product_name, CAIAQ_USB_STR_LEN);
- usb_string(usb_dev, usb_dev->descriptor.iSerialNumber,
- dev->serial, CAIAQ_USB_STR_LEN);
-
- /* terminate serial string at first white space occurence */
- c = strchr(dev->serial, ' ');
- if (c)
- *c = '\0';
-
strlcpy(card->driver, MODNAME, sizeof(card->driver));
- strlcpy(card->shortname, dev->product_name, sizeof(card->shortname));
+ strncpy(card->shortname, dev->product_name, sizeof(card->shortname));
/* fill card->id with a shortened version of the product string
* which does not contain any whitespaces */
@@ -441,16 +433,11 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
if (*c != ' ')
card->id[len++] = *c;
- len = snprintf(card->longname, sizeof(card->longname),
- "%s %s (serial %s, ",
- dev->vendor_name, dev->product_name, dev->serial);
-
- if (len < sizeof(card->longname) - 2)
- len += usb_make_path(usb_dev, card->longname + len,
- sizeof(card->longname) - len);
+ usb_make_path(usb_dev, usbpath, sizeof(usbpath));
+ snprintf(card->longname, sizeof(card->longname),
+ "%s %s (%s)",
+ dev->vendor_name, dev->product_name, usbpath);
- card->longname[len++] = ')';
- card->longname[len] = '\0';
setup_card(dev);
return 0;
}
diff --git a/sound/usb/caiaq/device.h b/sound/usb/caiaq/device.h
index 4cce1ad..ece7351 100644
--- a/sound/usb/caiaq/device.h
+++ b/sound/usb/caiaq/device.h
@@ -81,7 +81,6 @@ struct snd_usb_caiaqdev {
char vendor_name[CAIAQ_USB_STR_LEN];
char product_name[CAIAQ_USB_STR_LEN];
- char serial[CAIAQ_USB_STR_LEN];
int n_streams, n_audio_in, n_audio_out;
int streaming, first_packet, output_running;
--
1.6.3.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 5/5] ALSA: snd_usb_caiaq: bump version number
2009-06-01 19:36 ` [PATCH 4/5] ALSA: snd_usb_caiaq: give better longname Daniel Mack
@ 2009-06-01 19:36 ` Daniel Mack
0 siblings, 0 replies; 24+ messages in thread
From: Daniel Mack @ 2009-06-01 19:36 UTC (permalink / raw)
To: alsa-devel
Signed-off-by: Daniel Mack <daniel@caiaq.de>
---
sound/usb/caiaq/device.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/sound/usb/caiaq/device.c b/sound/usb/caiaq/device.c
index f7a1f88..bc33323 100644
--- a/sound/usb/caiaq/device.c
+++ b/sound/usb/caiaq/device.c
@@ -35,7 +35,7 @@
#include "input.h"
MODULE_AUTHOR("Daniel Mack <daniel@caiaq.de>");
-MODULE_DESCRIPTION("caiaq USB audio, version 1.3.14");
+MODULE_DESCRIPTION("caiaq USB audio, version 1.3.15");
MODULE_LICENSE("GPL");
MODULE_SUPPORTED_DEVICE("{{Native Instruments, RigKontrol2},"
"{Native Instruments, RigKontrol3},"
--
1.6.3.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname
2009-06-01 19:36 ` [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname Daniel Mack
2009-06-01 19:36 ` [PATCH 3/5] ALSA: snd_usb_caiaq: use strlcpy Daniel Mack
@ 2009-06-01 21:09 ` Jaroslav Kysela
2009-06-01 23:46 ` Takashi Iwai
1 sibling, 1 reply; 24+ messages in thread
From: Jaroslav Kysela @ 2009-06-01 21:09 UTC (permalink / raw)
To: Daniel Mack; +Cc: alsa-devel
On Mon, 1 Jun 2009, Daniel Mack wrote:
> Give the card an 'id' name which will prevent ALSA from calling
> choose_default_name(). This implementation only took the last part of a
> name containing whitespaces which for example caused 'Audio 4 DJ' to be
> shortened to 'DJ', which was not very descriptive.
>
> The implementation now takes the short name and removes all whitespaces
> from it which is much nicer.
Unfortunately, this code does not handle id collisions for multiple cards.
All IDs must be unique. The best solution is to create a function in the
snd.ko to assign ID and do collision checks. I'll try to prepare something
tomorrow.
Jaroslav
>
> Signed-off-by: Daniel Mack <daniel@caiaq.de>
> ---
> sound/usb/caiaq/device.c | 6 ++++++
> 1 files changed, 6 insertions(+), 0 deletions(-)
>
> diff --git a/sound/usb/caiaq/device.c b/sound/usb/caiaq/device.c
> index 9be0f2e..7fdecde 100644
> --- a/sound/usb/caiaq/device.c
> +++ b/sound/usb/caiaq/device.c
> @@ -435,6 +435,12 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev)
> strcpy(card->driver, MODNAME);
> strcpy(card->shortname, dev->product_name);
>
> + /* fill card->id with a shortened version of the product string
> + * which does not contain any whitespaces */
> + for (c = card->shortname, len = 0; *c && len < sizeof(card->id); c++)
> + if (*c != ' ')
> + card->id[len++] = *c;
> +
> len = snprintf(card->longname, sizeof(card->longname),
> "%s %s (serial %s, ",
> dev->vendor_name, dev->product_name, dev->serial);
> --
> 1.6.3.1
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
-----
Jaroslav Kysela <perex@perex.cz>
Linux Kernel Sound Maintainer
ALSA Project, Red Hat, Inc.
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname
2009-06-01 21:09 ` [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname Jaroslav Kysela
@ 2009-06-01 23:46 ` Takashi Iwai
2009-06-02 7:29 ` Daniel Mack
0 siblings, 1 reply; 24+ messages in thread
From: Takashi Iwai @ 2009-06-01 23:46 UTC (permalink / raw)
To: Jaroslav Kysela; +Cc: alsa-devel
At Mon, 1 Jun 2009 23:09:25 +0200 (CEST),
Jaroslav Kysela wrote:
>
> On Mon, 1 Jun 2009, Daniel Mack wrote:
>
> > Give the card an 'id' name which will prevent ALSA from calling
> > choose_default_name(). This implementation only took the last part of a
> > name containing whitespaces which for example caused 'Audio 4 DJ' to be
> > shortened to 'DJ', which was not very descriptive.
> >
> > The implementation now takes the short name and removes all whitespaces
> > from it which is much nicer.
>
> Unfortunately, this code does not handle id collisions for multiple cards.
Moreover, the id can be passed via a module option. Thus overriding
the id itself is no good idea.
Takashi
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname
2009-06-01 23:46 ` Takashi Iwai
@ 2009-06-02 7:29 ` Daniel Mack
2009-06-02 7:49 ` Takashi Iwai
0 siblings, 1 reply; 24+ messages in thread
From: Daniel Mack @ 2009-06-02 7:29 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel
On Tue, Jun 02, 2009 at 01:46:48AM +0200, Takashi Iwai wrote:
> > > Give the card an 'id' name which will prevent ALSA from calling
> > > choose_default_name(). This implementation only took the last part of a
> > > name containing whitespaces which for example caused 'Audio 4 DJ' to be
> > > shortened to 'DJ', which was not very descriptive.
> > >
> > > The implementation now takes the short name and removes all whitespaces
> > > from it which is much nicer.
> >
> > Unfortunately, this code does not handle id collisions for multiple cards.
>
> Moreover, the id can be passed via a module option. Thus overriding
> the id itself is no good idea.
So what's your suggestion to fix the behaviour I was describing? Maybe a
combination of Jaroslav's collision detection together with a logic that
does not touch the id in case it was passed as module option?
I'm afraid touching choose_default_name() will cause a lot of breakage
for users as their card IDs will suddenly change and former '-D hw:xxx'
syntax won't work anymore.
Daniel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname
2009-06-02 7:29 ` Daniel Mack
@ 2009-06-02 7:49 ` Takashi Iwai
2009-06-02 9:31 ` Daniel Mack
0 siblings, 1 reply; 24+ messages in thread
From: Takashi Iwai @ 2009-06-02 7:49 UTC (permalink / raw)
To: Daniel Mack; +Cc: alsa-devel
At Tue, 2 Jun 2009 09:29:49 +0200,
Daniel Mack wrote:
>
> On Tue, Jun 02, 2009 at 01:46:48AM +0200, Takashi Iwai wrote:
> > > > Give the card an 'id' name which will prevent ALSA from calling
> > > > choose_default_name(). This implementation only took the last part of a
> > > > name containing whitespaces which for example caused 'Audio 4 DJ' to be
> > > > shortened to 'DJ', which was not very descriptive.
> > > >
> > > > The implementation now takes the short name and removes all whitespaces
> > > > from it which is much nicer.
> > >
> > > Unfortunately, this code does not handle id collisions for multiple cards.
> >
> > Moreover, the id can be passed via a module option. Thus overriding
> > the id itself is no good idea.
>
> So what's your suggestion to fix the behaviour I was describing? Maybe a
> combination of Jaroslav's collision detection together with a logic that
> does not touch the id in case it was passed as module option?
Sounds reasonable. We may need just a number suffix if any collision
occurs.
> I'm afraid touching choose_default_name() will cause a lot of breakage
> for users as their card IDs will suddenly change and former '-D hw:xxx'
> syntax won't work anymore.
Fully agreed. I'm also against changing the existing behavior.
What we can provide would be an additional function to allow drivers
to check the id string before calling snd_card_create().
Meanwhile, I applied the rest patches (except for the version bump)
now to topic/caiaq branch on sound git tree, with minor fixes.
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git topic/caiaq
Please base on it when you create a new patch.
thanks,
Takashi
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname
2009-06-02 7:49 ` Takashi Iwai
@ 2009-06-02 9:31 ` Daniel Mack
2009-06-02 9:50 ` Takashi Iwai
0 siblings, 1 reply; 24+ messages in thread
From: Daniel Mack @ 2009-06-02 9:31 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel
On Tue, Jun 02, 2009 at 09:49:39AM +0200, Takashi Iwai wrote:
> > So what's your suggestion to fix the behaviour I was describing? Maybe a
> > combination of Jaroslav's collision detection together with a logic that
> > does not touch the id in case it was passed as module option?
>
> Sounds reasonable. We may need just a number suffix if any collision
> occurs.
What about that patch below? Works well in my tests here.
Daniel
>From 7f7544af491f6073da3aea72c64f5725c50246c8 Mon Sep 17 00:00:00 2001
From: Daniel Mack <daniel@caiaq.de>
Date: Tue, 2 Jun 2009 11:23:41 +0200
Subject: [PATCH] ALSA: introduce snd_card_make_id_unique()
Sound card drivers may choose their own way to provide a nice sound card
ID, especially when the default behaviour taken by choose_default_name()
is not appropriate. ALSA's IDs must be unique, so there is need for some
core logic to ensure that.
This patch adds the function snd_card_make_id_unique() to the ALSA core
which lowlevel drivers can call to make sure the computed string isn't
already taken.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Jaroslav Kysela <perex@perex.cz>
---
include/sound/core.h | 1 +
sound/core/init.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 46 insertions(+), 0 deletions(-)
diff --git a/include/sound/core.h b/include/sound/core.h
index 3dea798..01ea816 100644
--- a/include/sound/core.h
+++ b/include/sound/core.h
@@ -319,6 +319,7 @@ int snd_card_info_done(void);
int snd_component_add(struct snd_card *card, const char *component);
int snd_card_file_add(struct snd_card *card, struct file *file);
int snd_card_file_remove(struct snd_card *card, struct file *file);
+void snd_card_make_id_unique(struct snd_card *card);
#ifndef snd_card_set_dev
#define snd_card_set_dev(card, devptr) ((card)->dev = (devptr))
diff --git a/sound/core/init.c b/sound/core/init.c
index fd56afe..8503a01 100644
--- a/sound/core/init.c
+++ b/sound/core/init.c
@@ -547,6 +547,51 @@ static void choose_default_id(struct snd_card *card)
}
}
+static int
+card_id_is_ambiguous(struct snd_card *card, const char *id)
+{
+ int i;
+
+ for (i = 0; i < snd_ecards_limit; i++) {
+ /* only run for exisiting cards but not for the
+ * one in question */
+ if (i == card->number || !snd_cards[i])
+ continue;
+
+ if (strcmp(snd_cards[i]->id, id) == 0)
+ return 1;
+ }
+
+ return 0;
+}
+
+void
+snd_card_make_id_unique(struct snd_card *card)
+{
+ int count = 1;
+ char id[sizeof(card->id)];
+
+ if (*card->id == '\0')
+ return;
+
+ strlcpy(id, card->id, sizeof(id));
+
+ while (card_id_is_ambiguous(card, id)) {
+ /* As we need to add some characters to the id, make
+ * sure there's enough room for it */
+ int maxlen = sizeof(card->id) - (2 + (count / 10));
+
+ if (strlen(card->id) > maxlen)
+ card->id[maxlen] = '\0';
+
+ snprintf(id, sizeof(id), "%s_%d", card->id, count);
+ count++;
+ }
+
+ strlcpy(card->id, id, sizeof(id));
+}
+EXPORT_SYMBOL_GPL(snd_card_make_id_unique);
+
#ifndef CONFIG_SYSFS_DEPRECATED
static ssize_t
card_id_show_attr(struct device *dev,
--
1.6.3.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname
2009-06-02 9:31 ` Daniel Mack
@ 2009-06-02 9:50 ` Takashi Iwai
2009-06-02 9:55 ` Daniel Mack
` (2 more replies)
0 siblings, 3 replies; 24+ messages in thread
From: Takashi Iwai @ 2009-06-02 9:50 UTC (permalink / raw)
To: Daniel Mack; +Cc: alsa-devel
At Tue, 2 Jun 2009 11:31:04 +0200,
Daniel Mack wrote:
>
> On Tue, Jun 02, 2009 at 09:49:39AM +0200, Takashi Iwai wrote:
> > > So what's your suggestion to fix the behaviour I was describing? Maybe a
> > > combination of Jaroslav's collision detection together with a logic that
> > > does not touch the id in case it was passed as module option?
> >
> > Sounds reasonable. We may need just a number suffix if any collision
> > occurs.
>
> What about that patch below? Works well in my tests here.
Looks almost good, but we need to check
snd_info_check_reserved_words() too.
I guess the routine in choose_default_id() can be reused for this
function, though.
Jaroslav seems working on this now, so maybe he could better cope
with you...
Takashi
>
> Daniel
>
>
> >From 7f7544af491f6073da3aea72c64f5725c50246c8 Mon Sep 17 00:00:00 2001
> From: Daniel Mack <daniel@caiaq.de>
> Date: Tue, 2 Jun 2009 11:23:41 +0200
> Subject: [PATCH] ALSA: introduce snd_card_make_id_unique()
>
> Sound card drivers may choose their own way to provide a nice sound card
> ID, especially when the default behaviour taken by choose_default_name()
> is not appropriate. ALSA's IDs must be unique, so there is need for some
> core logic to ensure that.
>
> This patch adds the function snd_card_make_id_unique() to the ALSA core
> which lowlevel drivers can call to make sure the computed string isn't
> already taken.
>
> Signed-off-by: Daniel Mack <daniel@caiaq.de>
> Cc: Takashi Iwai <tiwai@suse.de>
> Cc: Jaroslav Kysela <perex@perex.cz>
> ---
> include/sound/core.h | 1 +
> sound/core/init.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 46 insertions(+), 0 deletions(-)
>
> diff --git a/include/sound/core.h b/include/sound/core.h
> index 3dea798..01ea816 100644
> --- a/include/sound/core.h
> +++ b/include/sound/core.h
> @@ -319,6 +319,7 @@ int snd_card_info_done(void);
> int snd_component_add(struct snd_card *card, const char *component);
> int snd_card_file_add(struct snd_card *card, struct file *file);
> int snd_card_file_remove(struct snd_card *card, struct file *file);
> +void snd_card_make_id_unique(struct snd_card *card);
>
> #ifndef snd_card_set_dev
> #define snd_card_set_dev(card, devptr) ((card)->dev = (devptr))
> diff --git a/sound/core/init.c b/sound/core/init.c
> index fd56afe..8503a01 100644
> --- a/sound/core/init.c
> +++ b/sound/core/init.c
> @@ -547,6 +547,51 @@ static void choose_default_id(struct snd_card *card)
> }
> }
>
> +static int
> +card_id_is_ambiguous(struct snd_card *card, const char *id)
> +{
> + int i;
> +
> + for (i = 0; i < snd_ecards_limit; i++) {
> + /* only run for exisiting cards but not for the
> + * one in question */
> + if (i == card->number || !snd_cards[i])
> + continue;
> +
> + if (strcmp(snd_cards[i]->id, id) == 0)
> + return 1;
> + }
> +
> + return 0;
> +}
> +
> +void
> +snd_card_make_id_unique(struct snd_card *card)
> +{
> + int count = 1;
> + char id[sizeof(card->id)];
> +
> + if (*card->id == '\0')
> + return;
> +
> + strlcpy(id, card->id, sizeof(id));
> +
> + while (card_id_is_ambiguous(card, id)) {
> + /* As we need to add some characters to the id, make
> + * sure there's enough room for it */
> + int maxlen = sizeof(card->id) - (2 + (count / 10));
> +
> + if (strlen(card->id) > maxlen)
> + card->id[maxlen] = '\0';
> +
> + snprintf(id, sizeof(id), "%s_%d", card->id, count);
> + count++;
> + }
> +
> + strlcpy(card->id, id, sizeof(id));
> +}
> +EXPORT_SYMBOL_GPL(snd_card_make_id_unique);
> +
> #ifndef CONFIG_SYSFS_DEPRECATED
> static ssize_t
> card_id_show_attr(struct device *dev,
> --
> 1.6.3.1
>
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname
2009-06-02 9:50 ` Takashi Iwai
@ 2009-06-02 9:55 ` Daniel Mack
2009-06-02 10:10 ` [PATCH] ALSA: introduce snd_card_make_id_unique() (was: ALSA: snd_usb_caiaq: give better shortname) Daniel Mack
2009-06-02 10:11 ` [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname Jaroslav Kysela
2 siblings, 0 replies; 24+ messages in thread
From: Daniel Mack @ 2009-06-02 9:55 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel
On Tue, Jun 02, 2009 at 11:50:32AM +0200, Takashi Iwai wrote:
> > What about that patch below? Works well in my tests here.
>
> Looks almost good, but we need to check
> snd_info_check_reserved_words() too.
Ok.
> I guess the routine in choose_default_id() can be reused for this
> function, though.
Yes, choose_default_id() could be split up into some static functions
which could then be used by my snd_card_make_id_unique() as well.
Daniel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH] ALSA: introduce snd_card_make_id_unique() (was: ALSA: snd_usb_caiaq: give better shortname)
2009-06-02 9:50 ` Takashi Iwai
2009-06-02 9:55 ` Daniel Mack
@ 2009-06-02 10:10 ` Daniel Mack
2009-06-02 10:11 ` [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname Jaroslav Kysela
2 siblings, 0 replies; 24+ messages in thread
From: Daniel Mack @ 2009-06-02 10:10 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel
On Tue, Jun 02, 2009 at 11:50:32AM +0200, Takashi Iwai wrote:
> > What about that patch below? Works well in my tests here.
>
> Looks almost good, but we need to check
> snd_info_check_reserved_words() too.
A new version to fix just that issue is below.
Thanks,
Daniel
>From f8925c51b08b15d95d060148e2ce639987374b87 Mon Sep 17 00:00:00 2001
From: Daniel Mack <daniel@caiaq.de>
Date: Tue, 2 Jun 2009 11:23:41 +0200
Subject: [PATCH] ALSA: introduce snd_card_make_id_unique()
Sound card drivers may choose their own way to provide a nice sound card
ID, especially when the default behaviour taken by choose_default_name()
is not appropriate. ALSA's IDs must be unique, so there is need for some
core logic to ensure that.
This patch adds the function snd_card_make_id_unique() to the ALSA core
which lowlevel drivers can call to make sure the computed string isn't
already taken.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Jaroslav Kysela <perex@perex.cz>
---
include/sound/core.h | 1 +
sound/core/init.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 54 insertions(+), 0 deletions(-)
diff --git a/include/sound/core.h b/include/sound/core.h
index 3dea798..01ea816 100644
--- a/include/sound/core.h
+++ b/include/sound/core.h
@@ -319,6 +319,7 @@ int snd_card_info_done(void);
int snd_component_add(struct snd_card *card, const char *component);
int snd_card_file_add(struct snd_card *card, struct file *file);
int snd_card_file_remove(struct snd_card *card, struct file *file);
+void snd_card_make_id_unique(struct snd_card *card);
#ifndef snd_card_set_dev
#define snd_card_set_dev(card, devptr) ((card)->dev = (devptr))
diff --git a/sound/core/init.c b/sound/core/init.c
index fd56afe..bce2982 100644
--- a/sound/core/init.c
+++ b/sound/core/init.c
@@ -547,6 +547,59 @@ static void choose_default_id(struct snd_card *card)
}
}
+static int
+card_id_is_ambiguous(struct snd_card *card, const char *id)
+{
+ int i;
+
+ for (i = 0; i < snd_ecards_limit; i++) {
+ /* only run for exisiting cards but not for the
+ * one in question */
+ if (i == card->number || !snd_cards[i])
+ continue;
+
+ if (strcmp(snd_cards[i]->id, id) == 0)
+ return 1;
+ }
+
+ return 0;
+}
+
+void
+snd_card_make_id_unique(struct snd_card *card)
+{
+ int count = 1;
+ char id[sizeof(card->id)];
+
+ if (*card->id == '\0')
+ return;
+
+ /* if there's a reserved word in the card's chosen id, reset it
+ * to empty. choose_default_id() will then take care to generate
+ * an id for the card at a later point */
+ if (!snd_info_check_reserved_words(card->id)) {
+ *card->id = '\0';
+ return;
+ }
+
+ strlcpy(id, card->id, sizeof(id));
+
+ while (card_id_is_ambiguous(card, id)) {
+ /* As we need to add some characters to the id, make
+ * sure there's enough room for it */
+ int maxlen = sizeof(card->id) - (2 + (count / 10));
+
+ if (strlen(card->id) > maxlen)
+ card->id[maxlen] = '\0';
+
+ snprintf(id, sizeof(id), "%s_%d", card->id, count);
+ count++;
+ }
+
+ strlcpy(card->id, id, sizeof(id));
+}
+EXPORT_SYMBOL_GPL(snd_card_make_id_unique);
+
#ifndef CONFIG_SYSFS_DEPRECATED
static ssize_t
card_id_show_attr(struct device *dev,
--
1.6.3.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname
2009-06-02 9:50 ` Takashi Iwai
2009-06-02 9:55 ` Daniel Mack
2009-06-02 10:10 ` [PATCH] ALSA: introduce snd_card_make_id_unique() (was: ALSA: snd_usb_caiaq: give better shortname) Daniel Mack
@ 2009-06-02 10:11 ` Jaroslav Kysela
2009-06-02 10:28 ` Daniel Mack
2 siblings, 1 reply; 24+ messages in thread
From: Jaroslav Kysela @ 2009-06-02 10:11 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel
On Tue, 2 Jun 2009, Takashi Iwai wrote:
> At Tue, 2 Jun 2009 11:31:04 +0200,
> Daniel Mack wrote:
>>
>> On Tue, Jun 02, 2009 at 09:49:39AM +0200, Takashi Iwai wrote:
>>>> So what's your suggestion to fix the behaviour I was describing? Maybe a
>>>> combination of Jaroslav's collision detection together with a logic that
>>>> does not touch the id in case it was passed as module option?
>>>
>>> Sounds reasonable. We may need just a number suffix if any collision
>>> occurs.
>>
>> What about that patch below? Works well in my tests here.
>
> Looks almost good, but we need to check
> snd_info_check_reserved_words() too.
>
> I guess the routine in choose_default_id() can be reused for this
> function, though.
>
> Jaroslav seems working on this now, so maybe he could better cope
> with you...
Daniel, could you test this patch?
http://git.alsa-project.org/?p=alsa-kernel.git;a=commitdiff;h=5384d153538ef403c5ca51a6e0c8b85b735c877a
Thanks,
Jaroslav
-----
Jaroslav Kysela <perex@perex.cz>
Linux Kernel Sound Maintainer
ALSA Project, Red Hat, Inc.
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname
2009-06-02 10:11 ` [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname Jaroslav Kysela
@ 2009-06-02 10:28 ` Daniel Mack
2009-06-02 10:54 ` Takashi Iwai
0 siblings, 1 reply; 24+ messages in thread
From: Daniel Mack @ 2009-06-02 10:28 UTC (permalink / raw)
To: Jaroslav Kysela; +Cc: Takashi Iwai, alsa-devel
On Tue, Jun 02, 2009 at 12:11:33PM +0200, Jaroslav Kysela wrote:
>> Looks almost good, but we need to check
>> snd_info_check_reserved_words() too.
>>
>> I guess the routine in choose_default_id() can be reused for this
>> function, though.
>>
>> Jaroslav seems working on this now, so maybe he could better cope
>> with you...
>
> Daniel, could you test this patch?
>
> http://git.alsa-project.org/?p=alsa-kernel.git;a=commitdiff;h=5384d153538ef403c5ca51a6e0c8b85b735c877a
Yep - same behaviour than with my patch. Let's take your's :)
Thanks,
Daniel
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname
2009-06-02 10:28 ` Daniel Mack
@ 2009-06-02 10:54 ` Takashi Iwai
0 siblings, 0 replies; 24+ messages in thread
From: Takashi Iwai @ 2009-06-02 10:54 UTC (permalink / raw)
To: Daniel Mack; +Cc: alsa-devel
At Tue, 2 Jun 2009 12:28:34 +0200,
Daniel Mack wrote:
>
> On Tue, Jun 02, 2009 at 12:11:33PM +0200, Jaroslav Kysela wrote:
> >> Looks almost good, but we need to check
> >> snd_info_check_reserved_words() too.
> >>
> >> I guess the routine in choose_default_id() can be reused for this
> >> function, though.
> >>
> >> Jaroslav seems working on this now, so maybe he could better cope
> >> with you...
> >
> > Daniel, could you test this patch?
> >
> > http://git.alsa-project.org/?p=alsa-kernel.git;a=commitdiff;h=5384d153538ef403c5ca51a6e0c8b85b735c877a
>
> Yep - same behaviour than with my patch. Let's take your's :)
Good to hear. I merged that commit now, too.
Takashi
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2009-06-02 10:54 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-30 21:44 [PATCH 1/5] ALSA: snd_usb_caiaq: clean whitespaces Daniel Mack
2009-05-30 21:44 ` [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname Daniel Mack
2009-05-30 21:44 ` [PATCH 3/5] ALSA: snd_usb_caiaq: use strncpy Daniel Mack
2009-05-30 21:44 ` [PATCH 4/5] ALSA: snd_usb_caiaq: give better longname Daniel Mack
2009-05-30 21:44 ` [PATCH 5/5] ALSA: snd_usb_caiaq: bump version number Daniel Mack
2009-06-01 8:32 ` [PATCH 3/5] ALSA: snd_usb_caiaq: use strncpy Takashi Iwai
2009-06-01 9:23 ` Daniel Mack
2009-06-01 16:55 ` Takashi Iwai
2009-06-01 19:36 ` [PATCH 1/5] ALSA: snd_usb_caiaq: clean whitespaces Daniel Mack
2009-06-01 19:36 ` [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname Daniel Mack
2009-06-01 19:36 ` [PATCH 3/5] ALSA: snd_usb_caiaq: use strlcpy Daniel Mack
2009-06-01 19:36 ` [PATCH 4/5] ALSA: snd_usb_caiaq: give better longname Daniel Mack
2009-06-01 19:36 ` [PATCH 5/5] ALSA: snd_usb_caiaq: bump version number Daniel Mack
2009-06-01 21:09 ` [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname Jaroslav Kysela
2009-06-01 23:46 ` Takashi Iwai
2009-06-02 7:29 ` Daniel Mack
2009-06-02 7:49 ` Takashi Iwai
2009-06-02 9:31 ` Daniel Mack
2009-06-02 9:50 ` Takashi Iwai
2009-06-02 9:55 ` Daniel Mack
2009-06-02 10:10 ` [PATCH] ALSA: introduce snd_card_make_id_unique() (was: ALSA: snd_usb_caiaq: give better shortname) Daniel Mack
2009-06-02 10:11 ` [PATCH 2/5] ALSA: snd_usb_caiaq: give better shortname Jaroslav Kysela
2009-06-02 10:28 ` Daniel Mack
2009-06-02 10:54 ` Takashi Iwai
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.