linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Wesley Cheng <wcheng@codeaurora.org>
To: Greg KH <gregkh@linuxfoundation.org>
Cc: balbi@kernel.org, robh+dt@kernel.org, agross@kernel.org,
	bjorn.andersson@linaro.org, frowand.list@gmail.com,
	linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	jackp@codeaurora.org, fntoth@gmail.com,
	heikki.krogerus@linux.intel.com, andy.shevchenko@gmail.com
Subject: Re: [PATCH v10 1/6] usb: gadget: udc: core: Introduce check_config to verify USB configuration
Date: Mon, 21 Jun 2021 22:27:06 -0700	[thread overview]
Message-ID: <241aeca7-3c24-29be-c9db-7e8da0b65baa@codeaurora.org> (raw)
In-Reply-To: <YMstVXuwAQm5Cea/@kroah.com>



On 6/17/2021 4:09 AM, Greg KH wrote:
> On Thu, Jun 17, 2021 at 02:58:14AM -0700, Wesley Cheng wrote:
>> Some UDCs may have constraints on how many high bandwidth endpoints it can
>> support in a certain configuration.  This API allows for the composite
>> driver to pass down the total number of endpoints to the UDC so it can verify
>> it has the required resources to support the configuration.
>>
>> Signed-off-by: Wesley Cheng <wcheng@codeaurora.org>
>> ---
>>  drivers/usb/gadget/udc/core.c | 25 +++++++++++++++++++++++++
>>  include/linux/usb/gadget.h    |  5 +++++
>>  2 files changed, 30 insertions(+)
>>
>> diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c
>> index b7f0b1e..e33ae2d 100644
>> --- a/drivers/usb/gadget/udc/core.c
>> +++ b/drivers/usb/gadget/udc/core.c
>> @@ -1003,6 +1003,31 @@ int usb_gadget_ep_match_desc(struct usb_gadget *gadget,
>>  }
>>  EXPORT_SYMBOL_GPL(usb_gadget_ep_match_desc);
>>  
>> +/**
>> + * usb_gadget_check_config - checks if the UDC can support the number of eps
>> + * @gadget: controller to check the USB configuration
>> + * @ep_map: bitmap of endpoints being requested by a USB configuration

Hi Greg,

> 
> Will a u64 really hold all of the possible endpoints?
> 

Ah, should be a u32 bitmap, and that is enough as USB spec only allows
32 EPs (IN+OUT eps) total.  That hasn't changed since USB2, so I assume
that will stay the same moving forward.  I can fix that.

> Why make it odd like this, why not just provide a list like we do in the
> USB core with the structure that USB drivers use?  What can a driver do
> with a bitmap only?
> 

I didn't want the ep bookeeping here to be too complicated.  For
example, in the TXFIFO resize situation, just knowing the number of
endpoints used can help determine if we have enough internal controller
memory to allocate per endpoint. (at minimum 1 FIFO per EP)  If the USB
configuration is going to be requesting more endpoints than FIFO memory
it has (unlikely), then it will fail the config bind.  Otherwise, we'd
end up enumerating w/ the host w/ the interfaces that were starved of
FIFO memory to be broken/non-functional.  This was one of the concerns
that Felipe had in our initial discussions.

In addition, at the time of function driver binding, the amount of
information we have is minimal per endpoint, as most of it is populated
once the host places the device into the CONFIGURED state. (ie when the
device knows which configuration is being enabled, hence which EPs are
being used)

Thanks
Wesley Cheng

> 
> thanks,
> 
> greg k-h
> 

-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

  reply	other threads:[~2021-06-22  5:27 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-17  9:58 [PATCH v10 0/6] Re-introduce TX FIFO resize for larger EP bursting Wesley Cheng
2021-06-17  9:58 ` [PATCH v10 1/6] usb: gadget: udc: core: Introduce check_config to verify USB configuration Wesley Cheng
2021-06-17 11:09   ` Greg KH
2021-06-22  5:27     ` Wesley Cheng [this message]
2021-06-17  9:58 ` [PATCH v10 2/6] usb: gadget: configfs: Check USB configuration before adding Wesley Cheng
2021-06-17 11:07   ` Greg KH
2021-06-22  5:27     ` Wesley Cheng
2021-06-22  6:05       ` Greg KH
2021-06-23  9:38         ` Wesley Cheng
2021-06-23 11:35           ` Greg KH
2021-06-23 21:44             ` Wesley Cheng
2021-06-24 12:09               ` Greg KH
2021-06-17  9:58 ` [PATCH v10 3/6] usb: dwc3: Resize TX FIFOs to meet EP bursting requirements Wesley Cheng
2021-06-17 11:10   ` Greg KH
2021-06-22  5:27     ` Wesley Cheng
2021-06-22  6:06       ` Greg KH
2021-06-17 17:56   ` kernel test robot
2021-06-17 18:01   ` kernel test robot
2021-06-17  9:58 ` [PATCH v10 4/6] of: Add stub for of_add_property() Wesley Cheng
2021-06-17  9:58 ` [PATCH v10 5/6] usb: dwc3: dwc3-qcom: Enable tx-fifo-resize property by default Wesley Cheng
2021-06-17 11:12   ` Greg KH
2021-06-17 18:04   ` kernel test robot
2021-06-18  4:35     ` Jack Pham
2021-06-17  9:58 ` [PATCH v10 6/6] dt-bindings: usb: dwc3: Update dwc3 TX fifo properties Wesley Cheng
2021-06-17 21:01 ` [PATCH v10 0/6] Re-introduce TX FIFO resize for larger EP bursting Ferry Toth
2021-06-17 21:48   ` Wesley Cheng
     [not found]     ` <f5ed0ee7-e333-681f-0f1a-d0227562204b@gmail.com>
2021-06-17 22:25       ` Wesley Cheng
2021-06-19 12:40         ` Ferry Toth
2021-06-22 18:38           ` Wesley Cheng
2021-06-22 20:09             ` Ferry Toth
2021-06-22 22:00               ` Wesley Cheng
2021-06-22 22:12                 ` Ferry Toth
2021-06-23  7:50                   ` Wesley Cheng
2021-06-25 21:10                     ` Ferry Toth
2021-06-25 21:19                       ` Wesley Cheng
2021-06-25 22:31                         ` Ferry Toth
2021-07-22 18:43             ` Ferry Toth
2021-07-23  6:59               ` Felipe Balbi
     [not found]                 ` <d9aef50c-4bd1-4957-13d8-0b6a14b9fcd0@gmail.com>
2021-07-23 11:23                   ` Felipe Balbi
2021-07-24 20:59                     ` Ferry Toth
2021-07-24 21:19                       ` Andy Shevchenko
2021-07-24 22:56                         ` Ferry Toth
2021-07-25  6:05                       ` Felipe Balbi
2021-07-25 13:32                         ` Ferry Toth
2021-07-25 14:05                           ` Felipe Balbi
2021-07-25 16:54                             ` Ferry Toth
2021-07-26  5:57                               ` Felipe Balbi
2021-07-26 14:33                                 ` Wesley Cheng
2021-07-26 21:51                                   ` Ferry Toth
2021-08-15 20:56                                 ` Ferry Toth
2021-08-16  5:18                                   ` Felipe Balbi
2021-08-17 22:00                                     ` Ferry Toth
2021-08-18 19:07                                       ` Ferry Toth
2021-08-19  7:51                                         ` Pavel Hofman
2021-08-19 20:10                                           ` Ferry Toth
2021-08-19 21:04                                             ` Pavel Hofman
2021-08-21  2:57                                               ` Thinh Nguyen
2021-08-22 20:10                                                 ` Ferry Toth
2021-08-23  7:57                                                   ` Pavel Hofman
2021-09-02  0:28                                                 ` Jack Pham
2021-09-02 22:58                                                   ` Thinh Nguyen
2021-08-22 19:43                                               ` Ferry Toth
2021-08-23 14:59                                                 ` Pavel Hofman
2021-08-23 15:21                                                   ` Andy Shevchenko
2021-08-23 15:34                                                     ` Pavel Hofman
2021-08-23 18:54                                                       ` Ferry Toth
2021-08-23 22:50                                                       ` Thinh Nguyen
2021-08-24  5:39                                                         ` Pavel Hofman
2021-08-24 13:44                                                           ` Ferry Toth
     [not found]                                                           ` <7ffab777-0f77-f949-f70f-7bf34c504381@gmail.com>
2021-08-26  1:18                                                             ` Thinh Nguyen
2021-08-26  7:30                                                               ` Ferry Toth
2021-08-26 13:35                                                               ` Pavel Hofman
2021-08-19  7:55                                         ` Andy Shevchenko

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=241aeca7-3c24-29be-c9db-7e8da0b65baa@codeaurora.org \
    --to=wcheng@codeaurora.org \
    --cc=agross@kernel.org \
    --cc=andy.shevchenko@gmail.com \
    --cc=balbi@kernel.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=fntoth@gmail.com \
    --cc=frowand.list@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=jackp@codeaurora.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).