Re: [PATCH v30 00/30] Introduce QC USB SND audio offloading support

Wesley Cheng
2024-11-20T23:18:31Z

On 11/20/2024 4:39 AM, Takashi Iwai wrote:
> On Tue, 19 Nov 2024 18:50:52 +0100,
> Wesley Cheng wrote:
>>
>> On 11/15/2024 11:42 PM, Greg KH wrote:
>>> On Fri, Nov 15, 2024 at 02:42:47PM -0800, Wesley Cheng wrote:
>>>> Hi,
>>>>
>>>> On 11/6/2024 11:33 AM, Wesley Cheng wrote:
>>>>> Requesting to see if we can get some Acked-By tags, and merge on usb-next.
>>>> Are there any more clarifications that I can help with to get this
>>>> series going?  I know its been a long time coming, so folks may have
>>>> lost context, but if there are any points that might be blocking the
>>>> series from getting merged, please let me know.
>>> I would like others to review this (xhci maintainer for one), to give
>>> their blessing before I even consider this.
>> Thanks, Greg...Yes, I was hoping to see if I could clarify any points for Mathias and Takashi if they had any concerns.  Just so folks are also aware, we did deploy a portion of the series (specifically the XHCI sec interrupter and USB SND core changes) into devices on the market, if that adds any confidence into those changes.  For the most part, there were no major issues within those drivers, and the single minor bug (in the XHCI sec intr) that we did catch was fixed in previous submissions, and should be highlighted in the change revision list.
> Well, from the sound subsystem side, the only concerns are the design
> issues: namely, whether the implementations with two cards are
> acceptable, and whether the current control of PCM mapping is OK from
> the user POV. IIRC, there were discussions with Intel people and
> others, and I haven't followed whether we got consensus.
> If we reached some agreement, it'd be appreciated if you can put acks
> from them in the patches, too.

I believe Amadeusz was still against having the two card design, and wants the routing to automatically happen when playback happens on the sound card created by the USB SND layer.  However, even with that kind of implementation, the major pieces brought in by this series should still be relevant, ie soc-usb and the vendor offload driver.  The only thing that would really change is adding a path from the USB SND PCM ops to interact with the ASoC entities.  Complexity-wise, this would obviously have a good amount of changes to the USB SND/ASoC core drivers.  Some things I can think of that we'd need to introduce:

1.  Exposing some of the ASoC PCM (soc-pcm) APIs to be able to be called by soc-usb (to mimic a FE open from ASoC), so we can trigger ASoC DAI ops when USB SND FE is opened.

2.  Proper fallback mechanism in case offload path enablement fails to the legacy USB SND path.

3.  Master kcontrol to disable offload logic for each USB SND device.

IMO, both the points you mentioned correspond to the same topic.  If we go with having offload being operated on one FE, then there is no need for the kcontrol of PCM mapping.  If we have two cards, then we will need the control for offload device mapping.  Can't speak for Pierre, but at least with my discussions with him, I don't think he's against the two card design, just as long as we have the proper kcontrol that notifies userspace of how to utilize the offload path.

> The internal implementation details can be adjusted later, but those
> two must be set in stone after merging the stuff to the upstream.
>
> (BTW, the mail address of Pierre changed; I corrected in this mail.)
>
Thanks for updating the email address.

Thanks

Wesley Cheng