Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

usb: mtu3: fix the wrong HS mult value



commit 44e4439d8f9f8d0e9da767d1f31e7c211081feca upstream.

usb_endpoint_maxp() returns actual max packet size, @mult will
always be zero, fix it by using usb_endpoint_maxp_mult() instead
to get mult.

Fixes: 4d79e042 ("usb: mtu3: add support for usb3.1 IP")
Cc: stable@vger.kernel.org
Signed-off-by: default avatarChunfeng Yun <chunfeng.yun@mediatek.com>
Link: https://lore.kernel.org/r/1628836253-7432-3-git-send-email-chunfeng.yun@mediatek.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c3ffd350
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -72,14 +72,12 @@ static int mtu3_ep_enable(struct mtu3_ep *mep)
	u32 interval = 0;
	u32 mult = 0;
	u32 burst = 0;
	int max_packet;
	int ret;

	desc = mep->desc;
	comp_desc = mep->comp_desc;
	mep->type = usb_endpoint_type(desc);
	max_packet = usb_endpoint_maxp(desc);
	mep->maxp = max_packet & GENMASK(10, 0);
	mep->maxp = usb_endpoint_maxp(desc);

	switch (mtu->g.speed) {
	case USB_SPEED_SUPER:
@@ -100,7 +98,7 @@ static int mtu3_ep_enable(struct mtu3_ep *mep)
				usb_endpoint_xfer_int(desc)) {
			interval = desc->bInterval;
			interval = clamp_val(interval, 1, 16) - 1;
			mult = (max_packet & GENMASK(12, 11)) >> 11;
			mult = usb_endpoint_maxp_mult(desc) - 1;
		}
		break;
	default: