diff --git a/include/libcamera/buffer.h b/include/libcamera/buffer.h
index 2d8885e9f3a1234f..8dd9f91272291648 100644
--- a/include/libcamera/buffer.h
+++ b/include/libcamera/buffer.h
@@ -123,8 +123,6 @@ private:
 
 	void cancel();
 
-	void setRequest(Request *request) { request_ = request; }
-
 	unsigned int index_;
 	std::array<int, 3> dmabuf_;
 	BufferMemory *mem_;
diff --git a/src/libcamera/buffer.cpp b/src/libcamera/buffer.cpp
index 3ea982306843b116..4a77f20751408b7c 100644
--- a/src/libcamera/buffer.cpp
+++ b/src/libcamera/buffer.cpp
@@ -279,7 +279,6 @@ Buffer::Buffer(unsigned int index, const Buffer *metadata)
  *
  * \return The Request the Buffer belongs to, or nullptr if the buffer is
  * either completed or not associated with a request
- * \sa Buffer::setRequest()
  */
 
 /**
@@ -307,10 +306,11 @@ void Buffer::cancel()
 }
 
 /**
- * \fn Buffer::setRequest()
- * \brief Set the request this buffer belongs to
+ * \var Buffer::request_
+ * \brief The request this buffer belongs to
  *
- * The intended callers are Request::prepare() and Request::completeBuffer().
+ * This member is intended to be set by Request::prepare() and
+ * Request::completeBuffer().
  */
 
 /**
diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp
index c14ed1a4d3ce55d0..c2854dc2e8caab2e 100644
--- a/src/libcamera/request.cpp
+++ b/src/libcamera/request.cpp
@@ -220,7 +220,7 @@ int Request::prepare()
 
 	for (auto const &pair : bufferMap_) {
 		Buffer *buffer = pair.second;
-		buffer->setRequest(this);
+		buffer->request_ = this;
 		pending_.insert(buffer);
 	}
 
@@ -258,7 +258,7 @@ bool Request::completeBuffer(Buffer *buffer)
 	int ret = pending_.erase(buffer);
 	ASSERT(ret == 1);
 
-	buffer->setRequest(nullptr);
+	buffer->request_ = nullptr;
 
 	if (buffer->status() == Buffer::BufferCancelled)
 		cancelled_ = true;
