diff options
author | Tom Rini <trini@konsulko.com> | 2023-09-16 12:14:08 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-09-16 12:14:08 -0400 |
commit | 8fcd28aae590cdca86f497f1e2431f6e4af1b268 (patch) | |
tree | 3daf43bed41e1ff8eed9f8e1a020bf10319e9095 /common/spl/spl_sdp.c | |
parent | 2fe4b54556ea6271237b35de68dc458bfceab94c (diff) | |
parent | 2caf974b5fac69a1b778e64503f2c107a8d7c3a3 (diff) |
Merge branch 'next' of git://source.denx.de/u-boot-usb into next
- Rework gadget device handling
Diffstat (limited to 'common/spl/spl_sdp.c')
-rw-r--r-- | common/spl/spl_sdp.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/common/spl/spl_sdp.c b/common/spl/spl_sdp.c index cc4fb4f7cc..5a5ccd0676 100644 --- a/common/spl/spl_sdp.c +++ b/common/spl/spl_sdp.c @@ -14,10 +14,13 @@ static int spl_sdp_load_image(struct spl_image_info *spl_image, struct spl_boot_device *bootdev) { - int ret; const int controller_index = CONFIG_SPL_SDP_USB_DEV; + struct udevice *udc; + int ret; - usb_gadget_initialize(controller_index); + ret = udc_device_get_by_index(controller_index, &udc); + if (ret) + return ret; board_usb_init(controller_index, USB_INIT_DEVICE); @@ -25,13 +28,13 @@ static int spl_sdp_load_image(struct spl_image_info *spl_image, ret = g_dnl_register("usb_dnl_sdp"); if (ret) { pr_err("SDP dnl register failed: %d\n", ret); - return ret; + goto err_detach; } - ret = sdp_init(controller_index); + ret = sdp_init(udc); if (ret) { pr_err("SDP init failed: %d\n", ret); - return -ENODEV; + goto err_unregister; } /* @@ -39,10 +42,13 @@ static int spl_sdp_load_image(struct spl_image_info *spl_image, * or it loads a FIT image and returns it to be handled by the SPL * code. */ - ret = spl_sdp_handle(controller_index, spl_image, bootdev); + ret = spl_sdp_handle(udc, spl_image, bootdev); debug("SDP ended\n"); - usb_gadget_release(controller_index); +err_unregister: + g_dnl_unregister(); +err_detach: + udc_device_put(udc); return ret; } SPL_LOAD_IMAGE_METHOD("USB SDP", 0, BOOT_DEVICE_BOARD, spl_sdp_load_image); |