From: Mattijs Korpershoek <mkorpershoek@baylibre.com>
To: Marek Vasut <marex@denx.de>, u-boot@lists.denx.de
Cc: Marek Vasut <marex@denx.de>, Angus Ainslie <angus@akkea.ca>,
Dmitrii Merkurev <dimorinny@google.com>,
Eddie Cai <eddie.cai.linux@gmail.com>,
Kever Yang <kever.yang@rock-chips.com>,
Lukasz Majewski <lukma@denx.de>,
Miquel Raynal <miquel.raynal@bootlin.com>,
Nishanth Menon <nm@ti.com>,
Patrice Chotard <patrice.chotard@foss.st.com>,
Patrick Delaunay <patrick.delaunay@foss.st.com>,
Philipp Tomsich <philipp.tomsich@vrull.eu>,
Simon Glass <sjg@chromium.org>, Stefan Roese <sr@denx.de>,
kernel@puri.sm
Subject: Re: [PATCH 08/17] cmd: ums: Use plain udevice for UDC controller interaction
Date: Tue, 22 Aug 2023 18:29:15 +0200 [thread overview]
Message-ID: <878ra3rqg4.fsf@baylibre.com> (raw)
In-Reply-To: <20230819142407.49632-8-marex@denx.de>
On sam., août 19, 2023 at 16:23, Marek Vasut <marex@denx.de> wrote:
> Convert to plain udevice interaction with UDC controller
> device, avoid the use of UDC uclass dev_array .
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> ---
> Cc: Angus Ainslie <angus@akkea.ca>
> Cc: Dmitrii Merkurev <dimorinny@google.com>
> Cc: Eddie Cai <eddie.cai.linux@gmail.com>
> Cc: Kever Yang <kever.yang@rock-chips.com>
> Cc: Lukasz Majewski <lukma@denx.de>
> Cc: Miquel Raynal <miquel.raynal@bootlin.com>
> Cc: Mattijs Korpershoek <mkorpershoek@baylibre.com>
> Cc: Nishanth Menon <nm@ti.com>
> Cc: Patrice Chotard <patrice.chotard@foss.st.com>
> Cc: Patrick Delaunay <patrick.delaunay@foss.st.com>
> Cc: Philipp Tomsich <philipp.tomsich@vrull.eu>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Stefan Roese <sr@denx.de>
> Cc: kernel@puri.sm
> ---
> cmd/usb_mass_storage.c | 10 ++++++----
> drivers/usb/gadget/f_mass_storage.c | 8 ++++----
> include/usb_mass_storage.h | 2 +-
> 3 files changed, 11 insertions(+), 9 deletions(-)
Tested on vim3 with:
=> ums 0 mmc 2
Tested that I could read some files from the android data partition.
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # on khadas vim3
>
> diff --git a/cmd/usb_mass_storage.c b/cmd/usb_mass_storage.c
> index c3cc1975f9d..9c51ae0967f 100644
> --- a/cmd/usb_mass_storage.c
> +++ b/cmd/usb_mass_storage.c
> @@ -143,6 +143,7 @@ static int do_usb_mass_storage(struct cmd_tbl *cmdtp, int flag,
> const char *devtype;
> const char *devnum;
> unsigned int controller_index;
> + struct udevice *udc;
> int rc;
> int cable_ready_timeout __maybe_unused;
>
> @@ -164,13 +165,14 @@ static int do_usb_mass_storage(struct cmd_tbl *cmdtp, int flag,
>
> controller_index = (unsigned int)(simple_strtoul(
> usb_controller, NULL, 0));
> - if (usb_gadget_initialize(controller_index)) {
> + rc = udc_device_get_by_index(controller_index, &udc);
> + if (rc) {
> pr_err("Couldn't init USB controller.\n");
> rc = CMD_RET_FAILURE;
> goto cleanup_ums_init;
> }
>
> - rc = fsg_init(ums, ums_count, controller_index);
> + rc = fsg_init(ums, ums_count, udc);
> if (rc) {
> pr_err("fsg_init failed\n");
> rc = CMD_RET_FAILURE;
> @@ -215,7 +217,7 @@ static int do_usb_mass_storage(struct cmd_tbl *cmdtp, int flag,
> }
>
> while (1) {
> - usb_gadget_handle_interrupts(controller_index);
> + dm_usb_gadget_handle_interrupts(udc);
>
> rc = fsg_main_thread(NULL);
> if (rc) {
> @@ -247,7 +249,7 @@ static int do_usb_mass_storage(struct cmd_tbl *cmdtp, int flag,
> cleanup_register:
> g_dnl_unregister();
> cleanup_board:
> - usb_gadget_release(controller_index);
> + udc_device_put(udc);
> cleanup_ums_init:
> ums_fini();
>
> diff --git a/drivers/usb/gadget/f_mass_storage.c b/drivers/usb/gadget/f_mass_storage.c
> index f46829eb7ad..1d17331cb03 100644
> --- a/drivers/usb/gadget/f_mass_storage.c
> +++ b/drivers/usb/gadget/f_mass_storage.c
> @@ -435,7 +435,7 @@ static void set_bulk_out_req_length(struct fsg_common *common,
> static struct ums *ums;
> static int ums_count;
> static struct fsg_common *the_fsg_common;
> -static unsigned int controller_index;
> +static struct udevice *udcdev;
>
> static int fsg_set_halt(struct fsg_dev *fsg, struct usb_ep *ep)
> {
> @@ -680,7 +680,7 @@ static int sleep_thread(struct fsg_common *common)
> k = 0;
> }
>
> - usb_gadget_handle_interrupts(controller_index);
> + dm_usb_gadget_handle_interrupts(udcdev);
> }
> common->thread_wakeup_needed = 0;
> return rc;
> @@ -2764,11 +2764,11 @@ int fsg_add(struct usb_configuration *c)
> return fsg_bind_config(c->cdev, c, fsg_common);
> }
>
> -int fsg_init(struct ums *ums_devs, int count, unsigned int controller_idx)
> +int fsg_init(struct ums *ums_devs, int count, struct udevice *udc)
> {
> ums = ums_devs;
> ums_count = count;
> - controller_index = controller_idx;
> + udcdev = udc;
>
> return 0;
> }
> diff --git a/include/usb_mass_storage.h b/include/usb_mass_storage.h
> index 08ccc97cf22..83ab93b530d 100644
> --- a/include/usb_mass_storage.h
> +++ b/include/usb_mass_storage.h
> @@ -25,7 +25,7 @@ struct ums {
> struct blk_desc block_dev;
> };
>
> -int fsg_init(struct ums *ums_devs, int count, unsigned int controller_idx);
> +int fsg_init(struct ums *ums_devs, int count, struct udevice *udc);
> void fsg_cleanup(void);
> int fsg_main_thread(void *);
> int fsg_add(struct usb_configuration *c);
> --
> 2.40.1
next prev parent reply other threads:[~2023-08-22 16:29 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-19 14:23 [PATCH 01/17] dm: usb: udc: Factor out plain udevice handler functions Marek Vasut
2023-08-19 14:23 ` [PATCH 02/17] usb: sandbox: Add DM_USB_GADGET support Marek Vasut
2023-08-20 17:48 ` Simon Glass
2023-08-22 16:10 ` Mattijs Korpershoek
2023-08-19 14:23 ` [PATCH 03/17] configs: sandbox: Enable DM_USB_GADGET Marek Vasut
2023-08-20 17:48 ` Simon Glass
2023-08-22 16:10 ` Mattijs Korpershoek
2023-08-19 14:23 ` [PATCH 04/17] cmd: fastboot: Use plain udevice for UDC controller interaction Marek Vasut
2023-08-22 16:22 ` Mattijs Korpershoek
2023-08-19 14:23 ` [PATCH 05/17] cmd: rockusb: " Marek Vasut
2023-08-19 14:23 ` [PATCH 06/17] cmd: sdp: Reorder variable declaration Marek Vasut
2023-08-22 16:24 ` Mattijs Korpershoek
2023-08-19 14:23 ` [PATCH 07/17] cmd: thordown: " Marek Vasut
2023-08-19 14:23 ` [PATCH 08/17] cmd: ums: Use plain udevice for UDC controller interaction Marek Vasut
2023-08-22 16:29 ` Mattijs Korpershoek [this message]
2023-08-19 14:23 ` [PATCH 09/17] dfu: Detach the controller on error Marek Vasut
2023-08-22 16:32 ` Mattijs Korpershoek
2023-08-19 14:24 ` [PATCH 10/17] dfu: Use plain udevice for UDC controller interaction Marek Vasut
2023-08-22 16:33 ` Mattijs Korpershoek
2023-08-19 14:24 ` [PATCH 11/17] spl: sdp: Detach the controller on error Marek Vasut
2023-08-22 16:44 ` Mattijs Korpershoek
2023-09-01 9:52 ` Marek Vasut
2023-08-19 14:24 ` [PATCH 12/17] sdp: Use plain udevice for UDC controller interaction Marek Vasut
2023-08-22 16:46 ` Mattijs Korpershoek
2023-08-19 14:24 ` [PATCH 13/17] thordown: " Marek Vasut
2023-08-19 14:24 ` [PATCH 14/17] usb: gadget: acm: " Marek Vasut
2023-08-19 14:24 ` [PATCH 15/17] usb: gadget: ether: " Marek Vasut
2023-08-19 14:24 ` [PATCH 16/17] dm: usb: udc: Drop legacy udevice handler functions Marek Vasut
2023-08-22 16:52 ` Mattijs Korpershoek
2023-08-19 14:24 ` [PATCH 17/17] board: usb: Replace legacy usb_gadget_handle_interrupts() Marek Vasut
2023-08-22 16:58 ` Mattijs Korpershoek
2023-08-21 8:39 ` [PATCH 01/17] dm: usb: udc: Factor out plain udevice handler functions Miquel Raynal
2023-08-22 16:07 ` Mattijs Korpershoek
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=878ra3rqg4.fsf@baylibre.com \
--to=mkorpershoek@baylibre.com \
--cc=angus@akkea.ca \
--cc=dimorinny@google.com \
--cc=eddie.cai.linux@gmail.com \
--cc=kernel@puri.sm \
--cc=kever.yang@rock-chips.com \
--cc=lukma@denx.de \
--cc=marex@denx.de \
--cc=miquel.raynal@bootlin.com \
--cc=nm@ti.com \
--cc=patrice.chotard@foss.st.com \
--cc=patrick.delaunay@foss.st.com \
--cc=philipp.tomsich@vrull.eu \
--cc=sjg@chromium.org \
--cc=sr@denx.de \
--cc=u-boot@lists.denx.de \
/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.