2015-04-08 23:12:39

by Alexander Graf

[permalink] [raw]
Subject: Re: [PATCH 6/6] staging: fsl-mc: Changed version matching rules for MC object drivers

On 03/27/2015 10:01 PM, J. German Rivera wrote:
> Before this change, we were requiring a complete version match (major and
> minor version numbers) between MC objects and corresponding drivers, to
> allow MC objects to be bound to their drivers. We realized that a mismatch
> in minor version numbers should be tolerated, as long as the major version
> numbers match. This allows the driver to decide what to do in the minor
> version mismatch case. For example, a driver may decide to run with
> downgraded functionality if the MC firmware object has older minor version
> number than the driver. Also, a driver with older minor version than the
> MC firmware object may decide to run even though it cannot use newer
> functionality of the MC object.
>
> As part of this change, the dpmng Flib version was also updated
> to match the latest MC firmware version.
>
> Signed-off-by: J. German Rivera <[email protected]>

I think this is a step into the right direction, but you really don't
want to match only when the minor equals. Usually you'd like something like

if (cur_minor > max_minor) {
dev_warn("Unknown version %d.%d of fsl-mc detected. Please update
your kernel if you encounter problems.")
}

but always assume that cur_minor < max_minor works. In cases where the
protocol did change between minors, add code to support the older minors
as well.


Alex