Convert to plain udevice interaction with UDC controller
device, avoid the use of UDC uclass dev_array .

Signed-off-by: Marek Vasut <ma...@denx.de>
---
Cc: Angus Ainslie <an...@akkea.ca>
Cc: Dmitrii Merkurev <dimori...@google.com>
Cc: Eddie Cai <eddie.cai.li...@gmail.com>
Cc: Kever Yang <kever.y...@rock-chips.com>
Cc: Lukasz Majewski <lu...@denx.de>
Cc: Miquel Raynal <miquel.ray...@bootlin.com>
Cc: Mattijs Korpershoek <mkorpersh...@baylibre.com>
Cc: Nishanth Menon <n...@ti.com>
Cc: Patrice Chotard <patrice.chot...@foss.st.com>
Cc: Patrick Delaunay <patrick.delau...@foss.st.com>
Cc: Philipp Tomsich <philipp.toms...@vrull.eu>
Cc: Simon Glass <s...@chromium.org>
Cc: Stefan Roese <s...@denx.de>
Cc: ker...@puri.sm
---
 drivers/usb/gadget/f_acm.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/usb/gadget/f_acm.c b/drivers/usb/gadget/f_acm.c
index b2ddd1ada8b..de42e0189e8 100644
--- a/drivers/usb/gadget/f_acm.c
+++ b/drivers/usb/gadget/f_acm.c
@@ -51,7 +51,7 @@ struct f_acm {
 #define ACM_CTRL_RTS   BIT(1)  /* unused with full duplex */
 #define ACM_CTRL_DTR   BIT(0)  /* host is ready for data r/w */
 
-       int controller_index;
+       struct udevice *udc;
 };
 
 static struct f_acm *default_acm_function;
@@ -489,7 +489,7 @@ static void __acm_tx(struct f_acm *f_acm)
        int len, ret;
 
        do {
-               usb_gadget_handle_interrupts(f_acm->controller_index);
+               dm_usb_gadget_handle_interrupts(f_acm->udc);
 
                if (!(f_acm->handshake_bits & ACM_CTRL_DTR))
                        break;
@@ -520,7 +520,7 @@ static bool acm_connected(struct stdio_dev *dev)
        struct f_acm *f_acm = stdio_to_acm(dev);
 
        /* give a chance to process udc irq */
-       usb_gadget_handle_interrupts(f_acm->controller_index);
+       dm_usb_gadget_handle_interrupts(f_acm->udc);
 
        return f_acm->connected;
 }
@@ -543,7 +543,10 @@ static int acm_add(struct usb_configuration *c)
        f_acm->usb_function.descriptors = acm_fs_function;
        f_acm->usb_function.hs_descriptors = acm_hs_function;
        f_acm->usb_function.setup = acm_setup;
-       f_acm->controller_index = 0;
+
+       status = udc_device_get_by_index(0, &f_acm->udc);
+       if (status)
+               return status;
 
        status = usb_add_function(c, &f_acm->usb_function);
        if (status) {
@@ -567,7 +570,7 @@ static int acm_stdio_tstc(struct stdio_dev *dev)
 {
        struct f_acm *f_acm = stdio_to_acm(dev);
 
-       usb_gadget_handle_interrupts(f_acm->controller_index);
+       dm_usb_gadget_handle_interrupts(f_acm->udc);
 
        return (f_acm->rx_buf.size > 0);
 }
-- 
2.40.1

Reply via email to