Re: [PATCH 1/5] HID: hid-lenovo-go: use the correct calibration commands
From: Derek John Clark
Date: Tue Aug 25 2026 - 16:05:21 EST
On Fri, Aug 21, 2026 at 2:48 PM Aditya Dash <mradityadash@xxxxxxxxx> wrote:
>
> The calibration attributes pass the calibration operation as the command
> and the configuration command as the sub-command. This sends each request
> with the two fields reversed.
>
> Swap the command and sub-command values for all six calibration attributes.
> For example, the malformed left joystick Start request is:
>
> 05 00 04 0c 03 01 ...
>
> The corrected request is:
>
> 05 00 0c 04 03 01 ...
>
> The bytes identify the output report, configuration group, command,
> sub-command, left controller, and Start action, in that order.
>
> Fixes: 995887a10da1 ("HID: hid-lenovo-go: Add Calibration Settings")
> Assisted-by: Pi:gpt-5.6-sol
> Signed-off-by: Aditya Dash <mradityadash@xxxxxxxxx>
> ---
> drivers/hid/hid-lenovo-go.c | 24 ++++++++++++------------
> 1 file changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/hid/hid-lenovo-go.c b/drivers/hid/hid-lenovo-go.c
> index 318b1152ff8b..b8248bf8965c 100644
> --- a/drivers/hid/hid-lenovo-go.c
> +++ b/drivers/hid/hid-lenovo-go.c
> @@ -1911,18 +1911,18 @@ LEGO_DEVICE_ATTR_RW(rumble_notification_left, "rumble_notification",
> static DEVICE_ATTR_RO_NAMED(rumble_notification_left_index,
> "rumble_notification_index");
>
> -static struct go_cfg_attr cal_trigg_left = { TRIGGER_CALIBRATE };
> -LEGO_CAL_DEVICE_ATTR(cal_trigg_left, "calibrate_trigger", SET_TRIGGER_CFG,
> +static struct go_cfg_attr cal_trigg_left = { SET_TRIGGER_CFG };
> +LEGO_CAL_DEVICE_ATTR(cal_trigg_left, "calibrate_trigger", TRIGGER_CALIBRATE,
> LEFT_CONTROLLER, index);
> static DEVICE_ATTR_RO_NAMED(cal_trigg_left_index, "calibrate_trigger_index");
>
> -static struct go_cfg_attr cal_joy_left = { JOYSTICK_CALIBRATE };
> -LEGO_CAL_DEVICE_ATTR(cal_joy_left, "calibrate_joystick", SET_JOYSTICK_CFG,
> +static struct go_cfg_attr cal_joy_left = { SET_JOYSTICK_CFG };
> +LEGO_CAL_DEVICE_ATTR(cal_joy_left, "calibrate_joystick", JOYSTICK_CALIBRATE,
> LEFT_CONTROLLER, index);
> static DEVICE_ATTR_RO_NAMED(cal_joy_left_index, "calibrate_joystick_index");
>
> -static struct go_cfg_attr cal_gyro_left = { GYRO_CALIBRATE };
> -LEGO_CAL_DEVICE_ATTR(cal_gyro_left, "calibrate_gyro", SET_GYRO_CFG,
> +static struct go_cfg_attr cal_gyro_left = { SET_GYRO_CFG };
> +LEGO_CAL_DEVICE_ATTR(cal_gyro_left, "calibrate_gyro", GYRO_CALIBRATE,
> LEFT_CONTROLLER, index);
> static DEVICE_ATTR_RO_NAMED(cal_gyro_left_index, "calibrate_gyro_index");
>
> @@ -2018,18 +2018,18 @@ LEGO_DEVICE_ATTR_RW(rumble_notification_right, "rumble_notification",
> static DEVICE_ATTR_RO_NAMED(rumble_notification_right_index,
> "rumble_notification_index");
>
> -static struct go_cfg_attr cal_trigg_right = { TRIGGER_CALIBRATE };
> -LEGO_CAL_DEVICE_ATTR(cal_trigg_right, "calibrate_trigger", SET_TRIGGER_CFG,
> +static struct go_cfg_attr cal_trigg_right = { SET_TRIGGER_CFG };
> +LEGO_CAL_DEVICE_ATTR(cal_trigg_right, "calibrate_trigger", TRIGGER_CALIBRATE,
> RIGHT_CONTROLLER, index);
> static DEVICE_ATTR_RO_NAMED(cal_trigg_right_index, "calibrate_trigger_index");
>
> -static struct go_cfg_attr cal_joy_right = { JOYSTICK_CALIBRATE };
> -LEGO_CAL_DEVICE_ATTR(cal_joy_right, "calibrate_joystick", SET_JOYSTICK_CFG,
> +static struct go_cfg_attr cal_joy_right = { SET_JOYSTICK_CFG };
> +LEGO_CAL_DEVICE_ATTR(cal_joy_right, "calibrate_joystick", JOYSTICK_CALIBRATE,
> RIGHT_CONTROLLER, index);
> static DEVICE_ATTR_RO_NAMED(cal_joy_right_index, "calibrate_joystick_index");
>
> -static struct go_cfg_attr cal_gyro_right = { GYRO_CALIBRATE };
> -LEGO_CAL_DEVICE_ATTR(cal_gyro_right, "calibrate_gyro", SET_GYRO_CFG,
> +static struct go_cfg_attr cal_gyro_right = { SET_GYRO_CFG };
> +LEGO_CAL_DEVICE_ATTR(cal_gyro_right, "calibrate_gyro", GYRO_CALIBRATE,
> RIGHT_CONTROLLER, index);
> static DEVICE_ATTR_RO_NAMED(cal_gyro_right_index, "calibrate_gyro_index");
>
Reviewed-by: Derek J. Clark <derekjohn.clark@xxxxxxxxx>
Tested-by: Derek J. Clark <derekjohn.clark@xxxxxxxxx>
> --
> 2.55.0
>