Hi Jaew9on,This code prevent to play haptic when entering suspend state.
On Mon, Feb 23, 2015 at 05:09:50PM +0900, Jaewon Kim wrote:
This patch adds support for haptic driver on max77843...
MFD(Multi Function Device) with PMIC, MUIC, LED, CHARGER.
This driver supports external pwm and LRA(Linear Resonant Actuator) motor.
And it supports ff-memless interface from inpu framework.
Cc: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
Signed-off-by: Jaewon Kim <jaewon02.kim@xxxxxxxxxxx>
+static void max77843_haptic_play_work(struct work_struct *work)Huh?
+{
+ struct max77843_haptic *haptic =
+ container_of(work, struct max77843_haptic, work);
+ int error;
+
+ mutex_lock(&haptic->mutex);
+
+ if (haptic->suspended)
+ mutex_unlock(&haptic->mutex);
Okay, I will add mutex_unlock().
+Here you are leaving with the mutex held.
+ error = max77843_haptic_set_duty_cycle(haptic);
+ if (error) {
+ dev_err(haptic->dev, "failed to set duty cycle: %d\n", error);
+ return;
Thanks to review my patch.
+ }The rest seems quite reasonable.
+
+ if (haptic->magnitude) {
+ error = max77843_haptic_enable(haptic);
+ if (error)
+ dev_err(haptic->dev,
+ "cannot enable haptic: %d\n", error);
+ } else {
+ max77843_haptic_disable(haptic);
+ if (error)
+ dev_err(haptic->dev,
+ "cannot disable haptic: %d\n", error);
+ }
+
+ mutex_unlock(&haptic->mutex);
+}
+
Thanks.