Commit 8265fb7c authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Revert "usb:gadget Patch simplify usb_decode_set_clear_feature function."



This reverts commit ca888ce7.

It's broken.

Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
Cc: Felipe Balbi <balbi@kernel.org>
Cc: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 40abbef1
Loading
Loading
Loading
Loading
+46 −43
Original line number Original line Diff line number Diff line
@@ -30,55 +30,58 @@ static void usb_decode_get_status(__u8 bRequestType, __u16 wIndex,
	}
	}
}
}


static const char *usb_decode_device_feature(u16 wValue)
static void usb_decode_set_clear_feature(__u8 bRequestType, __u8 bRequest,
					 __u16 wValue, __u16 wIndex,
					 char *str, size_t size)
{
{
	switch (bRequestType & USB_RECIP_MASK) {
	case USB_RECIP_DEVICE:
		snprintf(str, size, "%s Device Feature(%s%s)",
			 bRequest == USB_REQ_CLEAR_FEATURE ? "Clear" : "Set",
			 ({char *s;
				switch (wValue) {
				switch (wValue) {
				case USB_DEVICE_SELF_POWERED:
				case USB_DEVICE_SELF_POWERED:
		return "Self Powered";
					s = "Self Powered";
					break;
				case USB_DEVICE_REMOTE_WAKEUP:
				case USB_DEVICE_REMOTE_WAKEUP:
		return "Remote Wakeup";
					s = "Remote Wakeup";
					break;
				case USB_DEVICE_TEST_MODE:
				case USB_DEVICE_TEST_MODE:
		return "Test Mode";
					s = "Test Mode";
					break;
				case USB_DEVICE_U1_ENABLE:
				case USB_DEVICE_U1_ENABLE:
		return "U1 Enable";
					s = "U1 Enable";
					break;
				case USB_DEVICE_U2_ENABLE:
				case USB_DEVICE_U2_ENABLE:
		return "U2 Enable";
					s = "U2 Enable";
					break;
				case USB_DEVICE_LTM_ENABLE:
				case USB_DEVICE_LTM_ENABLE:
		return "LTM Enable";
					s = "LTM Enable";
					break;
				default:
				default:
		return "UNKNOWN";
					s = "UNKNOWN";
	}
				} s; }),
}
			 wValue == USB_DEVICE_TEST_MODE ?

			 ({ char *s;
static const char *usb_decode_test_mode(u16 wIndex)
{
				switch (wIndex) {
				switch (wIndex) {
				case TEST_J:
				case TEST_J:
		return ": TEST_J";
					s = ": TEST_J";
					break;
				case TEST_K:
				case TEST_K:
		return ": TEST_K";
					s = ": TEST_K";
					break;
				case TEST_SE0_NAK:
				case TEST_SE0_NAK:
		return ": TEST_SE0_NAK";
					s = ": TEST_SE0_NAK";
					break;
				case TEST_PACKET:
				case TEST_PACKET:
		return ": TEST_PACKET";
					s = ": TEST_PACKET";
					break;
				case TEST_FORCE_EN:
				case TEST_FORCE_EN:
		return ": TEST_FORCE_EN";
					s = ": TEST_FORCE_EN";
					break;
				default:
				default:
		return ": UNKNOWN";
					s = ": UNKNOWN";
	}
				} s; }) : "");
}

static void usb_decode_set_clear_feature(__u8 bRequestType,
					 __u8 bRequest, __u16 wValue,
					 __u16 wIndex, char *str, size_t size)
{
	switch (bRequestType & USB_RECIP_MASK) {
	case USB_RECIP_DEVICE:
		snprintf(str, size, "%s Device Feature(%s%s)",
			 bRequest == USB_REQ_CLEAR_FEATURE ? "Clear" : "Set",
			 usb_decode_device_feature(wValue),
			 wValue == USB_DEVICE_TEST_MODE ?
			 usb_decode_test_mode(wIndex) : "");
		break;
		break;
	case USB_RECIP_INTERFACE:
	case USB_RECIP_INTERFACE:
		snprintf(str, size, "%s Interface Feature(%s)",
		snprintf(str, size, "%s Interface Feature(%s)",