Commit 44b94828 authored by Chunfeng Yun's avatar Chunfeng Yun Committed by Greg Kroah-Hartman
Browse files

usb: xhci-mtk: add a function to get bandwidth boundary

parent 338af695
Loading
Loading
Loading
Loading
+20 −7
Original line number Diff line number Diff line
@@ -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;