On Wed, Jan 17, 2018 at 08:38:48PM +0100, Maciej S. Szmigiero wrote:
However, I have a small nitpick regarding a comment newly added in this version of patch 16:
/*
* Do not set SSI dev as the parent of AC97 CODEC device since
* it does not have a DT node. Otherwise ASoC core will assume
* CODEC has the same DT node as the SSI, so it may return a
* NULL pointer of CODEC when asked for SSI via the DT node
The second part of the last sentence isn't really true, the ASoC core will return a (valid, non-NULL) CODEC object pointer when asked for the SSI one if we set the SSI as the parent device of a AC'97 CODEC platform device.
The NULL pointer dereference when starting a playback that I wrote about in my previous message happens because in this situation the SSI DAI probe callback won't ever get called and so won't setup DMA data pointers (they will remain NULL).
Well, somehow the DMA data pointer of CODEC could be described as "a NULL pointer of CODEC" reluctantly...it confuses people though.
And this in turn will cause the ASoC DMA code to dereference these NULL pointers when starting a playback (the same will probably happen also when starting a capture).
Sorry if I wasn't 100% clear about these details in my previous message describing this issue.
I would prefer to send an incremental patch later to update it, if there are no new comments against this version; Otherwise, I will update it in a next version once there is a need to send a v6 anyway.
Thanks