@@ -99,7 +99,7 @@  public:
 	int getFormat(V4L2DeviceFormat *format);
 	int setFormat(V4L2DeviceFormat *format);
 
-	int exportBuffers(unsigned int count, BufferPool *pool);
+	int exportBuffers(BufferPool *pool);
 	int releaseBuffers();
 
 	int queueBuffer(Buffer *buffer);
@@ -191,8 +191,7 @@  int PipelineHandlerIPU3::allocateBuffers(Camera *camera, Stream *stream)
 	if (!cfg.bufferCount)
 		return -EINVAL;
 
-	int ret = data->cio2_->exportBuffers(cfg.bufferCount,
-					     &stream->bufferPool());
+	int ret = data->cio2_->exportBuffers(&stream->bufferPool());
 	if (ret) {
 		LOG(IPU3, Error) << "Failed to request memory";
 		return ret;
@@ -102,7 +102,7 @@  int PipelineHandlerUVC::allocateBuffers(Camera *camera, Stream *stream)
 
 	LOG(UVC, Debug) << "Requesting " << cfg.bufferCount << " buffers";
 
-	return video_->exportBuffers(cfg.bufferCount, &stream->bufferPool());
+	return video_->exportBuffers(&stream->bufferPool());
 }
 
 int PipelineHandlerUVC::freeBuffers(Camera *camera, Stream *stream)
@@ -101,7 +101,7 @@  int PipelineHandlerVimc::allocateBuffers(Camera *camera, Stream *stream)
 
 	LOG(VIMC, Debug) << "Requesting " << cfg.bufferCount << " buffers";
 
-	return video_->exportBuffers(cfg.bufferCount, &stream->bufferPool());
+	return video_->exportBuffers(&stream->bufferPool());
 }
 
 int PipelineHandlerVimc::freeBuffers(Camera *camera, Stream *stream)
@@ -538,13 +538,12 @@  int V4L2Device::requestBuffers(unsigned int count)
 }
 
 /**
- * \brief Request \a count buffers to be allocated from the device and stored in
- * the buffer pool provided.
- * \param[in] count Number of buffers to allocate
+ * \brief Request buffers to be allocated from the device and stored in the
+ *  buffer pool provided.
  * \param[out] pool BufferPool to populate with buffers
  * \return 0 on success or a negative error code otherwise
  */
-int V4L2Device::exportBuffers(unsigned int count, BufferPool *pool)
+int V4L2Device::exportBuffers(BufferPool *pool)
 {
 	unsigned int allocatedBuffers;
 	unsigned int i;
@@ -552,21 +551,19 @@  int V4L2Device::exportBuffers(unsigned int count, BufferPool *pool)
 
 	memoryType_ = V4L2_MEMORY_MMAP;
 
-	ret = requestBuffers(count);
+	ret = requestBuffers(pool->count());
 	if (ret < 0)
 		return ret;
 
 	allocatedBuffers = ret;
-	if (allocatedBuffers < count) {
+	if (allocatedBuffers < pool->count()) {
 		LOG(V4L2, Error) << "Not enough buffers provided by V4L2Device";
 		requestBuffers(0);
 		return -ENOMEM;
 	}
 
-	count = ret;
-
 	/* Map the buffers. */
-	for (i = 0; i < count; ++i) {
+	for (i = 0; i < pool->count(); ++i) {
 		struct v4l2_plane planes[VIDEO_MAX_PLANES] = {};
 		struct v4l2_buffer buf = {};
 		struct Buffer &buffer = pool->buffers()[i];
@@ -38,9 +38,9 @@  protected:
 		Timer timeout;
 		int ret;
 
-		createBuffers(bufferCount);
+		pool_.createBuffers(bufferCount);
 
-		ret = dev_->exportBuffers(bufferCount, &pool_);
+		ret = dev_->exportBuffers(&pool_);
 		if (ret)
 			return TestFail;
 
@@ -19,9 +19,9 @@  protected:
 		 */
 		const unsigned int bufferCount = 8;
 
-		createBuffers(bufferCount);
+		pool_.createBuffers(bufferCount);
 
-		int ret = dev_->exportBuffers(bufferCount, &pool_);
+		int ret = dev_->exportBuffers(&pool_);
 		if (ret)
 			return TestFail;
 
@@ -14,9 +14,9 @@  protected:
 	{
 		const unsigned int bufferCount = 8;
 
-		createBuffers(bufferCount);
+		pool_.createBuffers(bufferCount);
 
-		int ret = dev_->exportBuffers(bufferCount, &pool_);
+		int ret = dev_->exportBuffers(&pool_);
 		if (ret)
 			return TestFail;
 
@@ -24,8 +24,6 @@  class V4L2DeviceTest : public Test
 public:
 	V4L2DeviceTest() : dev_(nullptr){};
 
-	void createBuffers(unsigned int qty) { pool_.createBuffers(qty); }
-
 protected:
 	int init();
 	void cleanup();