>> +/* >> +SST shim registers to structure mapping >> +*/ >> +union config_status_reg { >> + struct { >> + u32 rsvd0:1; >> + u32 sst_reset:1; >> + u32 hw_rsvd:3; >> + u32 sst_clk:2; >> + u32 bypass:3; >> + u32 run_stall:1; >> + u32 rsvd:21; >> + } part; >> + u32 full; > >A union with bit fields is very bad for portability. >If it's used as a communication parameter, don't use it. >Just pass u32 and get/set via normal bit and/or operations. We communicate with firmare using a 32 bit register only. The bits of 32 bit register mean different things. So this structure is just a way for use to read/write it using .full and manuplate using .part.field. I am not sure I understand where it fails in portability. Can you please help elaborate a little here? >> +struct snd_sst_user_cap_list { >> + unsigned int iov_index; /*index of iov*/ >> + unsigned long iov_offset; /*offset in iov*/ >> + unsigned long offset; /*offset in kmem*/ >> + unsigned long size; /*size copied*/ > >Sure to use long here? No. we will correct it to use u64 > >Well, all these shouldn't be inline if you have no concrete reason >to inline them. It's no C++ template. Better to put as normal functions. Sure. Will change them accordingly. Thanks, Harsha _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel