From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f178.google.com (mail-pg1-f178.google.com [209.85.215.178]) (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 B0EF9393DF5 for ; Mon, 14 Sep 2026 22:53:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.178 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789426392; cv=none; b=lBz0gqT3QtkZOKlzjlqi6NqkkDuJuL2ORUZZ9sE9djV97MBhd51OnuhgYtzOmAvQP9k9SN9FBYAyMIx1QSDLtscN2z1mvYk2geKlX3HoMsM0Ufy7weV+rnWgK94rwxXstKqs2srVikKpgyRJAbk949mWQ3246J4plxEfyrsR0EA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789426392; c=relaxed/simple; bh=B5NcsJqiM6ca6zoKCCSiRnmiGiK51EUO/f+42QeBqzI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PNKsjMWR+Ap+VsSXwOog+WAF0TOH+2wZSJ17UeW+cm4uGuvZ6AmdNij6/5OussXJyNrY2+iLg5IQG7yRUh6JU0Vwzk03ARMcBWO9GQ9ADPrkY4Z4f//uENmtfn9ysJ8xM18Nrxi1dZxek5f9n9fyAdXKmi9upIjl6FxyrfyMtg0= 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=fPRZmjAZ; arc=none smtp.client-ip=209.85.215.178 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="fPRZmjAZ" Received: by mail-pg1-f178.google.com with SMTP id 41be03b00d2f7-cc147d86bebso420442a12.0 for ; Mon, 14 Sep 2026 15:53:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789426390; x=1790031190; 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=cket7DPZv1j5YnyOIveBa4NpPNYaScJjvnuFzxjWh88=; b=fPRZmjAZsPsmNpwQY3WlqF6D4LWwNE4X1Z3K4VbTZwv/KOC1Gh2wqMK9IE8jVWZTaV izthCVBd9+kVlO+nuylxmOYUxuZkWX//HIAs/pJpXAXHXy6VnuGJ1MM8i4g+tzrelmv0 2natDsx+Dl2kL8YdNhVmxvGVt8uSHFIgDVT3OPKT2iO15alDvYNhPZSoInE0vG+66V0m lBCIChItBTP4CzfG4mBO87o/3H85VHNjXxkxTnBtpPy1mhxOp1c1hZIzXaC7ACKQGRZt aurg6TgmvfDG7U7z/a5C6Z4qCHCBtbmicep1LOXimuaoCyO9MAoPvFKkNYvhEQO9I9tR rcBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789426390; x=1790031190; 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=cket7DPZv1j5YnyOIveBa4NpPNYaScJjvnuFzxjWh88=; b=iIKIsCE12Bol/VB5fcrE3kutosToRpQT9bzKeKgzQrd6z+Ij81X1KzQfkpVLam05uY 5MrMsPT2BXWaWB1leQXNOzsFRR88r7EHRnQOHZMHz6s139PQkjGCCdtpJAD+GrUOUhmS yArM7RxQHkdde7SyFS7xTKVEBZlV8u7ScjtMKXn6tUse/nbteASSe9FGx7HgUbO5lJ7g SzM7LQAQh7aH1JHW6hRn99rHjbwGejgp4hTP7m6G4UlqLpG3vtB31BaN9kmKpvFy+s17 95fGIdLh+sNrJOarKVHVqibZK3IoEm1qXCtfqdoxer3LLuNBRRCMm7wqc4swmjjpR9mu JDvg== X-Forwarded-Encrypted: i=1; AKwUvByR5OicpFQfXGmqjIGijhqi97MjvjgRpzvcHOLhaqySF+TPgA3BWAxKTZTe/Kauzmj/G2rJMU91pMAweGE=@vger.kernel.org X-Gm-Message-State: AFuF++m08EHw3FfEmUCRqKpd+ZWq36zYkQBZEE+F6S+iLiKyUEkXh/ii SZUoYp95KeiaV0wxGwvyXfJ+my6pf0dIWGb+nVBYGJn51ofJW4Xkdc3t X-Gm-Gg: AYBFou1VYReeRhiL3uoxpzoFek8946LfTuJwAtpE2T2JInC+5Z4ivdUoDt8C7ExLud5 yiCnKyAoblGA+pZ9dX0GgRaY9hEF5KZljDFxtTob0HR5S/Faz29tGf7JGRmY6huYv6pAXBc+Twy 5cjTrsBE3QHZsvDNAk0Q5Zdphie/AguBiw3RWnxp8H9TEX24k1TgSCtUzCG+R6kLxzyGLi5cAGv 0zbWcN45sdJTkdcehGqGRf8VEJpAjdPz7d7RGxBjVvaS6VDnjVFi5EO4yRJHcyQAtbw9BtCyyg5 UAPZBDXcqUf6ngB8W3jA1ktl42lW+pc8xlUjZEeuOB+DDC4PBNyGzL2/6K/I7Hq6uIllrwo43Kl VATaNZQYksWhi6S+lA4Cjm4gekOI/zqEUu3S6tlkU2enYBLfDjR0POaHTjHSS3lTNzZO6X+ZwOx uGUWuLIWymkAgGsL1ynWIBZNDsQ3p8p1fuRZ9Yu2neR3Vd25U/6vQKaf6YwvUE64OHmB1jko0t3 Zme57gDVujduECM8JuDIup1qXhFIkSd5xEiAE0Aok5w48rYZSaa X-Received: by 2002:a05:6a20:4310:b0:3d3:aed2:6f20 with SMTP id adf61e73a8af0-3db50019fa8mr1791026637.20.1789426389991; Mon, 14 Sep 2026 15:53:09 -0700 (PDT) Received: from lappy (108-228-232-20.lightspeed.sndgca.sbcglobal.net. [108.228.232.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-33bbeb053a5sm14924296eec.27.2026.09.14.15.53.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Sep 2026 15:53:09 -0700 (PDT) From: "Derek J. Clark" To: Jiri Kosina , Benjamin Tissoires Cc: "Pierre-Loup A . Griffais" , "Derek J . Clark" , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, kernel@lists.opengamingcollective.org, stable@vger.kernel.org Subject: [PATCH 01/10] HID: hid-lenovo-go-s: Return ret instead of 0 in mcu_property_out() Date: Mon, 14 Sep 2026 15:52:54 -0700 Message-ID: <20260914225303.868569-2-derekjohn.clark@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260914225303.868569-1-derekjohn.clark@gmail.com> References: <20260914225303.868569-1-derekjohn.clark@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 Currently mcu_property_out() blanket returns 0, discarding the ret value and any errors with it. Wait completion returns a positive value when it is not timed out, which would error on all successes, so if it is positive return the ret value from the raw event handler. Only if it is 0 set it to -EBUSY, otherwise pass the actual error. Fixes: a23f3497bf208c59ad ("HID: hid-lenovo-go-s: Add Lenovo Legion Go S Series HID Driver") Cc: stable@vger.kernel.org Signed-off-by: Derek J. Clark --- drivers/hid/hid-lenovo-go-s.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/hid/hid-lenovo-go-s.c b/drivers/hid/hid-lenovo-go-s.c index a72f7f748cb5..68301d4c762a 100644 --- a/drivers/hid/hid-lenovo-go-s.c +++ b/drivers/hid/hid-lenovo-go-s.c @@ -38,6 +38,7 @@ static struct hid_gos_cfg { struct led_classdev *led_cdev; struct hid_device *hdev; struct mutex cfg_mutex; /*ensure single synchronous output report*/ + int cmd_status; u8 gp_auto_sleep_time; u8 gp_dpad_mode; u8 gp_mode; @@ -435,7 +436,9 @@ static int hid_gos_raw_event(struct hid_device *hdev, struct hid_report *report, dev_dbg(&hdev->dev, "Rx data as raw input report: [%*ph]\n", GO_S_PACKET_SIZE, data); + drvdata.cmd_status = ret; complete(&drvdata.send_cmd_complete); + return ret; } @@ -474,12 +477,10 @@ static int mcu_property_out(struct hid_device *hdev, u8 command, u8 index, timeout = (command == GET_PL_TEST) ? 200 : 5; ret = wait_for_completion_interruptible_timeout(&drvdata.send_cmd_complete, msecs_to_jiffies(timeout)); - - if (ret == 0) /* timeout occurred */ - ret = -EBUSY; + ret = ret > 0 ? drvdata.cmd_status : ret ?: -EBUSY; reinit_completion(&drvdata.send_cmd_complete); - return 0; + return ret; } static ssize_t gamepad_property_store(struct device *dev, -- 2.55.0