Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5c0c6c39 authored by Tomas Winkler's avatar Tomas Winkler Committed by Greg Kroah-Hartman
Browse files

staging/easycap: implement strerror function



Replace long switch statements that just print out errno
with strerror function. It reduces around 700 lines from the code.

The function should be probably dropped at all but leave for now
to not break currently expected debug output.

Signed-off-by: default avatarTomas Winkler <tomas.winkler@intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 482cd2d8
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -644,6 +644,8 @@ struct signed_div_result {
 *  IMMEDIATELY OBVIOUS FROM A CASUAL READING OF THE SOURCE CODE.  BEWARE.
*/
/*---------------------------------------------------------------------------*/
const char *strerror(int err);

#define SAY(format, args...) do { \
	printk(KERN_DEBUG "easycap:: %s: " \
			format, __func__, ##args); \
+62 −261
Original line number Diff line number Diff line
@@ -58,6 +58,48 @@ static struct mutex mutex_dongle;
static void easycap_complete(struct urb *purb);
static int reset(struct easycap *peasycap);

const char *strerror(int err)
{
#define ERRNOSTR(_e) case _e: return # _e
	switch (err) {
	case 0: return "OK";
	ERRNOSTR(ENOMEM);
	ERRNOSTR(ENODEV);
	ERRNOSTR(ENXIO);
	ERRNOSTR(EINVAL);
	ERRNOSTR(EAGAIN);
	ERRNOSTR(EFBIG);
	ERRNOSTR(EPIPE);
	ERRNOSTR(EMSGSIZE);
	ERRNOSTR(ENOSPC);
	ERRNOSTR(EINPROGRESS);
	ERRNOSTR(ENOSR);
	ERRNOSTR(EOVERFLOW);
	ERRNOSTR(EPROTO);
	ERRNOSTR(EILSEQ);
	ERRNOSTR(ETIMEDOUT);
	ERRNOSTR(EOPNOTSUPP);
	ERRNOSTR(EPFNOSUPPORT);
	ERRNOSTR(EAFNOSUPPORT);
	ERRNOSTR(EADDRINUSE);
	ERRNOSTR(EADDRNOTAVAIL);
	ERRNOSTR(ENOBUFS);
	ERRNOSTR(EISCONN);
	ERRNOSTR(ENOTCONN);
	ERRNOSTR(ESHUTDOWN);
	ERRNOSTR(ENOENT);
	ERRNOSTR(ECONNRESET);
	ERRNOSTR(ETIME);
	ERRNOSTR(ECOMM);
	ERRNOSTR(EREMOTEIO);
	ERRNOSTR(EXDEV);
	ERRNOSTR(EPERM);
	default: return "unknown";
	}

#undef ERRNOSTR
}

/*---------------------------------------------------------------------------*/
/*
 *  PARAMETERS USED WHEN REGISTERING THE VIDEO INTERFACE
@@ -599,62 +641,13 @@ if (!peasycap->video_isoc_streaming) {
					}

				rc = usb_submit_urb(purb, GFP_KERNEL);
				if (0 != rc) {
				if (rc) {
					isbad++;
					SAM("ERROR: usb_submit_urb() failed "
							"for urb with rc:\n");
					switch (rc) {
					case -ENOMEM: {
						SAM("ERROR: -ENOMEM="
							"usb_submit_urb()\n");
						break;
					}
					case -ENODEV: {
						SAM("ERROR: -ENODEV="
							"usb_submit_urb()\n");
						break;
					}
					case -ENXIO: {
						SAM("ERROR: -ENXIO="
							"usb_submit_urb()\n");
						break;
					}
					case -EINVAL: {
						SAM("ERROR: -EINVAL="
							"usb_submit_urb()\n");
						break;
					}
					case -EAGAIN: {
						SAM("ERROR: -EAGAIN="
							"usb_submit_urb()\n");
						break;
					}
					case -EFBIG: {
						SAM("ERROR: -EFBIG="
							"usb_submit_urb()\n");
						break;
					}
					case -EPIPE: {
						SAM("ERROR: -EPIPE="
							"usb_submit_urb()\n");
						break;
					}
					case -EMSGSIZE: {
						SAM("ERROR: -EMSGSIZE="
							"usb_submit_urb()\n");
						break;
					}
					case -ENOSPC: {
							"for urb with rc:-%s\n",
							strerror(rc));
					if (rc == -ENOSPC)
						nospc++;
						break;
					}
					default: {
						SAM("ERROR: %i="
							"usb_submit_urb()\n",
							rc);
						break;
					}
					}
				} else {
					m++;
				}
@@ -2801,49 +2794,8 @@ if (peasycap->video_idle) {
			peasycap->video_idle, peasycap->video_isoc_streaming);
	if (peasycap->video_isoc_streaming) {
		rc = usb_submit_urb(purb, GFP_ATOMIC);
		if (0 != rc) {
			switch (rc) {
			case -ENOMEM: {
				SAM("ENOMEM\n");
				break;
			}
			case -ENODEV: {
				SAM("ENODEV\n");
				break;
			}
			case -ENXIO: {
				SAM("ENXIO\n");
				break;
			}
			case -EINVAL: {
				SAM("EINVAL\n");
				break;
			}
			case -EAGAIN: {
				SAM("EAGAIN\n");
				break;
			}
			case -EFBIG: {
				SAM("EFBIG\n");
				break;
			}
			case -EPIPE: {
				SAM("EPIPE\n");
				break;
			}
			case -EMSGSIZE: {
				SAM("EMSGSIZE\n");
				break;
			}
			case -ENOSPC: {
				SAM("ENOSPC\n");
				break;
			}
			default: {
				SAM("0x%08X\n", rc);
				break;
			}
			}
		if (rc) {
			SAM("%s:%d ENOMEM\n", strerror(rc), rc);
			if (-ENODEV != rc)
				SAM("ERROR: while %i=video_idle, "
							"usb_submit_urb() "
@@ -2866,137 +2818,17 @@ if (purb->status) {
	}

	(peasycap->field_buffer[peasycap->field_fill][0].kount) |= 0x8000 ;
	SAM("ERROR: bad urb status:\n");
	switch (purb->status) {
	case -EINPROGRESS: {
		SAM("-EINPROGRESS\n"); break;
	}
	case -ENOSR: {
		SAM("-ENOSR\n"); break;
	}
	case -EPIPE: {
		SAM("-EPIPE\n"); break;
	}
	case -EOVERFLOW: {
		SAM("-EOVERFLOW\n"); break;
	}
	case -EPROTO: {
		SAM("-EPROTO\n"); break;
	}
	case -EILSEQ: {
		SAM("-EILSEQ\n"); break;
	}
	case -ETIMEDOUT: {
		SAM("-ETIMEDOUT\n"); break;
	}
	case -EMSGSIZE: {
		SAM("-EMSGSIZE\n"); break;
	}
	case -EOPNOTSUPP: {
		SAM("-EOPNOTSUPP\n"); break;
	}
	case -EPFNOSUPPORT: {
		SAM("-EPFNOSUPPORT\n"); break;
	}
	case -EAFNOSUPPORT: {
		SAM("-EAFNOSUPPORT\n"); break;
	}
	case -EADDRINUSE: {
		SAM("-EADDRINUSE\n"); break;
	}
	case -EADDRNOTAVAIL: {
		SAM("-EADDRNOTAVAIL\n"); break;
	}
	case -ENOBUFS: {
		SAM("-ENOBUFS\n"); break;
	}
	case -EISCONN: {
		SAM("-EISCONN\n"); break;
	}
	case -ENOTCONN: {
		SAM("-ENOTCONN\n"); break;
	}
	case -ESHUTDOWN: {
		SAM("-ESHUTDOWN\n"); break;
	}
	case -ENOENT: {
		SAM("-ENOENT\n"); break;
	}
	case -ECONNRESET: {
		SAM("-ECONNRESET\n"); break;
	}
	case -ENOSPC: {
		SAM("ENOSPC\n"); break;
	}
	default: {
		SAM("unknown error code 0x%08X\n", purb->status); break;
	}
	}
	SAM("ERROR: bad urb status -%s: %d\n",
			strerror(purb->status), purb->status);
/*---------------------------------------------------------------------------*/
} else {
	for (i = 0;  i < purb->number_of_packets; i++) {
		if (0 != purb->iso_frame_desc[i].status) {
			(peasycap->field_buffer
				[peasycap->field_fill][0].kount) |= 0x8000 ;
			switch (purb->iso_frame_desc[i].status) {
			case  0: {
				strcpy(&errbuf[0], "OK"); break;
			}
			case -ENOENT: {
				strcpy(&errbuf[0], "-ENOENT"); break;
			}
			case -EINPROGRESS: {
				strcpy(&errbuf[0], "-EINPROGRESS"); break;
			}
			case -EPROTO: {
				strcpy(&errbuf[0], "-EPROTO"); break;
			}
			case -EILSEQ: {
				strcpy(&errbuf[0], "-EILSEQ"); break;
			}
			case -ETIME: {
				strcpy(&errbuf[0], "-ETIME"); break;
			}
			case -ETIMEDOUT: {
				strcpy(&errbuf[0], "-ETIMEDOUT"); break;
			}
			case -EPIPE: {
				strcpy(&errbuf[0], "-EPIPE"); break;
			}
			case -ECOMM: {
				strcpy(&errbuf[0], "-ECOMM"); break;
			}
			case -ENOSR: {
				strcpy(&errbuf[0], "-ENOSR"); break;
			}
			case -EOVERFLOW: {
				strcpy(&errbuf[0], "-EOVERFLOW"); break;
			}
			case -EREMOTEIO: {
				strcpy(&errbuf[0], "-EREMOTEIO"); break;
			}
			case -ENODEV: {
				strcpy(&errbuf[0], "-ENODEV"); break;
			}
			case -EXDEV: {
				strcpy(&errbuf[0], "-EXDEV"); break;
			}
			case -EINVAL: {
				strcpy(&errbuf[0], "-EINVAL"); break;
			}
			case -ECONNRESET: {
				strcpy(&errbuf[0], "-ECONNRESET"); break;
			}
			case -ENOSPC: {
				SAM("ENOSPC\n"); break;
			}
			case -ESHUTDOWN: {
				strcpy(&errbuf[0], "-ESHUTDOWN"); break;
			}
			default: {
				strcpy(&errbuf[0], "unknown error"); break;
			}
			}
			/* FIXME: 1. missing '-' check boundaries */
			strcpy(&errbuf[0],
				strerror(purb->iso_frame_desc[i].status));
		}
		framestatus = purb->iso_frame_desc[i].status;
		framelength = purb->iso_frame_desc[i].length;
@@ -3270,39 +3102,8 @@ if (VIDEO_ISOC_BUFFER_MANY <= peasycap->video_junk) {
}
if (peasycap->video_isoc_streaming) {
	rc = usb_submit_urb(purb, GFP_ATOMIC);
	if (0 != rc) {
		switch (rc) {
		case -ENOMEM: {
			SAM("ENOMEM\n"); break;
		}
		case -ENODEV: {
			SAM("ENODEV\n"); break;
		}
		case -ENXIO: {
			SAM("ENXIO\n"); break;
		}
		case -EINVAL: {
			SAM("EINVAL\n"); break;
		}
		case -EAGAIN: {
			SAM("EAGAIN\n"); break;
		}
		case -EFBIG: {
			SAM("EFBIG\n"); break;
		}
		case -EPIPE: {
			SAM("EPIPE\n"); break;
		}
		case -EMSGSIZE: {
			SAM("EMSGSIZE\n");  break;
		}
		case -ENOSPC: {
			SAM("ENOSPC\n"); break;
		}
		default: {
			SAM("0x%08X\n", rc); break;
		}
		}
	if (rc) {
		SAM("%s: %d\n", strerror(rc), rc);
		if (-ENODEV != rc)
			SAM("ERROR: while %i=video_idle, "
				"usb_submit_urb() "
+23 −532
Original line number Diff line number Diff line
@@ -213,93 +213,8 @@ if (purb->status) {
		JOM(16, "urb status -ESHUTDOWN or -ENOENT\n");
		return;
	}
	SAM("ERROR: non-zero urb status:\n");
	switch (purb->status) {
	case -EINPROGRESS: {
		SAM("-EINPROGRESS\n");
		break;
	}
	case -ENOSR: {
		SAM("-ENOSR\n");
		break;
	}
	case -EPIPE: {
		SAM("-EPIPE\n");
		break;
	}
	case -EOVERFLOW: {
		SAM("-EOVERFLOW\n");
		break;
	}
	case -EPROTO: {
		SAM("-EPROTO\n");
		break;
	}
	case -EILSEQ: {
		SAM("-EILSEQ\n");
		break;
	}
	case -ETIMEDOUT: {
		SAM("-ETIMEDOUT\n");
		break;
	}
	case -EMSGSIZE: {
		SAM("-EMSGSIZE\n");
		break;
	}
	case -EOPNOTSUPP: {
		SAM("-EOPNOTSUPP\n");
		break;
	}
	case -EPFNOSUPPORT: {
		SAM("-EPFNOSUPPORT\n");
		break;
	}
	case -EAFNOSUPPORT: {
		SAM("-EAFNOSUPPORT\n");
		break;
	}
	case -EADDRINUSE: {
		SAM("-EADDRINUSE\n");
		break;
	}
	case -EADDRNOTAVAIL: {
		SAM("-EADDRNOTAVAIL\n");
		break;
	}
	case -ENOBUFS: {
		SAM("-ENOBUFS\n");
		break;
	}
	case -EISCONN: {
		SAM("-EISCONN\n");
		break;
	}
	case -ENOTCONN: {
		SAM("-ENOTCONN\n");
		break;
	}
	case -ESHUTDOWN: {
		SAM("-ESHUTDOWN\n");
		break;
	}
	case -ENOENT: {
		SAM("-ENOENT\n");
		break;
	}
	case -ECONNRESET: {
		SAM("-ECONNRESET\n");
		break;
	}
	case -ENOSPC: {
		SAM("ENOSPC\n");
		break;
	}
	default: {
		SAM("unknown error: %i\n", purb->status);
		break;
	}
	}
	SAM("ERROR: non-zero urb status: -%s: %d\n",
		strerror(purb->status), purb->status);
	goto resubmit;
}
/*---------------------------------------------------------------------------*/
@@ -313,86 +228,10 @@ oldaudio = peasycap->oldaudio;
#endif /*UPSAMPLE*/

for (i = 0;  i < purb->number_of_packets; i++) {
	switch (purb->iso_frame_desc[i].status) {
	case  0: {
		break;
	}
	case -ENOENT: {
		SAM("-ENOENT\n");
		break;
	}
	case -EINPROGRESS: {
		SAM("-EINPROGRESS\n");
		break;
	}
	case -EPROTO: {
		SAM("-EPROTO\n");
		break;
	}
	case -EILSEQ: {
		SAM("-EILSEQ\n");
		break;
	}
	case -ETIME: {
		SAM("-ETIME\n");
		break;
	}
	case -ETIMEDOUT: {
		SAM("-ETIMEDOUT\n");
		break;
	}
	case -EPIPE: {
		SAM("-EPIPE\n");
		break;
	}
	case -ECOMM: {
		SAM("-ECOMM\n");
		break;
	}
	case -ENOSR: {
		SAM("-ENOSR\n");
		break;
	}
	case -EOVERFLOW: {
		SAM("-EOVERFLOW\n");
		break;
	}
	case -EREMOTEIO: {
		SAM("-EREMOTEIO\n");
		break;
	}
	case -ENODEV: {
		SAM("-ENODEV\n");
		break;
	}
	case -EXDEV: {
		SAM("-EXDEV\n");
		break;
	}
	case -EINVAL: {
		SAM("-EINVAL\n");
		break;
	}
	case -ECONNRESET: {
		SAM("-ECONNRESET\n");
		break;
	}
	case -ENOSPC: {
		SAM("-ENOSPC\n");
		break;
	}
	case -ESHUTDOWN: {
		SAM("-ESHUTDOWN\n");
		break;
	}
	case -EPERM: {
		SAM("-EPERM\n");
		break;
	}
	default: {
		SAM("unknown error: %i\n", purb->iso_frame_desc[i].status);
		break;
	}
	if (purb->iso_frame_desc[i].status < 0) {
		SAM("-%s: %d\n",
			strerror(purb->iso_frame_desc[i].status),
			purb->iso_frame_desc[i].status);
	}
	if (!purb->iso_frame_desc[i].status) {
		more = purb->iso_frame_desc[i].actual_length;
@@ -537,56 +376,12 @@ peasycap->oldaudio = oldaudio;
resubmit:
if (peasycap->audio_isoc_streaming) {
	rc = usb_submit_urb(purb, GFP_ATOMIC);
	if (0 != rc) {
	if (rc) {
		if ((-ENODEV != rc) && (-ENOENT != rc)) {
			SAM("ERROR: while %i=audio_idle, "
				"usb_submit_urb() failed "
				"with rc:\n", peasycap->audio_idle);
		}
		switch (rc) {
		case -ENODEV:
		case -ENOENT:
			break;
		case -ENOMEM: {
			SAM("-ENOMEM\n");
			break;
		}
		case -ENXIO: {
			SAM("-ENXIO\n");
			break;
		}
		case -EINVAL: {
			SAM("-EINVAL\n");
			break;
		}
		case -EAGAIN: {
			SAM("-EAGAIN\n");
			break;
		}
		case -EFBIG: {
			SAM("-EFBIG\n");
			break;
		}
		case -EPIPE: {
			SAM("-EPIPE\n");
			break;
		}
		case -EMSGSIZE: {
			SAM("-EMSGSIZE\n");
			break;
		}
		case -ENOSPC: {
			SAM("-ENOSPC\n");
			break;
		}
		case -EPERM: {
			SAM("-EPERM\n");
			break;
		}
		default: {
			SAM("unknown error: %i\n", rc);
			break;
		}
				"with rc: -%s :%d\n", peasycap->audio_idle,
				strerror(rc), rc);
		}
		if (0 < peasycap->audio_isoc_streaming)
			(peasycap->audio_isoc_streaming)--;
@@ -945,56 +740,12 @@ if (peasycap->audio_idle) {
			peasycap->audio_idle, peasycap->audio_isoc_streaming);
	if (peasycap->audio_isoc_streaming) {
		rc = usb_submit_urb(purb, GFP_ATOMIC);
		if (0 != rc) {
		if (rc) {
			if (-ENODEV != rc && -ENOENT != rc) {
				SAM("ERROR: while %i=audio_idle, "
					"usb_submit_urb() failed with rc:\n",
							peasycap->audio_idle);
			}
			switch (rc) {
			case -ENODEV:
			case -ENOENT:
				break;
			case -ENOMEM: {
				SAM("-ENOMEM\n");
				break;
			}
			case -ENXIO: {
				SAM("-ENXIO\n");
				break;
			}
			case -EINVAL: {
				SAM("-EINVAL\n");
				break;
			}
			case -EAGAIN: {
				SAM("-EAGAIN\n");
				break;
			}
			case -EFBIG: {
				SAM("-EFBIG\n");
				break;
			}
			case -EPIPE: {
				SAM("-EPIPE\n");
				break;
			}
			case -EMSGSIZE: {
				SAM("-EMSGSIZE\n");
				break;
			}
			case -ENOSPC: {
				SAM("-ENOSPC\n");
				break;
			}
			case -EPERM: {
				SAM("-EPERM\n");
				break;
			}
			default: {
				SAM("unknown error: %i\n", rc);
				break;
			}
				    "usb_submit_urb() failed with rc: -%s: %d\n",
					peasycap->audio_idle,
					strerror(rc), rc);
			}
		}
	}
@@ -1006,97 +757,8 @@ if (purb->status) {
		JOM(16, "urb status -ESHUTDOWN or -ENOENT\n");
		return;
	}
	SAM("ERROR: non-zero urb status:\n");
	switch (purb->status) {
	case -EINPROGRESS: {
		SAM("-EINPROGRESS\n");
		break;
	}
	case -ENOSR: {
		SAM("-ENOSR\n");
		break;
	}
	case -EPIPE: {
		SAM("-EPIPE\n");
		break;
	}
	case -EOVERFLOW: {
		SAM("-EOVERFLOW\n");
		break;
	}
	case -EPROTO: {
		SAM("-EPROTO\n");
		break;
	}
	case -EILSEQ: {
		SAM("-EILSEQ\n");
		break;
	}
	case -ETIMEDOUT: {
		SAM("-ETIMEDOUT\n");
		break;
	}
	case -EMSGSIZE: {
		SAM("-EMSGSIZE\n");
		break;
	}
	case -EOPNOTSUPP: {
		SAM("-EOPNOTSUPP\n");
		break;
	}
	case -EPFNOSUPPORT: {
		SAM("-EPFNOSUPPORT\n");
		break;
	}
	case -EAFNOSUPPORT: {
		SAM("-EAFNOSUPPORT\n");
		break;
	}
	case -EADDRINUSE: {
		SAM("-EADDRINUSE\n");
		break;
	}
	case -EADDRNOTAVAIL: {
		SAM("-EADDRNOTAVAIL\n");
		break;
	}
	case -ENOBUFS: {
		SAM("-ENOBUFS\n");
		break;
	}
	case -EISCONN: {
		SAM("-EISCONN\n");
		break;
	}
	case -ENOTCONN: {
		SAM("-ENOTCONN\n");
		break;
	}
	case -ESHUTDOWN: {
		SAM("-ESHUTDOWN\n");
		break;
	}
	case -ENOENT: {
		SAM("-ENOENT\n");
		break;
	}
	case -ECONNRESET: {
		SAM("-ECONNRESET\n");
		break;
	}
	case -ENOSPC: {
		SAM("ENOSPC\n");
		break;
	}
	case -EPERM: {
		SAM("-EPERM\n");
		break;
	}
	default: {
		SAM("unknown error: %i\n", purb->status);
		break;
	}
	}
	SAM("ERROR: non-zero urb status: -%s: %d\n",
		strerror(purb->status), purb->status);
	goto resubmit;
}
/*---------------------------------------------------------------------------*/
@@ -1109,88 +771,10 @@ oldaudio = peasycap->oldaudio;
#endif /*UPSAMPLE*/

for (i = 0;  i < purb->number_of_packets; i++) {
	switch (purb->iso_frame_desc[i].status) {
	case  0: {
		break;
	}
	case -ENODEV: {
		SAM("-ENODEV\n");
		break;
	}
	case -ENOENT: {
		SAM("-ENOENT\n");
		break;
	}
	case -EINPROGRESS: {
		SAM("-EINPROGRESS\n");
		break;
	}
	case -EPROTO: {
		SAM("-EPROTO\n");
		break;
	}
	case -EILSEQ: {
		SAM("-EILSEQ\n");
		break;
	}
	case -ETIME: {
		SAM("-ETIME\n");
		break;
	}
	case -ETIMEDOUT: {
		SAM("-ETIMEDOUT\n");
		break;
	}
	case -EPIPE: {
		SAM("-EPIPE\n");
		break;
	}
	case -ECOMM: {
		SAM("-ECOMM\n");
		break;
	}
	case -ENOSR: {
		SAM("-ENOSR\n");
		break;
	}
	case -EOVERFLOW: {
		SAM("-EOVERFLOW\n");
		break;
	}
	case -EREMOTEIO: {
		SAM("-EREMOTEIO\n");
		break;
	}
	case -EXDEV: {
		SAM("-EXDEV\n");
		break;
	}
	case -EINVAL: {
		SAM("-EINVAL\n");
		break;
	}
	case -ECONNRESET: {
		SAM("-ECONNRESET\n");
		break;
	}
	case -ENOSPC: {
		SAM("-ENOSPC\n");
		break;
	}
	case -ESHUTDOWN: {
		SAM("-ESHUTDOWN\n");
		break;
	}
	case -EPERM: {
		SAM("-EPERM\n");
		break;
	}
	default: {
		SAM("unknown error: %i\n", purb->iso_frame_desc[i].status);
		break;
	}
	}
	if (!purb->iso_frame_desc[i].status) {

		SAM("-%s\n", strerror(purb->iso_frame_desc[i].status));

		more = purb->iso_frame_desc[i].actual_length;

#if defined(TESTTONE)
@@ -1370,52 +954,8 @@ if (peasycap->audio_isoc_streaming) {
		if (-ENODEV != rc && -ENOENT != rc) {
			SAM("ERROR: while %i=audio_idle, "
				"usb_submit_urb() failed "
				"with rc:\n", peasycap->audio_idle);
		}
		switch (rc) {
		case -ENODEV:
		case -ENOENT:
			break;
		case -ENOMEM: {
			SAM("-ENOMEM\n");
			break;
		}
		case -ENXIO: {
			SAM("-ENXIO\n");
			break;
		}
		case -EINVAL: {
			SAM("-EINVAL\n");
			break;
		}
		case -EAGAIN: {
			SAM("-EAGAIN\n");
			break;
		}
		case -EFBIG: {
			SAM("-EFBIG\n");
			break;
		}
		case -EPIPE: {
			SAM("-EPIPE\n");
			break;
		}
		case -EMSGSIZE: {
			SAM("-EMSGSIZE\n");
			break;
		}
		case -ENOSPC: {
			SAM("-ENOSPC\n");
			break;
		}
		case -EPERM: {
			SAM("-EPERM\n");
			break;
		}
		default: {
			SAM("unknown error: %i\n", rc);
			break;
		}
				"with rc: -%s: %d\n", peasycap->audio_idle,
				strerror(rc), rc);
		}
	}
}
@@ -1965,60 +1505,11 @@ if (!peasycap->audio_isoc_streaming) {
				}

				rc = usb_submit_urb(purb, GFP_KERNEL);
				if (0 != rc) {
				if (rc) {
					isbad++;
					SAM("ERROR: usb_submit_urb() failed"
							" for urb with rc:\n");
					switch (rc) {
					case -ENODEV: {
						SAM("-ENODEV\n");
						break;
					}
					case -ENOENT: {
						SAM("-ENOENT\n");
						break;
					}
					case -ENOMEM: {
						SAM("-ENOMEM\n");
						break;
					}
					case -ENXIO: {
						SAM("-ENXIO\n");
						break;
					}
					case -EINVAL: {
						SAM("-EINVAL\n");
						break;
					}
					case -EAGAIN: {
						SAM("-EAGAIN\n");
						break;
					}
					case -EFBIG: {
						SAM("-EFBIG\n");
						break;
					}
					case -EPIPE: {
						SAM("-EPIPE\n");
						break;
					}
					case -EMSGSIZE: {
						SAM("-EMSGSIZE\n");
						break;
					}
					case -ENOSPC: {
						nospc++;
						break;
					}
					case -EPERM: {
						SAM("-EPERM\n");
						break;
					}
					default: {
						SAM("unknown error: %i\n", rc);
						break;
					}
					}
						" for urb with rc: -%s: %d\n",
						strerror(rc), rc);
				} else {
					 m++;
				}