usb: xhci-mtk: add a function to get bandwidth boundary
authorChunfeng Yun <chunfeng.yun@mediatek.com>
Mon, 8 Mar 2021 02:51:56 +0000 (10:51 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Mar 2021 08:37:16 +0000 (09:37 +0100)
This is used to simplify unit test.

Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Link: https://lore.kernel.org/r/805b3ba66c2f02a52de4440212519aaa58463039.1615170625.git.chunfeng.yun@mediatek.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci-mtk-sch.c

index 9a9685f..8fe4481 100644 (file)
@@ -37,6 +37,25 @@ static int is_fs_or_ls(enum usb_device_speed speed)
        return speed == USB_SPEED_FULL || speed == USB_SPEED_LOW;
 }
 
+static u32 get_bw_boundary(enum usb_device_speed speed)
+{
+       u32 boundary;
+
+       switch (speed) {
+       case USB_SPEED_SUPER_PLUS:
+               boundary = SSP_BW_BOUNDARY;
+               break;
+       case USB_SPEED_SUPER:
+               boundary = SS_BW_BOUNDARY;
+               break;
+       default:
+               boundary = HS_BW_BOUNDARY;
+               break;
+       }
+
+       return boundary;
+}
+
 /*
 * get the index of bandwidth domains array which @ep belongs to.
 *
@@ -579,13 +598,7 @@ static int check_sch_bw(struct usb_device *udev,
                        break;
        }
 
-       if (udev->speed == USB_SPEED_SUPER_PLUS)
-               bw_boundary = SSP_BW_BOUNDARY;
-       else if (udev->speed == USB_SPEED_SUPER)
-               bw_boundary = SS_BW_BOUNDARY;
-       else
-               bw_boundary = HS_BW_BOUNDARY;
-
+       bw_boundary = get_bw_boundary(udev->speed);
        /* check bandwidth */
        if (min_bw > bw_boundary)
                return -ERANGE;