Hi all,
I'm writing because I'm considering applying once again for GSoC to continue my work on the audio output subsystem, specifically focusing on either HDA or USB audio. Last year I came incredibly close to getting audio output working, but Qemu did some weird things that I was unaware of with the HDA specification so it didn't work. Specifically, it took liberties with the interpretation of the RIRB/CORB size values, considering the value `0` as `0` entries instead of 256 as mandated by the HDA specification. As others on the OSDev forum have noted when they discovered this problem, Qemu does just enough to get Linux booting and no more. This raises many questions; in particular, what other liberties does Qemu take with other specifications that it shouldn't? However, my Mentor (Leif) and I also came incredibly close to getting USB audio working. What prevented us from achieving this goal was the fact that USB isochronous transfers were not supported by the UEFI USB stack. Thus, we had to switch methodologies and priorities right in the middle of the program, which only caused problems for us (though primarily me). After a lot of deliberation on my part in ways I could've done significantly better than I did last year, I have come to the conclusion that I am jumping way ahead of myself in trying to achieve audio now instead of splitting it up into smaller steps and implementing the underlying infrastructure. I therefore propose to take a significant step backwards and to shelve the audio output itself and to focus, instead, on the underlying stacks in question: for example, if we continue with the USB audio route -- which may be, as capitalists might say, the most profitable route -- it would be in our best interest to solely focus on the USB stack and getting the various other USB transfer types fully supported before continuing with USB audio. As it currently stands (at least last time I checked, anyway, which was a while ago), the USB stack is almost entirely focused on HID and UAS support to the exclusion of all else, which forbids things like USB audio support. It allows things like making braille displays function (since a braille display is just another HID device), but I do not have access to a physical braille display to test, otherwise I would try my hand at that. I believe I could get my hands on one, though, but I'm not sure. Ultimately I have three choices and I'd like your advice: 1. Try to continue going for the Intel HDA spec, even though Qemu takes at least one liberty with the HDA specification and may take more, which will require a lot of digging in the qemu source code; 2. Implement the remaining (missing) USB transfer types into the UEFI USB drivers; or 3. Try to get my hands on a braille display and see about implementing the USB braille HID standard. I should also note that I am graduating this May, so my life will be in extreme flux and I may need to withdraw from GSoC should I attain a job (since I'm job-hunting at the moment). But if that happens, I will let you guys know, but I of course would like to continue working on the project in my spare time, even if I am not in GSoC.
I look forward to once again working with you guys!


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#88891): https://edk2.groups.io/g/devel/message/88891
Mute This Topic: https://groups.io/mt/90453670/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to