Message ID | 20180618160936.6471-1-hdegoede@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 06/18/2018 09:09 AM, Hans de Goede wrote: > Commit 5ec6486daa98 ("iio:imu: inv_mpu6050: support more interrupt types") > causes inv_mpu_core_probe() to fail if the IRQ does not have a > trigger-type setup. > > This happens on machines where the mpu6050 is enumerated through ACPI and > an older Interrupt type ACPI resource is used for the interrupt, rather > then a GpioInt type type, causing the mpu6050 driver to no longer work > there. This happens on e.g. the Asus T100TA. > > This commits makes the mpu6050 fallback to the old IRQF_TRIGGER_RISING > default if the irq-type is not setup, fixing this. > > Fixes: 5ec6486daa98 ("iio:imu: inv_mpu6050: support more interrupt types") > Cc: Martin Kelly <mkelly@xevo.com> > Cc: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com> > Signed-off-by: Hans de Goede <hdegoede@redhat.com> > --- > drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c > index f9c0624505a2..42618fe4f83e 100644 > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c > @@ -959,6 +959,8 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name, > } > > irq_type = irqd_get_trigger_type(desc); > + if (!irq_type) > + irq_type = IRQF_TRIGGER_RISING; > if (irq_type == IRQF_TRIGGER_RISING) > st->irq_mask = INV_MPU6050_ACTIVE_HIGH; > else if (irq_type == IRQF_TRIGGER_FALLING) > Reviewed-by: Martin Kelly <mkelly@xevo.com> Thanks, good catch! I had thought that irqd_get_trigger_type would work the same universally, but I see I was mistaken. -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, 18 Jun 2018 18:09:36 +0200 Hans de Goede <hdegoede@redhat.com> wrote: > Commit 5ec6486daa98 ("iio:imu: inv_mpu6050: support more interrupt types") > causes inv_mpu_core_probe() to fail if the IRQ does not have a > trigger-type setup. > > This happens on machines where the mpu6050 is enumerated through ACPI and > an older Interrupt type ACPI resource is used for the interrupt, rather > then a GpioInt type type, causing the mpu6050 driver to no longer work > there. This happens on e.g. the Asus T100TA. > > This commits makes the mpu6050 fallback to the old IRQF_TRIGGER_RISING > default if the irq-type is not setup, fixing this. > > Fixes: 5ec6486daa98 ("iio:imu: inv_mpu6050: support more interrupt types") > Cc: Martin Kelly <mkelly@xevo.com> > Cc: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com> > Signed-off-by: Hans de Goede <hdegoede@redhat.com> Sorry for the delay - traveling this week. Will pick this up over the weekend once I'm back home. J > --- > drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c > index f9c0624505a2..42618fe4f83e 100644 > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c > @@ -959,6 +959,8 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name, > } > > irq_type = irqd_get_trigger_type(desc); > + if (!irq_type) > + irq_type = IRQF_TRIGGER_RISING; > if (irq_type == IRQF_TRIGGER_RISING) > st->irq_mask = INV_MPU6050_ACTIVE_HIGH; > else if (irq_type == IRQF_TRIGGER_FALLING) -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, 22 Jun 2018 15:18:27 +0100 Jonathan Cameron <jonathan.cameron@huawei.com> wrote: > On Mon, 18 Jun 2018 18:09:36 +0200 > Hans de Goede <hdegoede@redhat.com> wrote: > > > Commit 5ec6486daa98 ("iio:imu: inv_mpu6050: support more interrupt types") > > causes inv_mpu_core_probe() to fail if the IRQ does not have a > > trigger-type setup. > > > > This happens on machines where the mpu6050 is enumerated through ACPI and > > an older Interrupt type ACPI resource is used for the interrupt, rather > > then a GpioInt type type, causing the mpu6050 driver to no longer work > > there. This happens on e.g. the Asus T100TA. > > > > This commits makes the mpu6050 fallback to the old IRQF_TRIGGER_RISING > > default if the irq-type is not setup, fixing this. > > > > Fixes: 5ec6486daa98 ("iio:imu: inv_mpu6050: support more interrupt types") > > Cc: Martin Kelly <mkelly@xevo.com> > > Cc: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com> > > Signed-off-by: Hans de Goede <hdegoede@redhat.com> > > Sorry for the delay - traveling this week. Will pick this up over the weekend > once I'm back home. Applied to the fixes-togreg branch of iio.git. Aiming to do a pull request later today. Thanks, Jonathan > > J > > > --- > > drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c > > index f9c0624505a2..42618fe4f83e 100644 > > --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c > > +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c > > @@ -959,6 +959,8 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name, > > } > > > > irq_type = irqd_get_trigger_type(desc); > > + if (!irq_type) > > + irq_type = IRQF_TRIGGER_RISING; > > if (irq_type == IRQF_TRIGGER_RISING) > > st->irq_mask = INV_MPU6050_ACTIVE_HIGH; > > else if (irq_type == IRQF_TRIGGER_FALLING) > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-iio" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c index f9c0624505a2..42618fe4f83e 100644 --- a/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c +++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c @@ -959,6 +959,8 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name, } irq_type = irqd_get_trigger_type(desc); + if (!irq_type) + irq_type = IRQF_TRIGGER_RISING; if (irq_type == IRQF_TRIGGER_RISING) st->irq_mask = INV_MPU6050_ACTIVE_HIGH; else if (irq_type == IRQF_TRIGGER_FALLING)
Commit 5ec6486daa98 ("iio:imu: inv_mpu6050: support more interrupt types") causes inv_mpu_core_probe() to fail if the IRQ does not have a trigger-type setup. This happens on machines where the mpu6050 is enumerated through ACPI and an older Interrupt type ACPI resource is used for the interrupt, rather then a GpioInt type type, causing the mpu6050 driver to no longer work there. This happens on e.g. the Asus T100TA. This commits makes the mpu6050 fallback to the old IRQF_TRIGGER_RISING default if the irq-type is not setup, fixing this. Fixes: 5ec6486daa98 ("iio:imu: inv_mpu6050: support more interrupt types") Cc: Martin Kelly <mkelly@xevo.com> Cc: Jean-Baptiste Maneyrol <jmaneyrol@invensense.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> --- drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 2 ++ 1 file changed, 2 insertions(+)