usb:gadget Patch simplify usb_decode_set_clear_feature function.
authorPawel Laszczak <pawell@cadence.com>
Tue, 2 Jul 2019 13:37:59 +0000 (14:37 +0100)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Wed, 3 Jul 2019 07:46:01 +0000 (10:46 +0300)
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: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/gadget/debug.c

index d5a469b..60a9f70 100644 (file)
@@ -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,
-                                        __u16 wValue, __u16 wIndex,
-                                        char *str, size_t size)
+static const char *usb_decode_device_feature(u16 wValue)
+{
+       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) {
        case USB_RECIP_DEVICE:
                snprintf(str, size, "%s Device Feature(%s%s)",
                         bRequest == USB_REQ_CLEAR_FEATURE ? "Clear" : "Set",
-                        ({char *s;
-                               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; }),
+                        usb_decode_device_feature(wValue),
                         wValue == USB_DEVICE_TEST_MODE ?
-                        ({ char *s;
-                               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; }) : "");
+                        usb_decode_test_mode(wIndex) : "");
                break;
        case USB_RECIP_INTERFACE:
                snprintf(str, size, "%s Interface Feature(%s)",