Re: [Fwd: Scratch Live amplifier switch]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At Fri, 28 Aug 2009 09:52:45 +0200,
LCID Fire wrote:
> 
> Hi.
> Following the patch to add the amplifier switch (changing input levels
> phono/line) for the Serato Scratch Live device.
> 
> Please apply or complain ;)

First off, try $LINUX/scripts/checkpatch.pl and fix complains there.
Also, there are too many dead codes.  If they have to be there, keep
in a bit more readable style please.


> +/* Wrapper for setting and submitting the interrupt urb().*/
> +static int snd_usb_interrupt_trans(struct usb_device *dev, unsigned int pipe, void *data,
> +			 __u16 size, usb_complete_t callback)
> +{
> +	int err;
> +	void *buf = NULL;
> +	struct urb* pUrb = NULL;
> +
> +	if (size > 0) {
> +		buf = kmemdup(data, size, GFP_KERNEL);
> +		if (!buf)
> +			return -ENOMEM;
> +	}
> +
> +	pUrb = usb_alloc_urb(1/*int iso packets*/, GFP_KERNEL);
> +
> +	if (!pUrb)
> +		return -ENOMEM;

A memory leak here.  Free buf in the error path.

> +
> +	/*TODO: Remove hardcoded 4*/
> +	usb_fill_int_urb(pUrb, dev, pipe, buf, size, callback, NULL, 4);
> +
> +	err = usb_submit_urb(pUrb, GFP_KERNEL);
> +	
> +	return err;

Ditto.


> +/* gets called multiple times! */
> +static int snd_sl_controls_create(struct usb_mixer_interface *mixer)
> +{
> +	int i, err;
> +
> +	for (i = 0; i < ARRAY_SIZE(snd_sl_controls); ++i) {
> +		struct snd_ctl_elem_value ucontrol;
> +		struct snd_kcontrol *kcontrol = snd_ctl_new1(&snd_sl_controls[i], mixer);

Missing NULL check here.

> +		/* Phono input is on by default */
> +		ucontrol.value.integer.value[0] = 1;
> +
> +		err = snd_sl_phono_put(kcontrol, &ucontrol);

I'd recommend not to use put callback.  snd_kcontrol_value is a big
struct, so it should be avoided to be used on the stack as much as
possible.  Better to take the accessor part from the put callback and
call it from here.


Could you fix and repost?

Thanks,

Takashi
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux