On Mon, May 08, 2017 at 08:51:28PM +0200, Sebastian Reichel wrote:
On Sun, May 07, 2017 at 02:38:00PM -0700, Dmitry Torokhov wrote:
quoted
quoted
+static int __maybe_unused pwm_vibrator_suspend(struct device *dev)
+{
+ struct platform_device *pdev = to_platform_device(dev);
+ struct pwm_vibrator *vibrator = platform_get_drvdata(pdev);
+ struct input_dev *input = vibrator->input;
+ unsigned long flags;
+
+ spin_lock_irqsave(&input->event_lock, flags);
Hmm, no, this is not goting to work. The original patch had a chance if
PWM was not sleeping, but with introduction of regulator and work this
definitely sleeps.
Actually PWM is sleeping, that's why I added work (regulator was
added later) :)
quoted
I think we should solve issue of events [not] being delivered during
suspend transition in input core, and simply drop spin_lock_irqsave()
here and in resume().
Sounds good. will you take care of the input-core change?
Yeah, I'll add it to my todo... In the mean time, when you sending a new
version of this driver simply drop
spin_lock_irqsave/spin_unlock_irqrestore.
Thanks.
--
Dmitry