[PATCH] usb: xhci-mtk: allow multiple Start-Split in a microframe

Chunfeng Yun chunfeng.yun at mediatek.com
Thu Jun 17 22:15:25 PDT 2021


On Thu, 2021-06-17 at 15:31 +0200, Greg Kroah-Hartman wrote:
> On Thu, Jun 17, 2021 at 10:11:51AM +0800, Chunfeng Yun wrote:
> > This patch is used to relax bandwidth schedule by allowing multiple
> > Start-Split in the same microframe.
> > 
> > Signed-off-by: Chunfeng Yun <chunfeng.yun at mediatek.com>
> > ---
> >  drivers/usb/host/xhci-mtk-sch.c | 16 ----------------
> >  drivers/usb/host/xhci-mtk.h     |  2 --
> >  2 files changed, 18 deletions(-)
> > 
> > diff --git a/drivers/usb/host/xhci-mtk-sch.c b/drivers/usb/host/xhci-mtk-sch.c
> > index c07411d9b16f..149a0f4a6ec4 100644
> > --- a/drivers/usb/host/xhci-mtk-sch.c
> > +++ b/drivers/usb/host/xhci-mtk-sch.c
> > @@ -470,11 +470,9 @@ static int check_fs_bus_bw(struct mu3h_sch_ep_info *sch_ep, int offset)
> >  
> >  static int check_sch_tt(struct mu3h_sch_ep_info *sch_ep, u32 offset)
> >  {
> > -	struct mu3h_sch_tt *tt = sch_ep->sch_tt;
> >  	u32 extra_cs_count;
> >  	u32 start_ss, last_ss;
> >  	u32 start_cs, last_cs;
> > -	int i;
> >  
> >  	if (!sch_ep->sch_tt)
> >  		return 0;
> > @@ -491,10 +489,6 @@ static int check_sch_tt(struct mu3h_sch_ep_info *sch_ep, u32 offset)
> >  		if (!(start_ss == 7 || last_ss < 6))
> >  			return -ESCH_SS_Y6;
> >  
> > -		for (i = 0; i < sch_ep->cs_count; i++)
> > -			if (test_bit(offset + i, tt->ss_bit_map))
> > -				return -ESCH_SS_OVERLAP;
> > -
> >  	} else {
> >  		u32 cs_count = DIV_ROUND_UP(sch_ep->maxpkt, FS_PAYLOAD_MAX);
> >  
> > @@ -521,9 +515,6 @@ static int check_sch_tt(struct mu3h_sch_ep_info *sch_ep, u32 offset)
> >  		if (cs_count > 7)
> >  			cs_count = 7; /* HW limit */
> >  
> > -		if (test_bit(offset, tt->ss_bit_map))
> > -			return -ESCH_SS_OVERLAP;
> > -
> >  		sch_ep->cs_count = cs_count;
> >  		/* one for ss, the other for idle */
> >  		sch_ep->num_budget_microframes = cs_count + 2;
> > @@ -558,13 +549,6 @@ static void update_sch_tt(struct mu3h_sch_ep_info *sch_ep, bool used)
> >  	for (i = 0; i < num_esit; i++) {
> >  		base = sch_ep->offset + i * sch_ep->esit;
> >  
> > -		for (j = 0; j < bits; j++) {
> 
> Now that bits is no longer used, we get a build warning.
> 
> Can you fix this patch and resend it?
Ok, thanks

> 
> thanks,
> 
> greg k-h



More information about the Linux-mediatek mailing list