On Thu, Jul 21, 2016 at 08:29:50AM +0200, Maxime Ripard wrote:
> On Wed, Jul 20, 2016 at 10:29:10AM +0200, Quentin Schulz wrote:
> > +   irq = regmap_irq_get_virq(sunxi_gpadc_mfd_dev->regmap_irqc, irq);
> > +   ret = devm_request_any_context_irq(&pdev->dev, irq,
> > +                                      sunxi_gpadc_tp_up_irq_handler, 0,
> > +                                      "tp_up", info);
> > +   if (ret < 0) {
> > +           dev_err(&pdev->dev,
> > +                   "could not request TP_UP_PENDING interrupt: %d\n", ret);
> > +           goto err;
> > +   }
> 
> You enable the interrupts...
> 
> > +   info->tp_up_irq = irq;
> > +   disable_irq(irq);
> > +
> > +   ret = input_register_device(input);
> > +   if (ret) {
> > +           dev_err(&pdev->dev, "failed to register input device\n");
> > +           goto err;
> > +   }
> 
> ... but your driver isn't registered yet. How does input_report and
> input_sync behave in such a case?

This is explicitly allowed:

"
...
 * NOTE: input_event() may be safely used right after input device was
 * allocated with input_allocate_device(), even before it is registered
 * with input_register_device(), but the event will not reach any of the
 * input handlers. Such early invocation of input_event() may be used
 * to 'seed' initial state of a switch or initial position of absolute
 * axis, etc.
 */
"

Thanks.


-- 
Dmitry

Reply via email to