snd_printk("activ frame status %i. Most propably some hardware problem.\n", urb->iso_frame_desc[i].status); 
snd_printk(KERN_ERR "activ frame status %i. Most propably some hardware problem.\n", urb->iso_frame_desc[i].status); 
static int usX2Y_urb_capt_retire(snd_usX2Y_substream_t *subs){	struct urb	*urb = subs->completed_urb;	snd_pcm_runtime_t *runtime = subs->pcm_substream->runtime;	unsigned char	*cp;	int 		i, len, lens = 0, hwptr_done = subs->hwptr_done;	usX2Ydev_t	*usX2Y = subs->usX2Y;	for (i = 0; i < nr_of_packs(); i++) {		cp = (unsigned char*)urb->transfer_buffer + urb->iso_frame_desc[i].offset;		if (urb->iso_frame_desc[i].status) { /* active? hmm, skip this */			snd_printk("activ frame status %i. Most propably some hardware problem.\n", urb->iso_frame_desc[i].status);			return urb->iso_frame_desc[i].status;		}		len = urb->iso_frame_desc[i].actual_length / usX2Y->stride;		if (! len) {			snd_printd("0 == len ERROR!\n");			continue;		}		/* copy a data chunk */		if ((hwptr_done + len) > runtime->buffer_size) {			int cnt = runtime->buffer_size - hwptr_done;			int blen = cnt * usX2Y->stride;			memcpy(runtime->dma_area + hwptr_done * usX2Y->stride, cp, blen);			memcpy(runtime->dma_area, cp + blen, len * usX2Y->stride - blen);		} else {			memcpy(runtime->dma_area + hwptr_done * usX2Y->stride, cp, len * usX2Y->stride);		}		lens += len;		if ((hwptr_done += len) >= runtime->buffer_size)			hwptr_done -= runtime->buffer_size;	}	subs->hwptr_done = hwptr_done;	subs->transfer_done += lens;	/* update the pointer, call callback if necessary */	if (subs->transfer_done >= runtime->period_size) {		subs->transfer_done -= runtime->period_size;		snd_pcm_period_elapsed(subs->pcm_substream);	}	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/d3d579f84ebf701dedd22ba696d1738ed6759ef7/usbusx2yaudio.c/clean/sound/usb/usx2y/usbusx2yaudio.c