>> +
>> +static int check_m10bmc_version(struct intel_m10bmc *m10bmc)
>> +{
>> +    unsigned int v;
>> +
>> +    if (m10bmc_raw_read(m10bmc, M10BMC_LEGACY_SYS_BASE + M10BMC_BUILD_VER,
>> +                        &v))
>> +            return -ENODEV;
> Please break functions out of if statements.
>
> Does m10bmc_raw_read() return 0 on success?
>
> Seems odd for a read function.
>
>> +    if (v != 0xffffffff) {
>> +            dev_err(m10bmc->dev, "bad version M10BMC detected\n");
>> +            return -ENODEV;
>> +    }
> The only acceptable version is -1?

I ran into this in testing.  This is a check if the board is using a very old 
legacy bmc version. The M10BMC_LEGACY_SYS_BASE is the offset to this old block 
of mmio regs.  On the old boards, v would have not been f's, on the current 
boards it is f's. The check is necessary because future calls use the 
M10BMC_SYS_BASE offset which was not valid on the old boards.

Tom

Reply via email to