All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chunfeng Yun <chunfeng.yun@mediatek.com>
To: Ikjoon Jang <ikjn@chromium.org>, Yaqii Wu <Yaqii.Wu@mediatek.com>
Cc: <linux-usb@vger.kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mathias Nyman <mathias.nyman@intel.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>,
	<linux-mediatek@lists.infradead.org>
Subject: Re: [PATCH 1/2] usb: xhci-mtk: remove unnecessary assignments in periodic TT scheduler
Date: Wed, 31 Mar 2021 16:30:55 +0800	[thread overview]
Message-ID: <1617179455.2752.1.camel@mhfsdcap03> (raw)
In-Reply-To: <20210330160508.1.I797d214790033d0402d19ff6b47a34aff60d3062@changeid>

cc Yaqii Wu <Yaqii.Wu@mediatek.com>

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@chromium.org>
> ---
> 
>  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);
>  }


WARNING: multiple messages have this Message-ID (diff)
From: Chunfeng Yun <chunfeng.yun@mediatek.com>
To: Ikjoon Jang <ikjn@chromium.org>, Yaqii Wu <Yaqii.Wu@mediatek.com>
Cc: <linux-usb@vger.kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mathias Nyman <mathias.nyman@intel.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>,
	<linux-mediatek@lists.infradead.org>
Subject: Re: [PATCH 1/2] usb: xhci-mtk: remove unnecessary assignments in periodic TT scheduler
Date: Wed, 31 Mar 2021 16:30:55 +0800	[thread overview]
Message-ID: <1617179455.2752.1.camel@mhfsdcap03> (raw)
In-Reply-To: <20210330160508.1.I797d214790033d0402d19ff6b47a34aff60d3062@changeid>

cc Yaqii Wu <Yaqii.Wu@mediatek.com>

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@chromium.org>
> ---
> 
>  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);
>  }

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

WARNING: multiple messages have this Message-ID (diff)
From: Chunfeng Yun <chunfeng.yun@mediatek.com>
To: Ikjoon Jang <ikjn@chromium.org>, Yaqii Wu <Yaqii.Wu@mediatek.com>
Cc: <linux-usb@vger.kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Mathias Nyman <mathias.nyman@intel.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>,
	<linux-mediatek@lists.infradead.org>
Subject: Re: [PATCH 1/2] usb: xhci-mtk: remove unnecessary assignments in periodic TT scheduler
Date: Wed, 31 Mar 2021 16:30:55 +0800	[thread overview]
Message-ID: <1617179455.2752.1.camel@mhfsdcap03> (raw)
In-Reply-To: <20210330160508.1.I797d214790033d0402d19ff6b47a34aff60d3062@changeid>

cc Yaqii Wu <Yaqii.Wu@mediatek.com>

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@chromium.org>
> ---
> 
>  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);
>  }

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-03-31  8:31 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-30  8:06 [PATCH 0/2] usb: xhci-mtk: relax peridoc TT bandwidth checking Ikjoon Jang
2021-03-30  8:06 ` Ikjoon Jang
2021-03-30  8:06 ` Ikjoon Jang
2021-03-30  8:06 ` [PATCH 1/2] usb: xhci-mtk: remove unnecessary assignments in periodic TT scheduler Ikjoon Jang
2021-03-30  8:06   ` Ikjoon Jang
2021-03-30  8:06   ` Ikjoon Jang
2021-03-31  8:30   ` Chunfeng Yun [this message]
2021-03-31  8:30     ` Chunfeng Yun
2021-03-31  8:30     ` Chunfeng Yun
2021-04-05  7:04     ` Greg Kroah-Hartman
2021-04-05  7:04       ` Greg Kroah-Hartman
2021-04-05  7:04       ` Greg Kroah-Hartman
2021-04-06  2:18       ` Chunfeng Yun
2021-04-06  2:18         ` Chunfeng Yun
2021-04-06  2:18         ` Chunfeng Yun
2021-04-22  8:46         ` Greg Kroah-Hartman
2021-04-22  8:46           ` Greg Kroah-Hartman
2021-04-22  8:46           ` Greg Kroah-Hartman
2021-04-23  3:26           ` Chunfeng Yun
2021-04-23  3:26             ` Chunfeng Yun
2021-04-23  3:26             ` Chunfeng Yun
2021-04-23  5:23             ` Greg Kroah-Hartman
2021-04-23  5:23               ` Greg Kroah-Hartman
2021-04-23  5:23               ` Greg Kroah-Hartman
2021-04-23  6:06               ` Chunfeng Yun
2021-04-23  6:06                 ` Chunfeng Yun
2021-04-23  6:06                 ` Chunfeng Yun
2021-03-30  8:06 ` [PATCH 2/2] usb: xhci-mtk: relax periodic TT bandwidth checking Ikjoon Jang
2021-03-30  8:06   ` Ikjoon Jang
2021-03-30  8:06   ` Ikjoon Jang
2021-03-31  8:31   ` Chunfeng Yun
2021-03-31  8:31     ` Chunfeng Yun
2021-03-31  8:31     ` Chunfeng Yun

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1617179455.2752.1.camel@mhfsdcap03 \
    --to=chunfeng.yun@mediatek.com \
    --cc=Yaqii.Wu@mediatek.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=ikjn@chromium.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@intel.com \
    --cc=matthias.bgg@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.