Commit fbc08b4e authored by Nikolai Kondrashov's avatar Nikolai Kondrashov Committed by Jiri Kosina
Browse files

HID: uclogic: Always shift touch reports to zero



Always decrement touch report values to have the range start with zero,
regardless if flipped or not. This fixes the future non-flipped touch
strip reports.

Signed-off-by: default avatarNikolai Kondrashov <spbnick@gmail.com>
Signed-off-by: default avatarJosé Expósito <jose.exposito89@gmail.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent caf7e934
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -386,15 +386,16 @@ static int uclogic_raw_event_frame(
	}

	/* If need to, and can, transform the touch ring reports */
	if (frame->touch_byte > 0 && frame->touch_byte < size &&
	    frame->touch_flip_at != 0) {
	if (frame->touch_byte > 0 && frame->touch_byte < size) {
		__s8 value = data[frame->touch_byte];

		if (value != 0) {
			if (frame->touch_flip_at != 0) {
				value = frame->touch_flip_at - value;
			if (value < 0)
				if (value <= 0)
					value = frame->touch_max + value;

			data[frame->touch_byte] = value;
			}
			data[frame->touch_byte] = value - 1;
		}
	}

+1 −1
Original line number Diff line number Diff line
@@ -889,7 +889,7 @@ static int uclogic_params_huion_init(struct uclogic_params *params,
				UCLOGIC_RDESC_V2_FRAME_TOUCH_DEV_ID_BYTE;
			p.frame_list[1].touch_byte = 5;
			p.frame_list[1].touch_max = 12;
			p.frame_list[1].touch_flip_at = 6;
			p.frame_list[1].touch_flip_at = 7;

			/* Create v2 frame dial parameters */
			rc = uclogic_params_frame_init_with_desc(