From: <cristian.birsan@microchip.com> To: <balbi@kernel.org>, <gregkh@linuxfoundation.org>, <nicolas.ferre@microchip.com>, <linux-arm-kernel@lists.infradead.org>, <linux-usb@vger.kernel.org>, <linux-kernel@vger.kernel.org> Cc: <alexandre.belloni@bootlin.com>, <ludovic.desroches@microchip.com>, Cristian Birsan <cristian.birsan@microchip.com> Subject: [PATCH 7/7] usb: gadget: udc: atmel: update endpoint allocation for sam9x60 Date: Tue, 7 Apr 2020 15:28:52 +0300 [thread overview] Message-ID: <20200407122852.19422-8-cristian.birsan@microchip.com> (raw) In-Reply-To: <20200407122852.19422-1-cristian.birsan@microchip.com> From: Cristian Birsan <cristian.birsan@microchip.com> The DPRAM memory from the USB High Speed Device Port (UDPHS) hardware block was increased. This patch updates the endpoint allocation for sam9x60 to take advantage of this larger memory. At the same time the constraint to allocate the endpoints in order was lifted. To handle old and new hardware in the same driver the capabilities (caps) structure was extended. Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com> --- drivers/usb/gadget/udc/atmel_usba_udc.c | 22 ++++++++++++++++++---- drivers/usb/gadget/udc/atmel_usba_udc.h | 1 + 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c index dfe30913c76b..3eb715d4d786 100644 --- a/drivers/usb/gadget/udc/atmel_usba_udc.c +++ b/drivers/usb/gadget/udc/atmel_usba_udc.c @@ -1066,12 +1066,14 @@ static struct usb_ep *atmel_usba_match_ep(struct usb_gadget *gadget, case USB_ENDPOINT_XFER_ISOC: ep->fifo_size = 1024; - ep->nr_banks = 2; + if (ep->udc->caps->ep_prealloc) + ep->nr_banks = 2; break; case USB_ENDPOINT_XFER_BULK: ep->fifo_size = 512; - ep->nr_banks = 1; + if (ep->udc->caps->ep_prealloc) + ep->nr_banks = 1; break; case USB_ENDPOINT_XFER_INT: @@ -1081,7 +1083,8 @@ static struct usb_ep *atmel_usba_match_ep(struct usb_gadget *gadget, else ep->fifo_size = roundup_pow_of_two(le16_to_cpu(desc->wMaxPacketSize)); - ep->nr_banks = 1; + if (ep->udc->caps->ep_prealloc) + ep->nr_banks = 1; break; } @@ -2034,16 +2037,27 @@ static void at91sam9g45_pulse_bias(struct usba_udc *udc) static const struct usba_udc_caps at91sam9rl_caps = { .toggle_bias = at91sam9rl_toggle_bias, + .ep_prealloc = true, }; static const struct usba_udc_caps at91sam9g45_caps = { .pulse_bias = at91sam9g45_pulse_bias, + .ep_prealloc = true, +}; + +static const struct usba_udc_caps sama5d3_caps = { + .ep_prealloc = true, +}; + +static const struct usba_udc_caps at91sam9x60_caps = { + .ep_prealloc = false, }; static const struct of_device_id atmel_udc_dt_ids[] = { { .compatible = "atmel,at91sam9rl-udc", .data = &at91sam9rl_caps }, { .compatible = "atmel,at91sam9g45-udc", .data = &at91sam9g45_caps }, - { .compatible = "atmel,sama5d3-udc" }, + { .compatible = "atmel,sama5d3-udc", .data = &sama5d3_caps }, + { .compatible = "microchip,sam9x60-udc", .data = &at91sam9x60_caps }, { /* sentinel */ } }; diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.h b/drivers/usb/gadget/udc/atmel_usba_udc.h index 1a0f77bf8d4f..f9239e200e7a 100644 --- a/drivers/usb/gadget/udc/atmel_usba_udc.h +++ b/drivers/usb/gadget/udc/atmel_usba_udc.h @@ -305,6 +305,7 @@ struct usba_request { struct usba_udc_caps { void (*toggle_bias)(struct usba_udc *udc, int is_on); void (*pulse_bias)(struct usba_udc *udc); + bool ep_prealloc; }; struct usba_udc { -- 2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: <cristian.birsan@microchip.com> To: <balbi@kernel.org>, <gregkh@linuxfoundation.org>, <nicolas.ferre@microchip.com>, <linux-arm-kernel@lists.infradead.org>, <linux-usb@vger.kernel.org>, <linux-kernel@vger.kernel.org> Cc: alexandre.belloni@bootlin.com, ludovic.desroches@microchip.com, Cristian Birsan <cristian.birsan@microchip.com> Subject: [PATCH 7/7] usb: gadget: udc: atmel: update endpoint allocation for sam9x60 Date: Tue, 7 Apr 2020 15:28:52 +0300 [thread overview] Message-ID: <20200407122852.19422-8-cristian.birsan@microchip.com> (raw) In-Reply-To: <20200407122852.19422-1-cristian.birsan@microchip.com> From: Cristian Birsan <cristian.birsan@microchip.com> The DPRAM memory from the USB High Speed Device Port (UDPHS) hardware block was increased. This patch updates the endpoint allocation for sam9x60 to take advantage of this larger memory. At the same time the constraint to allocate the endpoints in order was lifted. To handle old and new hardware in the same driver the capabilities (caps) structure was extended. Signed-off-by: Cristian Birsan <cristian.birsan@microchip.com> --- drivers/usb/gadget/udc/atmel_usba_udc.c | 22 ++++++++++++++++++---- drivers/usb/gadget/udc/atmel_usba_udc.h | 1 + 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c index dfe30913c76b..3eb715d4d786 100644 --- a/drivers/usb/gadget/udc/atmel_usba_udc.c +++ b/drivers/usb/gadget/udc/atmel_usba_udc.c @@ -1066,12 +1066,14 @@ static struct usb_ep *atmel_usba_match_ep(struct usb_gadget *gadget, case USB_ENDPOINT_XFER_ISOC: ep->fifo_size = 1024; - ep->nr_banks = 2; + if (ep->udc->caps->ep_prealloc) + ep->nr_banks = 2; break; case USB_ENDPOINT_XFER_BULK: ep->fifo_size = 512; - ep->nr_banks = 1; + if (ep->udc->caps->ep_prealloc) + ep->nr_banks = 1; break; case USB_ENDPOINT_XFER_INT: @@ -1081,7 +1083,8 @@ static struct usb_ep *atmel_usba_match_ep(struct usb_gadget *gadget, else ep->fifo_size = roundup_pow_of_two(le16_to_cpu(desc->wMaxPacketSize)); - ep->nr_banks = 1; + if (ep->udc->caps->ep_prealloc) + ep->nr_banks = 1; break; } @@ -2034,16 +2037,27 @@ static void at91sam9g45_pulse_bias(struct usba_udc *udc) static const struct usba_udc_caps at91sam9rl_caps = { .toggle_bias = at91sam9rl_toggle_bias, + .ep_prealloc = true, }; static const struct usba_udc_caps at91sam9g45_caps = { .pulse_bias = at91sam9g45_pulse_bias, + .ep_prealloc = true, +}; + +static const struct usba_udc_caps sama5d3_caps = { + .ep_prealloc = true, +}; + +static const struct usba_udc_caps at91sam9x60_caps = { + .ep_prealloc = false, }; static const struct of_device_id atmel_udc_dt_ids[] = { { .compatible = "atmel,at91sam9rl-udc", .data = &at91sam9rl_caps }, { .compatible = "atmel,at91sam9g45-udc", .data = &at91sam9g45_caps }, - { .compatible = "atmel,sama5d3-udc" }, + { .compatible = "atmel,sama5d3-udc", .data = &sama5d3_caps }, + { .compatible = "microchip,sam9x60-udc", .data = &at91sam9x60_caps }, { /* sentinel */ } }; diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.h b/drivers/usb/gadget/udc/atmel_usba_udc.h index 1a0f77bf8d4f..f9239e200e7a 100644 --- a/drivers/usb/gadget/udc/atmel_usba_udc.h +++ b/drivers/usb/gadget/udc/atmel_usba_udc.h @@ -305,6 +305,7 @@ struct usba_request { struct usba_udc_caps { void (*toggle_bias)(struct usba_udc *udc, int is_on); void (*pulse_bias)(struct usba_udc *udc); + bool ep_prealloc; }; struct usba_udc { -- 2.17.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-04-07 12:29 UTC|newest] Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-04-07 12:28 [PATCH 0/7] usb: gadget: udc: atmel: add usb device support for SAM9x60 SoC cristian.birsan 2020-04-07 12:28 ` cristian.birsan 2020-04-07 12:28 ` [PATCH 1/7] usb: gadget: udc: atmel: use of_find_matching_node_and_match cristian.birsan 2020-04-07 12:28 ` cristian.birsan 2020-04-07 12:28 ` [PATCH 2/7] usb: gadget: udc: atmel: add compatible for SAM9X60's PMC cristian.birsan 2020-04-07 12:28 ` cristian.birsan 2020-04-07 13:41 ` Alexandre Belloni 2020-04-07 13:41 ` Alexandre Belloni 2020-04-07 14:04 ` Cristian.Birsan 2020-04-07 14:04 ` Cristian.Birsan 2020-04-07 12:28 ` [PATCH 3/7] usb: gadget: at91_udc: Update DT binding documentation cristian.birsan 2020-04-07 12:28 ` cristian.birsan 2020-04-07 13:45 ` Alexandre Belloni 2020-04-07 13:45 ` Alexandre Belloni 2020-04-07 13:59 ` Cristian.Birsan 2020-04-07 13:59 ` Cristian.Birsan 2020-04-07 14:04 ` Alexandre Belloni 2020-04-07 14:04 ` Alexandre Belloni 2020-04-07 12:28 ` [PATCH 4/7] usb: gadget: udc: atmel: simplify endpoint allocation cristian.birsan 2020-04-07 12:28 ` cristian.birsan 2020-04-07 12:28 ` [PATCH 5/7] usb: gadget: udc: atmel: use 1 bank endpoints for control transfers cristian.birsan 2020-04-07 12:28 ` cristian.birsan 2020-04-07 12:28 ` [PATCH 6/7] usb: gadget: udc: atmel: rename errata into caps cristian.birsan 2020-04-07 12:28 ` cristian.birsan 2020-04-07 13:48 ` Alexandre Belloni 2020-04-07 13:48 ` Alexandre Belloni 2020-04-07 12:28 ` cristian.birsan [this message] 2020-04-07 12:28 ` [PATCH 7/7] usb: gadget: udc: atmel: update endpoint allocation for sam9x60 cristian.birsan
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=20200407122852.19422-8-cristian.birsan@microchip.com \ --to=cristian.birsan@microchip.com \ --cc=alexandre.belloni@bootlin.com \ --cc=balbi@kernel.org \ --cc=gregkh@linuxfoundation.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-usb@vger.kernel.org \ --cc=ludovic.desroches@microchip.com \ --cc=nicolas.ferre@microchip.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: linkBe 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.