Kyle Robbertze

After a fairly long hiatus thanks to DebConf17, today I got back to working on the HDMI2USB audio firmware. I opened a PR against the HDMI2USB-mode-switch for be able to load test firmware onto the Opsis and Atlys boards. I also spent time debugging the SET_INTERFACE error I am getting on the Opsis when loading the audio firmware.

device-id:

  • 09e075f - Add test device IDs to board list

audio-data: The issue is with the streaming code in the firmware.c file:

 while(TRUE) {
        if (got_sud) {
            printf("Handle setup data\n");
            handle_setupdata();
            got_sud = FALSE;
        }
        /* ISO endpoint config type is 01 in the enpoint configuration buffer */
        if ((EP2CFG & bmTYPE) == bmTYPE0) {
           // This is the issue
            while (!(EP2468STAT & bmEP2FULL)) {
                d1on();
                /* Send max data. Larger than 0x30 causes an EOVERFLOW */
                EP2BCH = 0x00;
                SYNCDELAY;
                EP2BCL = 0x30;
            }
            // To here
            d1off();
        }
    }

If this is included, dmesg shows an error:

usb 1-3: 1:1: usb_set_interface failed (-110)

Which fails repeatedly.