usb: mtu3: fix the wrong HS mult value
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: 4d79e042ed
("usb: mtu3: add support for usb3.1 IP")
Cc: stable@vger.kernel.org
Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Link: https://lore.kernel.org/r/1628836253-7432-3-git-send-email-chunfeng.yun@mediatek.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
fd7cb394ec
commit
44e4439d8f
@ -64,14 +64,12 @@ static int mtu3_ep_enable(struct mtu3_ep *mep)
|
|||||||
u32 interval = 0;
|
u32 interval = 0;
|
||||||
u32 mult = 0;
|
u32 mult = 0;
|
||||||
u32 burst = 0;
|
u32 burst = 0;
|
||||||
int max_packet;
|
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
desc = mep->desc;
|
desc = mep->desc;
|
||||||
comp_desc = mep->comp_desc;
|
comp_desc = mep->comp_desc;
|
||||||
mep->type = usb_endpoint_type(desc);
|
mep->type = usb_endpoint_type(desc);
|
||||||
max_packet = usb_endpoint_maxp(desc);
|
mep->maxp = usb_endpoint_maxp(desc);
|
||||||
mep->maxp = max_packet & GENMASK(10, 0);
|
|
||||||
|
|
||||||
switch (mtu->g.speed) {
|
switch (mtu->g.speed) {
|
||||||
case USB_SPEED_SUPER:
|
case USB_SPEED_SUPER:
|
||||||
@ -92,7 +90,7 @@ static int mtu3_ep_enable(struct mtu3_ep *mep)
|
|||||||
usb_endpoint_xfer_int(desc)) {
|
usb_endpoint_xfer_int(desc)) {
|
||||||
interval = desc->bInterval;
|
interval = desc->bInterval;
|
||||||
interval = clamp_val(interval, 1, 16) - 1;
|
interval = clamp_val(interval, 1, 16) - 1;
|
||||||
mult = (max_packet & GENMASK(12, 11)) >> 11;
|
mult = usb_endpoint_maxp_mult(desc) - 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user