Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9454a971 authored by Eino-Ville Talvala's avatar Eino-Ville Talvala
Browse files

Camera2/3: Don't trigger AF when in INFINITY focus mode.

While the HAL should ignore it, it's faster to immediately respond
with success.

Also filter out cancel autofocus calls for FIXED/INFINITY focus.

Bug: 9263856
Change-Id: I637ec7c8b459d654ef11cb1142b959f2674224c5
parent b7319a7e
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -1007,8 +1007,12 @@ status_t Camera2Client::autoFocus() {
          * If the camera does not support auto-focus, it is a no-op and
          * onAutoFocus(boolean, Camera) callback will be called immediately
          * with a fake value of success set to true.
          *
          * Similarly, if focus mode is set to INFINITY, there's no reason to
          * bother the HAL.
          */
        if (l.mParameters.focusMode == Parameters::FOCUS_MODE_FIXED) {
        if (l.mParameters.focusMode == Parameters::FOCUS_MODE_FIXED ||
                l.mParameters.focusMode == Parameters::FOCUS_MODE_INFINITY) {
            notifyImmediately = true;
            notifySuccess = true;
        }
@@ -1068,6 +1072,11 @@ status_t Camera2Client::cancelAutoFocus() {
    int triggerId;
    {
        SharedParameters::Lock l(mParameters);
        // Canceling does nothing in FIXED or INFINITY modes
        if (l.mParameters.focusMode == Parameters::FOCUS_MODE_FIXED ||
                l.mParameters.focusMode == Parameters::FOCUS_MODE_INFINITY) {
            return OK;
        }
        triggerId = ++l.mParameters.afTriggerCounter;

        // When using triggerAfWithAuto quirk, may need to reset focus mode to