From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-oo2-f42.google.com (mail-oo2-f42.google.com [74.125.231.170]) (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 D36C92931C1 for ; Thu, 10 Sep 2026 03:21:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.231.170 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789010497; cv=none; b=pNO6PK04uNoQolcOlRD+wS6Y2OAPqJk7gCbAUryCmvLrAupnX8gJuYxPBjVBCRSR21OvytWi16CQmbKxnnEn5yNdZIgDWIfwoC4OTr3vWXR0HuNknWU8l6xblEMOXPQm25VYCa4hd7x5jatoP8MBCm4l7H0bgTmCcOznQ0GLMK0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789010497; c=relaxed/simple; bh=yo2MDFhvnhT1VSXQJAy8INcs1Je44ObhgyQM6+ip/u4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=E4WgQ+fUDz58+g0KlMnYsKlel25N3SlFaQJtW+9/aSjf/oFbsWpQ6UwutlGTmKTKCCN8y4Ija5uiW0TpMI86XJbH2Oockc6OEcZ6IHjTifE7EQGm3qU0n7cVCUsssp8QYgQwZ6iVAoRjYBA1nr4sD1FtftVhPv8BQyF+W7yB/Lc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=hE0GXt4B; arc=none smtp.client-ip=74.125.231.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hE0GXt4B" Received: by mail-oo2-f42.google.com with SMTP id 46e09a7af769-7f4e6a1d3b6so301760a34.3 for ; Wed, 09 Sep 2026 20:21:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789010494; x=1789615294; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=0m2EXA4RWU3Xwtz9ppvYXUdEt6FGFiWjjYdvOoJpw/g=; b=hE0GXt4BN3EG/vuf7o+8sQCrIeCL0Mv9Hk34glK9mB80bcBH3ngSbc04bfra+HHEkG ZNvOpTTxscUOQjMzKHmSPncx2hMikZ2BIzAGnHKOKYJWpj6yvdu6xSodu13Tx9vzxdYa 905q6UTHmlzFEudrsx+UBKmnUrJPdBDg4DkUcGBPcyrGdNaEuq0VoBwTh/YpYBOtr/u1 xa47DPqXo0LI5np21UIZQV9kBpoCeX3hsZJSMtRepbBTGd40iqew2+oWyv6G4xcrZ38E YhCIug2/tdJLRWn6LxWZR67+l8UuBGm1oLGj29h0bNxhDAN8IfcxTT80PpGSqmwcwj27 cdnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1789010494; x=1789615294; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=0m2EXA4RWU3Xwtz9ppvYXUdEt6FGFiWjjYdvOoJpw/g=; b=PTWWLzvI6j+/NCVF8hoI4qaLiWsO7IM/KVp+bWGVxJ6rLh7vLy+Cqn4Hvoh0gr3Dpz QgNG+Qfp4chiuxTCNYPV8RZDyTMj/92MFmnTKZQH7T5KXCcDOowCPEub2Q/9z8zbgPY5 cT3cyBHVLEAR26cVEam39kj7QbRi3fqGxcftSKTN5VBZJfEVyXKk3LUYUlnlEJpqCTgV NBwzFko0V8vSYOC7ML6UzvciWEGS6u4ntSOYD4f/mixlHZAzJ77SWHmbE5W0eO7osttH V6ivJrrxqZhwTErrH5/S4WQEmRYd6UTJiKwLXq3ylplSOb9q7WH0GtGcW3S356DzeC4J p7rw== X-Forwarded-Encrypted: i=1; AKwUvBxHDnwEb6TpFHaUwJdUlOG9fzkl7X7mREygTtp7X9qB9cc/WE6QDuiyR+cxjEoIXQtjKHvyzeouE0y4Ur4=@vger.kernel.org X-Gm-Message-State: AFuF++mkMDds1w7DQEKEoULAv8T6YGmrbtFbt8QDO2tSHIRbPLn6s+km hHC4+nRkBmTRjLc9nM2MedWcSh/8+UxFr6nw88kXny5Am69KQFWuPv/3 X-Gm-Gg: AYBFou0PC4H20dYeWC5VAb3d4Kc493m3xJQMBHT3smuDD3mpwXrwAU8yhtYjJdVV1Ra fjz6piTrmDo5a7uvrrzrbdVOgTghVEl5qak3WXKNzvCafV/8y/YdSqHPJRHpEHrIzyJPUTIIjc6 VqLOwTXIw70J8VX/ZpYwec1nQqq21AcEsHYx9yN0TE4RU2Z/IawKMKvpFlx3t+TjrGIaQT8PJ03 kedLrzn+FXawznGXARM3MG7vaGcMBaWdFOKW73EHaT8YXP7Ftf6eGmWvL30JPiVwKVMlqtkedly /Au/HLYAyMtPbD6xHpY0dU4cgMSb4btuT0GfTJocInLiB9Q6MIBAdEItFGrNls6+N3AFfR52bSi DUJvUOaR0vX+rFPaTkbcMQ/g1J+lZxuwgH5OHo8q1FGFuAzGv5zdm6YV6cI+tn+v5fSFoSa/dv8 a3twAI6XO/OiI96GALot03M8F13GEwe06q2UHAXTHNkA8c18dEwL2SSfIUOxgPyScijuB3PApA8 aydvBGAvx71lVI1K+IY3dPF0ETA0epdIm6tY/3K8Q+494JtjfBYEdzocn4dK7zmGQ== X-Received: by 2002:a05:6830:67d2:b0:7dc:d6b1:48b7 with SMTP id 46e09a7af769-7fb7aec2172mr16246619a34.1.1789010494421; Wed, 09 Sep 2026 20:21:34 -0700 (PDT) Received: from localhost ([76.187.192.44]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7f9f6da9a49sm19758315a34.13.2026.09.09.20.21.33 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 09 Sep 2026 20:21:34 -0700 (PDT) From: Andrei Aldea To: Jiri Kosina , Benjamin Tissoires , "Derek J. Clark" Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Lee Jones , Pavel Machek , linux-leds@vger.kernel.org Subject: [PATCH 07/15] HID: hid-oxp: select brightness policy for the new RGB effect Date: Wed, 9 Sep 2026 22:21:07 -0500 Message-ID: <20260910032115.28669-8-andrei1998@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260910032115.28669-1-andrei1998@gmail.com> References: <20260910032115.28669-1-andrei1998@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Set the requested effect before constructing its status command, since monocolor uses maximum hardware brightness and software intensity scaling. Previously entering or leaving monocolor used the old effect's brightness policy. Restore the cached effect if either output command fails. Fixes: 84910c459d65 ("HID: hid-oxp: Add OneXPlayer configuration driver") Assisted-by: LLM Reviewed-by: Derek J. Clark Signed-off-by: Andrei Aldea --- drivers/hid/hid-oxp.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/hid/hid-oxp.c b/drivers/hid/hid-oxp.c index 8d07816..9c22c8e 100644 --- a/drivers/hid/hid-oxp.c +++ b/drivers/hid/hid-oxp.c @@ -1240,6 +1240,7 @@ static DEVICE_ATTR_RO(enabled_index); static ssize_t effect_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { + u8 old_effect; int ret; u8 val; @@ -1250,15 +1251,21 @@ static ssize_t effect_store(struct device *dev, struct device_attribute *attr, val = ret; guard(mutex)(&drvdata.rgb_mutex); + old_effect = drvdata.rgb_effect; + drvdata.rgb_effect = val; ret = oxp_rgb_status_store(drvdata.rgb_en, drvdata.rgb_speed, drvdata.rgb_brightness); - if (ret) + if (ret) { + drvdata.rgb_effect = old_effect; return ret; + } ret = oxp_rgb_effect_set(val); - if (ret) + if (ret) { + drvdata.rgb_effect = old_effect; return ret; + } return count; }