Re: [PATCH v4 2/2] mfd: intel-m10-bmc: add Max10 BMC chip support for Intel FPGA PAC

From: Tom Rix
Date: Fri Aug 28 2020 - 09:51:16 EST



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