diff --git a/test/v4l2_videodevice/v4l2_m2mdevice.cpp b/test/v4l2_videodevice/v4l2_m2mdevice.cpp
index 852b853fa81a..c45f581a8653 100644
--- a/test/v4l2_videodevice/v4l2_m2mdevice.cpp
+++ b/test/v4l2_videodevice/v4l2_m2mdevice.cpp
@@ -95,6 +95,11 @@ protected:
 		V4L2VideoDevice *capture = vim2m_->capture();
 		V4L2VideoDevice *output = vim2m_->output();
 
+		if (capture->controls().empty() || output->controls().empty()) {
+			cerr << "VIM2M device has no control" << endl;
+			return TestFail;
+		}
+
 		V4L2DeviceFormat format = {};
 		if (capture->getFormat(&format)) {
 			cerr << "Failed to get capture format" << endl;
