cc Yaqii Wu <Yaqii.Wu@xxxxxxxxxxxx> I'll test it , thanks On Tue, 2021-03-30 at 16:06 +0800, Ikjoon Jang wrote: > Remove unnecessary variables in check_sch_bw(). > No functional changes, just for better readability. > > Signed-off-by: Ikjoon Jang <ikjn@xxxxxxxxxxxx> > --- > > drivers/usb/host/xhci-mtk-sch.c | 52 +++++++++++++-------------------- > 1 file changed, 21 insertions(+), 31 deletions(-) > > diff --git a/drivers/usb/host/xhci-mtk-sch.c b/drivers/usb/host/xhci-mtk-sch.c > index a59d1f6d4744..0cb41007ec65 100644 > --- a/drivers/usb/host/xhci-mtk-sch.c > +++ b/drivers/usb/host/xhci-mtk-sch.c > @@ -479,6 +479,9 @@ static int check_sch_tt(struct mu3h_sch_ep_info *sch_ep, u32 offset) > u32 start_cs, last_cs; > int i; > > + if (!sch_ep->sch_tt) > + return 0; > + > start_ss = offset % 8; > > if (sch_ep->ep_type == ISOC_OUT_EP) { > @@ -606,54 +609,41 @@ static u32 get_esit_boundary(struct mu3h_sch_ep_info *sch_ep) > static int check_sch_bw(struct mu3h_sch_bw_info *sch_bw, > struct mu3h_sch_ep_info *sch_ep) > { > - u32 offset; > - u32 min_bw; > - u32 min_index; > - u32 worst_bw; > - u32 bw_boundary; > - u32 esit_boundary; > - u32 min_num_budget; > - u32 min_cs_count; > - int ret = 0; > + int i, found = -1; > + const u32 esit_boundary = get_esit_boundary(sch_ep); > + const u32 bw_boundary = get_bw_boundary(sch_ep->speed); > + u32 min_bw = ~0; > > /* > * Search through all possible schedule microframes. > * and find a microframe where its worst bandwidth is minimum. > */ > - min_bw = ~0; > - min_index = 0; > - min_cs_count = sch_ep->cs_count; > - min_num_budget = sch_ep->num_budget_microframes; > - esit_boundary = get_esit_boundary(sch_ep); > - for (offset = 0; offset < sch_ep->esit; offset++) { > - if (sch_ep->sch_tt) { > - ret = check_sch_tt(sch_ep, offset); > - if (ret) > - continue; > - } > + for (i = 0; i < sch_ep->esit; i++) { > + u32 worst_bw; > > - if ((offset + sch_ep->num_budget_microframes) > esit_boundary) > + if ((i + sch_ep->num_budget_microframes) > esit_boundary) > break; > > - worst_bw = get_max_bw(sch_bw, sch_ep, offset); > + if (check_sch_tt(sch_ep, i)) > + continue; > + > + worst_bw = get_max_bw(sch_bw, sch_ep, i); > + if (worst_bw > bw_boundary) > + continue; > + > if (min_bw > worst_bw) { > min_bw = worst_bw; > - min_index = offset; > - min_cs_count = sch_ep->cs_count; > - min_num_budget = sch_ep->num_budget_microframes; > + found = i; > } > if (min_bw == 0) > break; > } > > - bw_boundary = get_bw_boundary(sch_ep->speed); > /* check bandwidth */ > - if (min_bw > bw_boundary) > - return ret ? ret : -ESCH_BW_OVERFLOW; > + if (found < 0) > + return -ESCH_BW_OVERFLOW; > > - sch_ep->offset = min_index; > - sch_ep->cs_count = min_cs_count; > - sch_ep->num_budget_microframes = min_num_budget; > + sch_ep->offset = found; > > return load_ep_bw(sch_bw, sch_ep, true); > }