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

Commit 8a698a07 authored by Ricardo Cerqueira's avatar Ricardo Cerqueira
Browse files

sensors: Improve support for old libsensors HAL

Some devices (harmony, at least) claim to support the nuSensors
SENSORS_HARDWARE_POLL, which was breaking the compatibility
check. This removes that check from runtime and makes it
exclusively a compile-time option..

Change-Id: Ide4262e5dec296d96aa896d676a06985fe09aef1
parent 9e455359
Loading
Loading
Loading
Loading
+10 −15
Original line number Diff line number Diff line
@@ -110,26 +110,21 @@ SensorDevice::SensorDevice()
            SENSORS_HARDWARE_MODULE_ID, strerror(-err));

    if (mSensorModule) {
        err = sensors_open(&mSensorModule->common, &mSensorDevice);

#ifdef ENABLE_SENSORS_COMPAT
        if (err) {
        if (!sensors_control_open(&mSensorModule->common, &mSensorControlDevice)) {
            if (sensors_data_open(&mSensorModule->common, &mSensorDataDevice)) {
                    LOGE_IF(err, "couldn't open device for module %s (%s)",
                LOGE("couldn't open data device in backwards-compat mode for module %s (%s)",
                        SENSORS_HARDWARE_MODULE_ID, strerror(-err));
            } else {
                LOGD("Opened sensors in backwards compat mode");
                mOldSensorsCompatMode = true;
            }
        } else {
                LOGE_IF(err, "couldn't open device for module %s (%s)",
            LOGE("couldn't open control device in backwards-compat mode for module %s (%s)",
                    SENSORS_HARDWARE_MODULE_ID, strerror(-err));
        }
        } else {
            mOldSensorsCompatMode = false;
        }
#else
        err = sensors_open(&mSensorModule->common, &mSensorDevice);
        LOGE_IF(err, "couldn't open device for module %s (%s)",
                SENSORS_HARDWARE_MODULE_ID, strerror(-err));
#endif
@@ -243,7 +238,7 @@ status_t SensorDevice::activate(void* ident, int handle, int enabled)
        if (mOldSensorsCompatMode) {
            if (enabled)
                mOldSensorsEnabled++;
            else
            else if (mOldSensorsEnabled > 0)
                mOldSensorsEnabled--;
            LOGV("Activation for %d (%d)",handle,enabled);
            if (enabled) {
+1 −1
Original line number Diff line number Diff line
@@ -38,8 +38,8 @@ class SensorDevice : public Singleton<SensorDevice> {
    struct sensors_poll_device_t* mSensorDevice;
    struct sensors_data_device_t* mSensorDataDevice;
    struct sensors_control_device_t* mSensorControlDevice;
    bool mOldSensorsCompatMode;
    int32_t mOldSensorsEnabled;
    bool mOldSensorsCompatMode;
    native_handle_t *mOldSensorsDataChannel;
    struct sensors_module_t* mSensorModule;
    Mutex mLock; // protect mActivationCount[].rates