diff --git a/src/libcamera/sensor/camera_sensor_raw.cpp b/src/libcamera/sensor/camera_sensor_raw.cpp
index d8874a7c5e1a..5301bc6d9f8c 100644
--- a/src/libcamera/sensor/camera_sensor_raw.cpp
+++ b/src/libcamera/sensor/camera_sensor_raw.cpp
@@ -1187,6 +1187,6 @@ std::string CameraSensorRaw::logPrefix() const
 	return "'" + entity_->name() + "'";
 }
 
-REGISTER_CAMERA_SENSOR(CameraSensorRaw, -200)
+REGISTER_CAMERA_SENSOR(CameraSensorRaw, 0)
 
 } /* namespace libcamera */
diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp
index 36f17e23da8e..28f962bbdd10 100644
--- a/src/libcamera/v4l2_subdevice.cpp
+++ b/src/libcamera/v4l2_subdevice.cpp
@@ -1281,19 +1281,21 @@ int V4L2Subdevice::open()
 		return ret;
 	}
 
+	struct v4l2_subdev_client_capability clientCaps{};
+	clientCaps.capabilities = V4L2_SUBDEV_CLIENT_CAP_COMMON_RAW_SENSOR;
+
 	/* If the subdev supports streams, enable the streams API. */
 	if (caps_.hasStreams()) {
-		struct v4l2_subdev_client_capability clientCaps{};
-		clientCaps.capabilities = V4L2_SUBDEV_CLIENT_CAP_STREAMS;
+		clientCaps.capabilities |= V4L2_SUBDEV_CLIENT_CAP_STREAMS;
+	}
 
-		ret = ioctl(VIDIOC_SUBDEV_S_CLIENT_CAP, &clientCaps);
-		if (ret < 0) {
-			ret = -errno;
-			LOG(V4L2, Error)
-				<< "Unable to set client capabilities: "
-				<< strerror(-ret);
-			return ret;
-		}
+	ret = ioctl(VIDIOC_SUBDEV_S_CLIENT_CAP, &clientCaps);
+	if (ret < 0 && errno != ENOTTY) {
+		ret = -errno;
+		LOG(V4L2, Error)
+			<< "Unable to set client capabilities: "
+			<< strerror(-ret);
+		return ret;
 	}
 
 	return 0;
