Re: [PATCH v1 RESEND] SoundWire: Allow Prepare command for Simplified_CP_SM
From: Pierre-Louis Bossart
Date: Tue Feb 10 2026 - 15:28:36 EST
On 2/10/26 18:29, Richard Fitzgerald wrote:
> On 10/02/2026 5:04 pm, Pierre-Louis Bossart wrote:
>> On 2/10/26 12:08, Holalu Yogendra, Niranjan wrote:
>>>> On 2/9/26 20:13, Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxx> wrote:
>>>> Subject: Re: [PATCH v1 RESEND] SoundWire: Allow Prepare
>>>> command for Simplified_CP_SM
>>>>
>>>> On 2/9/26 08: 09, Niranjan H Y wrote:
>>>>> In TI device implementations, we've found that some devices with
>>>>> Simplified_CP_SM still benefit from receiving the Prepare command.
>>>> It would also be good to clarify when the device is actually prepared after the
>>>> bits are set, if the implementation cannot guarantee that the prepared status is
>>>> reached by the end of the frame where the write occurs, then it's definitively
>>>> NOT a Simplified_CP_SM.
>>>>
>>>> What happens is the simple_ch_prep_sm bit is not set for those devices, and
>>>> the regular state machine is used instead? Is anything broken?
>>>
>>> We need to use the same BIOS between Windows and Linux. The BIOS configures
>>> the device as Simplified_CP_SM. The device also expects the Prepare bits to be
>>> set. If the device is configured as generic CP_SM, the status "Port Ready"
>>> bits will not be updated and we end up with port prepare fail errors.
>>
>> Are you referring to the DPN_IntStat::PortReady bit? IOW do the errors during prepare happen because the interrupt is not generated?
>>
>> If that is the case, then you should be aware of the thread "soundwire: stream: Prepare ports in parallel to reduce stream start latency", where it was agreed that the use of the PortReady interrupt is broken. We do need to move to a different code where we have a polling loop on the DPN_PrepareStatus::NotFinished bits.
>
> I made a patch to poll for DP prepare finished, instead of using the
> interrupt. I haven't sent that patch because this TI patch changes the
> same function. I was waiting for this one to be merged and then I would
> rebase onto that.
>
> Draft review of polled DP prepare:
> https://github.com/thesofproject/linux/pull/5649
IMHO it makes more sense to fix first a conceptual issue, and then add whatever is needed for a specific vendor.
The second part could be a quirk to use the regular state machine, or this additional write if that's not enough.