Re: [PATCH 4/5] input: touchscreen: support Allwinner SoCs' touchscreen

From: maxime . ripard
Date: Mon Jul 25 2016 - 05:45:58 EST


Hi Dmitry,

On Wed, Jul 20, 2016 at 11:41:40PM -0700, Dmitry Torokhov wrote:
> 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.
> */
> "

Good to know. Still, it feels like it should be handled explicitly,
instead of relying on the fact that we only call input_event in our
handler and that it works that way.

Thanks,
Maxime

--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

Attachment: signature.asc
Description: PGP signature