On 10/15/2015 02:10 PM, Mark Brown wrote:
On Wed, Oct 14, 2015 at 11:00:01AM +0200, Lars-Peter Clausen wrote:
It was never intended that it is possible to bind a component to multiple cards. That it was possible was a bug that was overlooked and some people tried to do it which caused apparently random crashes later on, caused by the data structure corruption. This is why we added the check to catch this kind of mistake early and to avoid the crashes.
This is true, but I do think it's something that we should have some story on supporting for some of this hardware that has a bunch of channels in one IP block that can't really interact with each other. It's going to make it a lot easier for people to think about the hardware and how to describe it.
I'm not saying we shouldn't support it, just that we can't support it with the current code. And adding support for it will require a fair bit of restructuring.
If a hardware block as multiple independent channels the best approach in my opinion is to register multiple components (Which we can't do at the moment, because there can only be one component per device). From a framework point of view there is no difference between a single device with multiple independent channels and multiple independent devices with one channel each. Both have the same logical topology.
- Lars