usb: gadget: CDC ACM: call usb_gadget_initialize

To actually use the gadget the peripheral driver must be probed and we
must call g_dnl_clear_detach(). Otherwise acm_stdio_start() will always
fail to find a UDC on DT platforms.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
Link: https://lore.kernel.org/r/20240320-b4-qcom-usb-v4-3-41be480172e1@linaro.org
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
This commit is contained in:
Caleb Connolly
2024-03-20 14:30:49 +00:00
committed by Mattijs Korpershoek
parent 850b307789
commit 341a172ef7

View File

@@ -623,12 +623,21 @@ static void acm_stdio_puts(struct stdio_dev *dev, const char *str)
static int acm_stdio_start(struct stdio_dev *dev)
{
struct udevice *udc;
int ret;
if (dev->priv) { /* function already exist */
return 0;
}
ret = udc_device_get_by_index(0, &udc);
if (ret) {
pr_err("USB init failed: %d\n", ret);
return ret;
}
g_dnl_clear_detach();
ret = g_dnl_register("usb_serial_acm");
if (ret)
return ret;