On Tuesday, July 24, 2012 10:38 AM, Daniel Mack wrote: > Don't call gpio_to_irq() on GPIOs before gpio_request() succeeded on > them. This avoids Ooopses with incorrect DT bindings. > > Signed-off-by: Daniel Mack <zonque@xxxxxxxxx> > --- > drivers/input/misc/rotary_encoder.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/input/misc/rotary_encoder.c b/drivers/input/misc/rotary_encoder.c > index 350cbd1..474b04f 100644 > --- a/drivers/input/misc/rotary_encoder.c > +++ b/drivers/input/misc/rotary_encoder.c > @@ -223,8 +223,6 @@ static int __devinit rotary_encoder_probe(struct platform_device *pdev) > > encoder->input = input; > encoder->pdata = pdata; > - encoder->irq_a = gpio_to_irq(pdata->gpio_a); > - encoder->irq_b = gpio_to_irq(pdata->gpio_b); > > /* create and register the input driver */ > input->name = pdev->name; > @@ -275,6 +273,9 @@ static int __devinit rotary_encoder_probe(struct platform_device *pdev) > goto exit_free_gpio_a; > } > > + encoder->irq_a = gpio_to_irq(pdata->gpio_a); > + encoder->irq_b = gpio_to_irq(pdata->gpio_b); > + > /* request the IRQs */ > if (pdata->half_period) { > handler = &rotary_encoder_half_period_irq; Daniel, You might want to put this patch first before adding the DT binding stuff. You also might consider using gpio_request_one() or even the devm_* version, instead of doing the gpio_request() followed by the gpio_direction_input(). Actually, if you convert the probe to use the managed resource devm_* stuff it would really cleanup the error path and the remove. Regardless... Reviewed-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html