Commit 010665b4 authored by Pawel Laszczak's avatar Pawel Laszczak Committed by Felipe Balbi

usb: common: Patch simplify usb_decode_set_clear_feature function.

Patch adds usb_decode_test_mode and usb_decode_device_feature functions,
which allow to make more readable and simplify the
usb_decode_set_clear_feature function.
Signed-off-by: default avatarPawel Laszczak <pawell@cadence.com>
Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
parent 91f255a2
...@@ -30,58 +30,55 @@ static void usb_decode_get_status(__u8 bRequestType, __u16 wIndex, ...@@ -30,58 +30,55 @@ static void usb_decode_get_status(__u8 bRequestType, __u16 wIndex,
} }
} }
static void usb_decode_set_clear_feature(__u8 bRequestType, __u8 bRequest, static const char *usb_decode_device_feature(u16 wValue)
__u16 wValue, __u16 wIndex, {
char *str, size_t size) switch (wValue) {
case USB_DEVICE_SELF_POWERED:
return "Self Powered";
case USB_DEVICE_REMOTE_WAKEUP:
return "Remote Wakeup";
case USB_DEVICE_TEST_MODE:
return "Test Mode";
case USB_DEVICE_U1_ENABLE:
return "U1 Enable";
case USB_DEVICE_U2_ENABLE:
return "U2 Enable";
case USB_DEVICE_LTM_ENABLE:
return "LTM Enable";
default:
return "UNKNOWN";
}
}
static const char *usb_decode_test_mode(u16 wIndex)
{
switch (wIndex) {
case TEST_J:
return ": TEST_J";
case TEST_K:
return ": TEST_K";
case TEST_SE0_NAK:
return ": TEST_SE0_NAK";
case TEST_PACKET:
return ": TEST_PACKET";
case TEST_FORCE_EN:
return ": TEST_FORCE_EN";
default:
return ": UNKNOWN";
}
}
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) { switch (bRequestType & USB_RECIP_MASK) {
case USB_RECIP_DEVICE: case USB_RECIP_DEVICE:
snprintf(str, size, "%s Device Feature(%s%s)", snprintf(str, size, "%s Device Feature(%s%s)",
bRequest == USB_REQ_CLEAR_FEATURE ? "Clear" : "Set", bRequest == USB_REQ_CLEAR_FEATURE ? "Clear" : "Set",
({char *s; usb_decode_device_feature(wValue),
switch (wValue) {
case USB_DEVICE_SELF_POWERED:
s = "Self Powered";
break;
case USB_DEVICE_REMOTE_WAKEUP:
s = "Remote Wakeup";
break;
case USB_DEVICE_TEST_MODE:
s = "Test Mode";
break;
case USB_DEVICE_U1_ENABLE:
s = "U1 Enable";
break;
case USB_DEVICE_U2_ENABLE:
s = "U2 Enable";
break;
case USB_DEVICE_LTM_ENABLE:
s = "LTM Enable";
break;
default:
s = "UNKNOWN";
} s; }),
wValue == USB_DEVICE_TEST_MODE ? wValue == USB_DEVICE_TEST_MODE ?
({ char *s; usb_decode_test_mode(wIndex) : "");
switch (wIndex) {
case TEST_J:
s = ": TEST_J";
break;
case TEST_K:
s = ": TEST_K";
break;
case TEST_SE0_NAK:
s = ": TEST_SE0_NAK";
break;
case TEST_PACKET:
s = ": TEST_PACKET";
break;
case TEST_FORCE_EN:
s = ": TEST_FORCE_EN";
break;
default:
s = ": UNKNOWN";
} s; }) : "");
break; break;
case USB_RECIP_INTERFACE: case USB_RECIP_INTERFACE:
snprintf(str, size, "%s Interface Feature(%s)", snprintf(str, size, "%s Interface Feature(%s)",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment