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 (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:
s = "Self Powered"; return "Self Powered";
break;
case USB_DEVICE_REMOTE_WAKEUP: case USB_DEVICE_REMOTE_WAKEUP:
s = "Remote Wakeup"; return "Remote Wakeup";
break;
case USB_DEVICE_TEST_MODE: case USB_DEVICE_TEST_MODE:
s = "Test Mode"; return "Test Mode";
break;
case USB_DEVICE_U1_ENABLE: case USB_DEVICE_U1_ENABLE:
s = "U1 Enable"; return "U1 Enable";
break;
case USB_DEVICE_U2_ENABLE: case USB_DEVICE_U2_ENABLE:
s = "U2 Enable"; return "U2 Enable";
break;
case USB_DEVICE_LTM_ENABLE: case USB_DEVICE_LTM_ENABLE:
s = "LTM Enable"; return "LTM Enable";
break;
default: default:
s = "UNKNOWN"; return "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:
s = ": TEST_J"; return ": TEST_J";
break;
case TEST_K: case TEST_K:
s = ": TEST_K"; return ": TEST_K";
break;
case TEST_SE0_NAK: case TEST_SE0_NAK:
s = ": TEST_SE0_NAK"; return ": TEST_SE0_NAK";
break;
case TEST_PACKET: case TEST_PACKET:
s = ": TEST_PACKET"; return ": TEST_PACKET";
break;
case TEST_FORCE_EN: case TEST_FORCE_EN:
s = ": TEST_FORCE_EN"; return ": TEST_FORCE_EN";
break;
default: default:
s = ": UNKNOWN"; return ": 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)",
......
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