diff options
-rw-r--r-- | drivers/input/misc/mpu/inv_gyro.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/input/misc/mpu/inv_gyro.c b/drivers/input/misc/mpu/inv_gyro.c index c05a495220c8..d7cd0ea87ca4 100644 --- a/drivers/input/misc/mpu/inv_gyro.c +++ b/drivers/input/misc/mpu/inv_gyro.c @@ -228,10 +228,18 @@ static int set_power_itg(struct inv_gyro_state_s *st, unsigned char power_on) */ int inv_set_power_state(struct inv_gyro_state_s *st, unsigned char power_on) { + int ret; + if (!power_on) + disable_irq(st->trigger.irq); + if (INV_MPU3050 == st->chip_type) - return set_power_mpu3050(st, power_on); + ret = set_power_mpu3050(st, power_on); else - return set_power_itg(st, power_on); + ret = set_power_itg(st, power_on); + + if (power_on) + enable_irq(st->trigger.irq); + return ret; } /** |