On 11/5/21 10:38 AM, Mark Brown wrote:
On Fri, Nov 05, 2021 at 12:11:55PM +0800, Trevor Wu wrote:
On Thu, 2021-11-04 at 15:39 +0000, Mark Brown wrote:
I don't follow why the DSP support requires a new driver? Shouldn't all systems with the DSP present be using it?
We need to keep the solution without DSP, so we can replace DSP solution with non-DSP when it's required. But when we introduce SOF for DSP control, there will be more routes in machine driver and device tree usage is different from the original. So it's hard to share the same driver for these two solutions.
We shouldn't be requiring people to load completely different drivers based on software configuration, what if a system wants to bypass the DSP in some but not all configurations? Can we not just have controls allowing users to route round the DSP where appropriate?
It was my understanding the card relies on separate components
- a SOF-based component to provide support for DSP-managed interfaces - a 'non-SOF' component for 'regular' interfaces not handled by the DSP.
this was the basis for the changes discussed in https://github.com/thesofproject/linux/pull/3217 and https://github.com/thesofproject/linux/pull/3236
But indeed if the same interface can be managed by the DSP or not, depending on software choices it's a different problem altogether.
We've looked into this recently, if the choice to involve the DSP or not is at the interface level, it might be better to have both components expose different DAIs for the same interface, with some sort of run-time mutual exclusion, so that all possible/allowed permutations are allowed.