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

Commit 27a97206 authored by Ravneet Dhanjal's avatar Ravneet Dhanjal Committed by Automerger Merge Worker
Browse files

CameraService: Updated watchdog disconnect timer am: 72c96659

parents 4be2035a 72c96659
Loading
Loading
Loading
Loading
+8 −4
Original line number Original line Diff line number Diff line
@@ -41,8 +41,6 @@


namespace android {
namespace android {


const static size_t kDisconnectTimeoutMs = 2500;

using namespace camera2;
using namespace camera2;


// Interface used by CameraService
// Interface used by CameraService
@@ -252,10 +250,16 @@ status_t Camera2ClientBase<TClientBase>::dumpDevice(


template <typename TClientBase>
template <typename TClientBase>
binder::Status Camera2ClientBase<TClientBase>::disconnect() {
binder::Status Camera2ClientBase<TClientBase>::disconnect() {
    if (mCameraServiceWatchdog != nullptr) {
    if (mCameraServiceWatchdog != nullptr && mDevice != nullptr) {
        // Timer for the disconnect call should be greater than getExpectedInFlightDuration
        // since this duration is used to error handle methods in the disconnect sequence
        // thus allowing existing error handling methods to execute first
        uint64_t maxExpectedDuration =
                ns2ms(mDevice->getExpectedInFlightDuration() + kBufferTimeDisconnectNs);

        // Initialization from hal succeeded, time disconnect.
        // Initialization from hal succeeded, time disconnect.
        return mCameraServiceWatchdog->WATCH_CUSTOM_TIMER(disconnectImpl(),
        return mCameraServiceWatchdog->WATCH_CUSTOM_TIMER(disconnectImpl(),
                kDisconnectTimeoutMs / kCycleLengthMs, kCycleLengthMs);
                maxExpectedDuration / kCycleLengthMs, kCycleLengthMs);
    }
    }
    return disconnectImpl();
    return disconnectImpl();
}
}
+3 −0
Original line number Original line Diff line number Diff line
@@ -132,6 +132,9 @@ public:


protected:
protected:


    // Used for watchdog timeout to monitor disconnect
    static const nsecs_t kBufferTimeDisconnectNs = 3000000000; // 3 sec.

    // The PID provided in the constructor call
    // The PID provided in the constructor call
    pid_t mInitialClientPid;
    pid_t mInitialClientPid;
    bool mOverrideForPerfClass = false;
    bool mOverrideForPerfClass = false;
+1 −1
Original line number Original line Diff line number Diff line
@@ -1742,7 +1742,7 @@ status_t Camera3Device::flush(int64_t *frameNumber) {
    }
    }


    // Calculate expected duration for flush with additional buffer time in ms for watchdog
    // Calculate expected duration for flush with additional buffer time in ms for watchdog
    uint64_t maxExpectedDuration = (getExpectedInFlightDuration() + kBaseGetBufferWait) / 1e6;
    uint64_t maxExpectedDuration = ns2ms(getExpectedInFlightDuration() + kBaseGetBufferWait);
    status_t res = mCameraServiceWatchdog->WATCH_CUSTOM_TIMER(mRequestThread->flush(),
    status_t res = mCameraServiceWatchdog->WATCH_CUSTOM_TIMER(mRequestThread->flush(),
            maxExpectedDuration / kCycleLengthMs, kCycleLengthMs);
            maxExpectedDuration / kCycleLengthMs, kCycleLengthMs);