diff -urN gst-plugins-good-0.10.30/sys/v4l2/v4l2_calls.c gst-plugins-good-0.10.30-patch/sys/v4l2/v4l2_calls.c
--- gst-plugins-good-0.10.30/sys/v4l2/v4l2_calls.c	2011-06-14 16:44:20.000000000 +0300
+++ gst-plugins-good-0.10.30-patch/sys/v4l2/v4l2_calls.c	2012-02-06 10:11:05.000000000 +0200
@@ -250,7 +250,7 @@
 
     control.id = n;
     if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_QUERYCTRL, &control) < 0) {
-      if (errno == EINVAL) {
+      if (errno == EINVAL || errno == ENOTTY) {
         if (n < V4L2_CID_PRIVATE_BASE) {
           GST_DEBUG_OBJECT (e, "skipping control %08x", n);
           /* continue so that we also check private controls */
