diff --git a/src/libcamera/include/v4l2_videodevice.h b/src/libcamera/include/v4l2_videodevice.h
index fcf072641420dacf..359b366454e4e782 100644
--- a/src/libcamera/include/v4l2_videodevice.h
+++ b/src/libcamera/include/v4l2_videodevice.h
@@ -122,7 +122,7 @@ private:
 		Entry();
 		Entry(bool free, const FrameBuffer &buffer);
 
-		bool operator==(const FrameBuffer &buffer);
+		bool operator==(const FrameBuffer &buffer) const;
 
 		bool free;
 
diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
index 99470ce11421c77c..d88cb0bd0771e545 100644
--- a/src/libcamera/v4l2_videodevice.cpp
+++ b/src/libcamera/v4l2_videodevice.cpp
@@ -256,7 +256,7 @@ V4L2BufferCache::Entry::Entry(bool free, const FrameBuffer &buffer)
 		planes_.emplace_back(plane);
 }
 
-bool V4L2BufferCache::Entry::operator==(const FrameBuffer &buffer)
+bool V4L2BufferCache::Entry::operator==(const FrameBuffer &buffer) const
 {
 	const std::vector<FrameBuffer::Plane> &planes = buffer.planes();
 
