On Wed, Oct 18, 2023 at 02:38:00PM +0200, Krzysztof Kozlowski wrote:
On 18/10/2023 14:35, Mark Brown wrote:
How do the speakers coordinate?
They don't and that's the generic problem of many Linux drivers. Not only this one, but others as well.
Device unbind (remove()) or runtime suspend of one speaker will affect other speaker. I don't think any other drivers solved this, because this is rather core's GPIO issue, thus I am not solving it here either. :(
I'd expect that the GPIO users should coordiante directly rather than rely on the GPIO API to do the coordination for them - there aren't enough semantics in the GPIO itself to do much more except possibly provide discovery services (which would be nice). Look at how the regulator API manages multiple regulators sharing an enable GPIO for example, it adds an additional layer of reference counting when it identifies a shared GPIO.