From nobody Thu Apr 2 12:41:28 2026 Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DC3A3359A70 for ; Mon, 2 Mar 2026 10:50:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772448631; cv=none; b=OJ57Am0T+43kBvWge45WZHog/G+4mLcYIDsB2mZ1Ng/c+kqolelFAfDdCOTCfjvpz6HsBbnY4Q66QwqW7NfB5JLK/Wo32ijW5els5KIP1Kc+DE+4kNX2zjP9ul44lrp8HmakFhcy5p+HHjpDnTxs3BZ0QJvrbyAMZVY5qo+5CC0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772448631; c=relaxed/simple; bh=aHRIOIA82B5UmiYNaDuGLIuutpMS1GzM+k8Df5VuVF8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZGaMj5azytJFJmh4HrpFoj7rl2gi4G1o1f0J8KnYUiBNcVs1We2LowPYV0DPQrMdC4UMrGw8hJsrUsVwggNPy1D6ZeHykezqI70Yy4YmSCK28mJCDVGlwhZ/IZlGUg/PG8HZKlwfBXYBKeVSgCOLNHNmY2ejpfdPGP+Dvx4k1c0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=fairphone.com; spf=pass smtp.mailfrom=fairphone.com; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b=0K9B4Lfb; arc=none smtp.client-ip=209.85.208.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=fairphone.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fairphone.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=fairphone.com header.i=@fairphone.com header.b="0K9B4Lfb" Received: by mail-ed1-f46.google.com with SMTP id 4fb4d7f45d1cf-65f73d68faeso6337864a12.3 for ; Mon, 02 Mar 2026 02:50:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fairphone.com; s=fair; t=1772448628; x=1773053428; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=0CDK4BH+OoJnVpsxs1bAWWhwEzUlZ60d996yFctMRUA=; b=0K9B4LfbBsNqMeXrxpFxGOwU4vpOH+u4RbdDMFuLT8xd8qzPEzj58dIku2Yihw/Uqf zfnSFTr4ir4RppBO9SmQjH8Mw/EzPUEpeGkTSvzGW6SRdHA0MtE/MjlenRLlphFuwpmf dYDdvCf4WfthHVF9iOLY08BzXnb0cwrzJ2j/GRMVXgMoQtvWnTuNddVy9jK5JRMxcpTI R0B7L0AAvH4lhebqsqISamERauouaoTi8+/7RMQWX8XhPwG6WWe94IFlM3Go2XeGGtAM UeprBRqS41KSgVc5FZU8OPteNRZDJlbtLjtZMwH4HIr4HENGmEGCEN9jpz2UW2TsNd/0 AOlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772448628; x=1773053428; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=0CDK4BH+OoJnVpsxs1bAWWhwEzUlZ60d996yFctMRUA=; b=aXjFuXNzvRkvEB4IHG8583rdnYCGo0gLHBAadxhFtqnDxEoVMTFTTZk4ul0wVYa9ki jRxMJyYzcVjqBqnjhSC1BYoBmCb5mnqqmaXX9SD9+1qHQPN7Xuu6C+1QnbI8Cf3Bx4V8 5qNOXcQTFB3ZPyZuIMYrE1Kf7Lp+x/WGuv11EomXw/lD0+FT/lqJ5rOvnBvxit4VmG7X J9i0aNsug664Y0RcArXvoIU9DypCjnQg1Wc51Hgyz5S2XIqRKk5WohJvqav+J7zcgfJr eSHdQn2+KNauF6fA2bv/9y/8R7DlFHK+ExIv9mRHfXkeXQOoc5WitX7eiP4wfGbDm9gz Qv0Q== X-Forwarded-Encrypted: i=1; AJvYcCX/8rJG+e5wzfJxio0GijYTKglwZguKJuD+zSte/oJ5L8z7dub1nUqA9qSWOedCnGl3VCujHV0ooMjIZUY=@vger.kernel.org X-Gm-Message-State: AOJu0YxmJQwZHBdamL43ee+I5owYUuFlvIYn5oN2Sh7AbYQfm/KLG8uv Ft3ByOP5K3rLfuvKgQVxLg9KPRHF9nkbwdQxmCODdbvuIToRTOIc+PhNTpHAtlqG+laaPKfdg73 +awx1 X-Gm-Gg: ATEYQzxY1dsqnBIjCNLxQhg7PioOkaCIqDyGgvKchGWKol6JsB7YXsQDs8OqVDh5skV GYyGpgAG/at8JEcyrnQ7x1h/9OdX+0+EicA0ZFrVXiX5b+IvvHT0fi5f6DPIHH/d2mOaDIqkYrN GZAgzWKXm++agdp0+I6w5+AqZMtr0mgUJpyE0Gi8C+hipPB2A4j9UmgVNgEZgZQUq5auxPqMayI x5P51B6DirP/xb3xam6x3uM0VgY7K5qjhdtJey4IOnh3Hr6RpvISfBXJRolLsPKKnE/WlwndpKJ nAc7gDokrM3WNQ+PnfD7HUvvPZjZbKlLxcpIRSvGJ/NFem5JkSU1lL5AkAiIfEa5lk5NyvF84+u UafVVevwLx6rC+O/6neq5dv3IIHqnXRI6J9P1kKP5V2UFQdRgjW1WwM3Y3ZS9+dfsrrH7vVv1lC /visq8m9IzcZEN1kBNwMz3x+HKWW5gIS6+HadgvLOLLBR4hbeHCMST4nb7R2v3w3xxSBKCOrA9j fKf5KUMvA== X-Received: by 2002:a05:6402:270a:b0:65c:1483:a716 with SMTP id 4fb4d7f45d1cf-65fde4d2c45mr7809332a12.29.1772448628107; Mon, 02 Mar 2026 02:50:28 -0800 (PST) Received: from [172.16.220.227] (144-178-202-139.static.ef-service.nl. [144.178.202.139]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-65fabbd98bcsm3511769a12.0.2026.03.02.02.50.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Mar 2026 02:50:27 -0800 (PST) From: Griffin Kroah-Hartman Date: Mon, 02 Mar 2026 11:50:25 +0100 Subject: [PATCH v4 1/4] Input: aw86927 - respect vibration magnitude levels Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260302-aw86938-driver-v4-1-92c865df9cca@fairphone.com> References: <20260302-aw86938-driver-v4-0-92c865df9cca@fairphone.com> In-Reply-To: <20260302-aw86938-driver-v4-0-92c865df9cca@fairphone.com> To: Dmitry Torokhov , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Luca Weiss Cc: linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Griffin Kroah-Hartman X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772448626; l=1926; i=griffin.kroah@fairphone.com; s=20250804; h=from:subject:message-id; bh=aHRIOIA82B5UmiYNaDuGLIuutpMS1GzM+k8Df5VuVF8=; b=QMUHIQaI7C7oB7r2/diS3hfpVF30i0LI3lK0cwpYVvIDTd0cQRED/RbflRKKga8SAU/4jkimw eC1wRcjWk1rAAPeFM+vtN7HNuSZC0ScZYhdrByBcr5bMHIou20tHfAp X-Developer-Key: i=griffin.kroah@fairphone.com; a=ed25519; pk=drSBvqKFiR+xucmLWONHSq/wGrW+YvcVtBXFYnYzn8U= Previously the gain value was hardcoded. Take the magnitude passed via the input API and configure the gain register accordingly. Signed-off-by: Griffin Kroah-Hartman --- drivers/input/misc/aw86927.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/input/misc/aw86927.c b/drivers/input/misc/aw86927.c index 8ad361239cfe3a888628b15e4dbdeed0c9ca3d1a..7f8cadda7c456d7b5448d1e23ed= f6e3f2918ba32 100644 --- a/drivers/input/misc/aw86927.c +++ b/drivers/input/misc/aw86927.c @@ -180,7 +180,7 @@ struct aw86927_data { struct i2c_client *client; struct regmap *regmap; struct gpio_desc *reset_gpio; - bool running; + __u16 level; }; =20 static const struct regmap_config aw86927_regmap_config =3D { @@ -325,11 +325,12 @@ static int aw86927_haptics_play(struct input_dev *dev= , void *data, struct ff_eff if (!level) level =3D effect->u.rumble.weak_magnitude; =20 - /* If already running, don't restart playback */ - if (haptics->running && level) + /* If level does not change, don't restart playback */ + if (haptics->level =3D=3D level) return 0; =20 - haptics->running =3D level; + haptics->level =3D level; + schedule_work(&haptics->play_work); =20 return 0; @@ -376,8 +377,7 @@ static int aw86927_play_sine(struct aw86927_data *hapti= cs) if (err) return err; =20 - /* set gain to value lower than 0x80 to avoid distorted playback */ - err =3D regmap_write(haptics->regmap, AW86927_PLAYCFG2_REG, 0x7c); + err =3D regmap_write(haptics->regmap, AW86927_PLAYCFG2_REG, haptics->leve= l * 0x80 / 0xffff); if (err) return err; =20 @@ -409,7 +409,7 @@ static void aw86927_haptics_play_work(struct work_struc= t *work) struct device *dev =3D &haptics->client->dev; int err; =20 - if (haptics->running) + if (haptics->level) err =3D aw86927_play_sine(haptics); else err =3D aw86927_stop(haptics); --=20 2.43.0