}
static int
-st_lsm6dsx_check_events(struct st_lsm6dsx_sensor *sensor, bool enable)
+st_lsm6dsx_check_events(struct st_lsm6dsx_sensor *sensor)
{
struct st_lsm6dsx_hw *hw = sensor->hw;
- if (sensor->id == ST_LSM6DSX_ID_GYRO || enable)
+ if (sensor->id != ST_LSM6DSX_ID_ACC)
return 0;
return hw->enable_event;
int st_lsm6dsx_sensor_set_enable(struct st_lsm6dsx_sensor *sensor,
bool enable)
{
- if (st_lsm6dsx_check_events(sensor, enable))
+ if (st_lsm6dsx_check_events(sensor))
return 0;
return __st_lsm6dsx_sensor_set_enable(sensor, enable);
if (err < 0)
return err;
- if (!hw->enable_event) {
- err = st_lsm6dsx_sensor_set_enable(sensor, false);
- if (err < 0)
- return err;
- }
+ err = st_lsm6dsx_sensor_set_enable(sensor, false);
+ if (err < 0)
+ return err;
*val = (s16)le16_to_cpu(data);
continue;
if (device_may_wakeup(dev) &&
- sensor->id == ST_LSM6DSX_ID_ACC && hw->enable_event) {
+ st_lsm6dsx_check_events(sensor)) {
/* Enable wake from IRQ */
enable_irq_wake(hw->irq);
continue;
sensor = iio_priv(hw->iio_devs[i]);
if (device_may_wakeup(dev) &&
- sensor->id == ST_LSM6DSX_ID_ACC && hw->enable_event)
+ st_lsm6dsx_check_events(sensor))
disable_irq_wake(hw->irq);
if (!(hw->suspend_mask & BIT(sensor->id)))