mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-09 11:23:09 -04:00
media: rcar-vin: Remove superfluous starting state
The STARTING state is superfluous and can be replaced with a check of the sequence counter. The design idea is that the first buffer returned from the driver have to come from the first hardware buffer slot. Failing this the first 3 buffers queued to the device can be returned out-of-order. But it's much clearer to check the sequence counter to only return the first buffer if it comes from hardware slot 0 then it is to carry around an extra state just for this. Remove the unneeded state and replace it with a simpler check. Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Reviewed-by: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com> Tested-by: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
This commit is contained in:
committed by
Hans Verkuil
parent
1dadd89b58
commit
25482a986e
@@ -1048,7 +1048,7 @@ static int rvin_capture_start(struct rvin_dev *vin)
|
||||
/* Continuous Frame Capture Mode */
|
||||
rvin_write(vin, VNFC_C_FRAME, VNFC_REG);
|
||||
|
||||
vin->state = STARTING;
|
||||
vin->state = RUNNING;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1104,14 +1104,13 @@ static irqreturn_t rvin_irq(int irq, void *data)
|
||||
* To hand buffers back in a known order to userspace start
|
||||
* to capture first from slot 0.
|
||||
*/
|
||||
if (vin->state == STARTING) {
|
||||
if (!vin->sequence) {
|
||||
if (slot != 0) {
|
||||
vin_dbg(vin, "Starting sync slot: %d\n", slot);
|
||||
goto done;
|
||||
}
|
||||
|
||||
vin_dbg(vin, "Capture start synced!\n");
|
||||
vin->state = RUNNING;
|
||||
}
|
||||
|
||||
/* Capture frame */
|
||||
|
||||
@@ -64,13 +64,11 @@ enum rvin_isp_id {
|
||||
/**
|
||||
* enum rvin_dma_state - DMA states
|
||||
* @STOPPED: No operation in progress
|
||||
* @STARTING: Capture starting up
|
||||
* @RUNNING: Operation in progress have buffers
|
||||
* @STOPPING: Stopping operation
|
||||
*/
|
||||
enum rvin_dma_state {
|
||||
STOPPED = 0,
|
||||
STARTING,
|
||||
RUNNING,
|
||||
STOPPING,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user