diff options
author | David Plowman <david.plowman@raspberrypi.com> | 2021-02-10 17:58:30 +0000 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-02-11 19:14:39 +0200 |
commit | db55e09b42f87d9a7fde32afc4e0eee90b4c7690 (patch) | |
tree | aaa92af273619220ec683a4a2bf546363ab85cac /src/ipa/raspberrypi/controller/geq_status.h | |
parent | e36a6f40433ce661610f34ed2db31e82e22c579d (diff) |
ipa: raspberrypi: AWB: Fix race condition setting manual gains
Applying the manual_r_ and manual_b_ values is entirely removed from
the asynchronous thread where their use constituted a race hazard. The
main thread now deals with them entirely, involving the following
changes.
1. SetManualGains() applies the new values directly to the
"sync_results", meaning that Prepare() will jump to the new values
immediately (which is a better behaviour).
2. Process() does not restart the asynchronous thread when manual
gains are in force.
3. The asynchronous thread might be running when manual gains are set,
so we ignore the results produced in this case.
Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Naushir Patuck <naush@raspberrypi.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/ipa/raspberrypi/controller/geq_status.h')
0 files changed, 0 insertions, 0 deletions