Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3699dd7e authored by Ping Cheng's avatar Ping Cheng Committed by Dmitry Torokhov
Browse files

Input: wacom - clean up device type code



Use switch instead of if statement to verify device types

Signed-off-by: default avatarPing Cheng <pinglinux@gmail.com>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 2be975c6
Loading
Loading
Loading
Loading
+38 −15
Original line number Diff line number Diff line
@@ -386,23 +386,36 @@ static int wacom_parse_hid(struct usb_interface *intf,
				if (usage == WCM_DESKTOP) {
					if (finger) {
						features->device_type = BTN_TOOL_FINGER;
						if (features->type == TABLETPC2FG) {
							/* need to reset back */

						switch (features->type) {
						case TABLETPC2FG:
							features->pktlen = WACOM_PKGLEN_TPC2FG;
						}
							break;

						if (features->type == MTSCREEN || features->type == WACOM_24HDT)
						case MTSCREEN:
						case WACOM_24HDT:
							features->pktlen = WACOM_PKGLEN_MTOUCH;
							break;

						if (features->type == BAMBOO_PT) {
							/* need to reset back */
						case BAMBOO_PT:
							features->pktlen = WACOM_PKGLEN_BBTOUCH;
							break;

						default:
							features->pktlen = WACOM_PKGLEN_GRAPHIRE;
							break;
						}

						switch (features->type) {
						case BAMBOO_PT:
							features->x_phy =
								get_unaligned_le16(&report[i + 5]);
							features->x_max =
								get_unaligned_le16(&report[i + 8]);
							i += 15;
						} else if (features->type == WACOM_24HDT) {
							break;

						case WACOM_24HDT:
							features->x_max =
								get_unaligned_le16(&report[i + 3]);
							features->x_phy =
@@ -410,7 +423,9 @@ static int wacom_parse_hid(struct usb_interface *intf,
							features->unit = report[i - 1];
							features->unitExpo = report[i - 3];
							i += 12;
						} else {
							break;

						default:
							features->x_max =
								get_unaligned_le16(&report[i + 3]);
							features->x_phy =
@@ -418,10 +433,11 @@ static int wacom_parse_hid(struct usb_interface *intf,
							features->unit = report[i + 9];
							features->unitExpo = report[i + 11];
							i += 12;
							break;
						}
					} else if (pen) {
						/* penabled only accepts exact bytes of data */
						if (features->type == TABLETPC2FG)
						if (features->type >= TABLETPC)
							features->pktlen = WACOM_PKGLEN_GRAPHIRE;
						features->device_type = BTN_TOOL_PEN;
						features->x_max =
@@ -434,32 +450,39 @@ static int wacom_parse_hid(struct usb_interface *intf,
			case HID_USAGE_Y:
				if (usage == WCM_DESKTOP) {
					if (finger) {
						int type = features->type;

						if (type == TABLETPC2FG || type == MTSCREEN) {
						switch (features->type) {
						case TABLETPC2FG:
						case MTSCREEN:
							features->y_max =
								get_unaligned_le16(&report[i + 3]);
							features->y_phy =
								get_unaligned_le16(&report[i + 6]);
							i += 7;
						} else if (type == WACOM_24HDT) {
							break;

						case WACOM_24HDT:
							features->y_max =
								get_unaligned_le16(&report[i + 3]);
							features->y_phy =
								get_unaligned_le16(&report[i - 2]);
							i += 7;
						} else if (type == BAMBOO_PT) {
							break;

						case BAMBOO_PT:
							features->y_phy =
								get_unaligned_le16(&report[i + 3]);
							features->y_max =
								get_unaligned_le16(&report[i + 6]);
							i += 12;
						} else {
							break;

						default:
							features->y_max =
								features->x_max;
							features->y_phy =
								get_unaligned_le16(&report[i + 3]);
							i += 4;
							break;
						}
					} else if (pen) {
						features->y_max =