Re: [PATCH] [RFC 4/13] Intel SST driver common private headers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>> +/*
>> +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

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux