if (!snd_card_proc_new(chip->card, "audigy2nx", &entry)) snd_info_set_text_ops(entry, mixer, 1024, snd_audigy2nx_proc_read); 
int snd_usb_create_mixer(snd_usb_audio_t *chip, int ctrlif){	static snd_device_ops_t dev_ops = {		.dev_free = snd_usb_mixer_dev_free	};	struct usb_mixer_interface *mixer;	int err;	strcpy(chip->card->mixername, "USB Mixer");	mixer = kcalloc(1, sizeof(*mixer), GFP_KERNEL);	if (!mixer)		return -ENOMEM;	mixer->chip = chip;	mixer->ctrlif = ctrlif;#ifdef IGNORE_CTL_ERROR	mixer->ignore_ctl_error = 1;#endif	mixer->id_elems = kcalloc(256, sizeof(*mixer->id_elems), GFP_KERNEL);	if (!mixer->id_elems) {		kfree(mixer);		return -ENOMEM;	}	if ((err = snd_usb_mixer_controls(mixer)) < 0 ||	    (err = snd_usb_mixer_status_create(mixer)) < 0)		goto _error;	if ((err = snd_usb_soundblaster_remote_init(mixer)) < 0)		goto _error;	if (mixer->chip->usb_id == USB_ID(0x041e, 0x3020)) {		if ((err = snd_audigy2nx_controls_create(mixer)) < 0)			goto _error;	}	err = snd_device_new(chip->card, SNDRV_DEV_LOWLEVEL, mixer, &dev_ops);	if (err < 0)		goto _error;	list_add(&mixer->list, &chip->mixer_list);	return 0;_error:	snd_usb_mixer_free(mixer);	return err;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/aafad5629a949d0ad41180f8a746b6cd7654e317/usbmixer.c/clean/sound/usb/usbmixer.c