DmaBufAllocator: Make DmaSyncer non-copyable
As DmaSyncer does sync start/end in the c'tor/d'tor, copying a DmaSyncer
instance would trigger sync end earlier than expected. This patch makes
it non-copyable to avoid the issue.
Fixes: 39482d59fe
("DmaBufAllocator: Add Dma Buffer synchronization function & helper class")
Signed-off-by: Harvey Yang <chenghaoyang@chromium.org>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
parent
4f9d8a6301
commit
545046a41e
2 changed files with 17 additions and 0 deletions
|
@ -60,9 +60,14 @@ public:
|
||||||
|
|
||||||
explicit DmaSyncer(SharedFD fd, SyncType type = SyncType::ReadWrite);
|
explicit DmaSyncer(SharedFD fd, SyncType type = SyncType::ReadWrite);
|
||||||
|
|
||||||
|
DmaSyncer(DmaSyncer &&other) = default;
|
||||||
|
DmaSyncer &operator=(DmaSyncer &&other) = default;
|
||||||
|
|
||||||
~DmaSyncer();
|
~DmaSyncer();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
LIBCAMERA_DISABLE_COPY(DmaSyncer)
|
||||||
|
|
||||||
void sync(uint64_t step);
|
void sync(uint64_t step);
|
||||||
|
|
||||||
SharedFD fd_;
|
SharedFD fd_;
|
||||||
|
|
|
@ -311,6 +311,18 @@ DmaSyncer::DmaSyncer(SharedFD fd, SyncType type)
|
||||||
sync(DMA_BUF_SYNC_START);
|
sync(DMA_BUF_SYNC_START);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \fn DmaSyncer::DmaSyncer(DmaSyncer &&other);
|
||||||
|
* \param[in] other The other instance
|
||||||
|
* \brief Enable move on class DmaSyncer
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \fn DmaSyncer::operator=(DmaSyncer &&other);
|
||||||
|
* \param[in] other The other instance
|
||||||
|
* \brief Enable move on class DmaSyncer
|
||||||
|
*/
|
||||||
|
|
||||||
DmaSyncer::~DmaSyncer()
|
DmaSyncer::~DmaSyncer()
|
||||||
{
|
{
|
||||||
sync(DMA_BUF_SYNC_END);
|
sync(DMA_BUF_SYNC_END);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue