Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot Bind UVC ConfigFS Configuration to UDC #186

Open
robertarndt201 opened this issue Feb 28, 2024 · 0 comments
Open

Cannot Bind UVC ConfigFS Configuration to UDC #186

robertarndt201 opened this issue Feb 28, 2024 · 0 comments

Comments

@robertarndt201
Copy link

Hi Guys, hoping somebody has been successful with UVC on the RB5 before. I'm trying to get UVC going on a Qualcomm RB5 using the qcom/dunfell OE-RPB build but cannot seem to bind the ConfigFS configuration to the UDC. I'm not sure if I missed a kernel config item, or if UDC depends on a perfect ConfigFS directory structure prior to the binding, but I'm hitting a wall.

I've attached my kernel configuration, my configFS script, and my dmesg log after trying to bind. I have not tried turning the ConfigFS script into a service that runs on boot yet. The cameras I've tried are a Logitech BRIO301 and a Logitech C920.

I put some printk statements into drivers/usb/gadget/udc/core.c (different dmesg log than below) in usb_gadget_probe_driver() and it appears the udc is not in the UDC master list, because the string compare fails as udc_name has a string but udc->dev is empty. So it seems like the -19 error is because something is wrong with the UDC probe going south.

    mutex_lock(&udc_lock);
    if (driver->udc_name) {
            list_for_each_entry(udc, &udc_list, list) {
                    ret = strcmp(driver->udc_name, dev_name(&udc->dev));

                    printk("****DEBUG: Driver->udc_name: %s\n", driver->udc_name);
                    printk("****DEBUG: udc->dev name: %s\n", &udc->dev);

                    if (!ret)
                            break;
            }
            if (ret)
                    ret = -ENODEV;
            else if (udc->driver)
                    ret = -EBUSY;
            else
                    goto found;

<<

udc_name comes up as the port a600000.usb, but udc->dev comes up blank. So it seems like there's some UDC probe issue.

I can use the cameras fine to display video with a simple gstreamer pipeline, but cannot get them to present a video device on my host laptop.

-Robert (files attached through link below)
uvc.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant