All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felipe Balbi <balbi@kernel.org>
To: Thinh Nguyen <thinh.nguyen@synopsys.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-usb@vger.kernel.org
Cc: John Youn <john.youn@synopsys.com>
Subject: [v3,2/2] usb: dwc3: gadget: Report isoc transfer frame number
Date: Wed, 05 Dec 2018 11:15:16 +0200	[thread overview]
Message-ID: <87wooo1gij.fsf@linux.intel.com> (raw)

Hi,

Thinh Nguyen <thinh.nguyen@synopsys.com> writes:
> Implement the new frame_number API to report the isochronous interval
> frame number. This patch checks and reports the interval in which the
> isoc transfer was transmitted or received via the Isoc-First TRB SOF
> number field.
>
> Signed-off-by: Thinh Nguyen <thinhn@synopsys.com>
> ---
> Change in v3:
> - Implement the change with the redefined frame_number meaning
> Change in v2:
> - Capture frame number at request cleanup
>
>  drivers/usb/dwc3/core.h   |  1 +
>  drivers/usb/dwc3/gadget.c | 13 +++++++++++++
>  2 files changed, 14 insertions(+)
>
> diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
> index ed0359d1216d..2c9f7a93147a 100644
> --- a/drivers/usb/dwc3/core.h
> +++ b/drivers/usb/dwc3/core.h
> @@ -777,6 +777,7 @@ enum dwc3_link_state {
>  #define DWC3_TRB_CTRL_ISP_IMI		BIT(10)
>  #define DWC3_TRB_CTRL_IOC		BIT(11)
>  #define DWC3_TRB_CTRL_SID_SOFN(n)	(((n) & 0xffff) << 14)
> +#define DWC3_TRB_CTRL_GET_SID_SOFN(n)	(((n) & (0xffff << 14)) >> 14)
>  
>  #define DWC3_TRBCTL_TYPE(n)		((n) & (0x3f << 4))
>  #define DWC3_TRBCTL_NORMAL		DWC3_TRB_CTRL_TRBCTL(1)
> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
> index 679c12e14522..2de563124fc1 100644
> --- a/drivers/usb/dwc3/gadget.c
> +++ b/drivers/usb/dwc3/gadget.c
> @@ -2254,6 +2254,19 @@ static int dwc3_gadget_ep_reclaim_completed_trb(struct dwc3_ep *dep,
>  	if (chain && (trb->ctrl & DWC3_TRB_CTRL_HWO))
>  		trb->ctrl &= ~DWC3_TRB_CTRL_HWO;
>  
> +	/*
> +	 * For isochronous transfers, the first TRB in a service interval must
> +	 * have the Isoc-First type. Track and report its interval frame number.
> +	 */
> +	if (usb_endpoint_xfer_isoc(dep->endpoint.desc) &&
> +	    (trb->ctrl & DWC3_TRBCTL_ISOCHRONOUS_FIRST)) {
> +		unsigned int frame_number;
> +
> +		frame_number = DWC3_TRB_CTRL_GET_SID_SOFN(trb->ctrl);
> +		frame_number &= ~(dep->interval - 1);
> +		req->request.frame_number = frame_number;
> +	}

could you refresh my memory on how this is going to be used?

             reply	other threads:[~2018-12-05  9:15 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-05  9:15 Felipe Balbi [this message]
  -- strict thread matches above, loose matches on Subject: below --
2018-12-08  1:21 [v3,2/2] usb: dwc3: gadget: Report isoc transfer frame number Thinh Nguyen
2018-12-07  6:01 Felipe Balbi
2018-12-06  3:48 Thinh Nguyen
2018-11-16  3:03 Thinh Nguyen

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=87wooo1gij.fsf@linux.intel.com \
    --to=balbi@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=john.youn@synopsys.com \
    --cc=linux-usb@vger.kernel.org \
    --cc=thinh.nguyen@synopsys.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.