On 1/29/20 1:55 AM, Takashi Iwai wrote:
On Wed, 29 Jan 2020 02:11:38 +0100, Sridharan, Ranjani wrote:
Hi Takashi,
We're seeing the following sparse warning in the SOF code:
sound/soc/sof/sof-audio.c:86:31: warning: incorrect type in assignment (different base types) sound/soc/sof/sof-audio.c:86:31: expected restricted snd_pcm_state_t [usertype] state sound/soc/sof/sof-audio.c:86:31: got signed int [signed] [usertype] [explicitly-signed] state
The line under scrutiny where we assign "state" is as follows:
state = substream->runtime->status->state;
and it is defined as snd_pcm_state_t state;
There are other places (ex pcm_oss.c) where a similar assignment has been used as well.
What fixes the issue is a forced cast to snd_pcm_state_t as below before assigning: state = (__force snd_pcm_state_t)substream->runtime->status->state;
Do you think this is acceptable? If not, could you please suggest an alternative?
Hm, I don't see the warning in my code. Did you merge all upstream stuff and still get it?
It's been merged in the SOF tree (topic/sof-dev) and it'll be in the next batch I send. It's not upstream just yet because we want to remove the warning to make the patch nice and shiny :-)