[Intel-gfx] [PATCH v9 6/7] drm/i915/guc: Check the locking status of GuC WOPCM registers

Yaodong Li yaodong.li at intel.com
Fri Feb 9 05:05:41 UTC 2018


On 02/08/2018 03:31 PM, Chris Wilson wrote:
> Quoting Jackie Li (2018-02-08 23:03:54)
>> @@ -95,7 +97,11 @@ struct intel_guc_wopcm {
>>          u32 offset;
>>          u32 size;
>>          u32 top;
>> -       u32 valid;
>> +
>> +       /* GuC WOPCM flags below. */
>> +       u32 valid:1;
>> +       u32 hw_updated:1;
>> +       u32 need_load_huc_fw:1;
> bool need_load_huc_fw:1; etc
>
>> @@ -147,6 +211,8 @@ int intel_guc_wopcm_init(struct intel_guc_wopcm *guc_wopcm, u32 guc_fw_size,
>>          guc->wopcm.offset = offset;
>>          guc->wopcm.size = size;
>>          guc->wopcm.top = top;
>> +       /* Use GuC to load HuC firmware if HuC firmware is present. */
>> +       guc->wopcm.need_load_huc_fw = huc_fw_size ? 1 : 0;
> Then the compiler will do the right thing with
>
> 	guc->wopcm.need_load_huc_fw = huc_fw_size;
>
> bools, use them ;)
Thanks Chris!

To be honest, I would still end up with *guc->wopcm.need_load_huc_fw = 
huc_fw_size ? 1 : 0*
even if I had used bool for these flags.However, my main consideration 
to use *u32* instead of
*bool* was to make it flexible to add to flags bits,  e.g. easy to 
append new flags/fields which
needs more than 1-bit (may be overthinking here). we sure can use 
u8/16/32 for such new flags,
but it's a little bit odd to have something like:
     bool flag1:1;
     u8 flag2:2;

Plus, the mysterious bool size was another reason I was reluctant to use 
bool in struct (even through
I always got size = 1 byte for a bool type :-[).

Appreciate for more insights on the use of bool.

Regards,
-Jackie



More information about the Intel-gfx mailing list