OSDN Git Service

net: ipa: expose IPA version to the GSI layer
authorAlex Elder <elder@linaro.org>
Mon, 2 Nov 2020 17:53:55 +0000 (11:53 -0600)
committerJakub Kicinski <kuba@kernel.org>
Thu, 5 Nov 2020 00:28:04 +0000 (16:28 -0800)
commit1d0c09dee911f49e88de0ba52d1f0e57f6eb4c47
treebdc638f54758007354652882e956f2b27b063192
parent3fb6928b56f67167406daefa13ca9d2b94d48eb0
net: ipa: expose IPA version to the GSI layer

Although GSI is integral to IPA, it is a separate hardware component
and the IPA code supporting it has been structured to avoid explicit
dependence on IPA details.  An example of this is that gsi_init() is
passed a number of Boolean flags to indicate special behaviors,
whose values are dependent on the IPA hardware version.  Looking
ahead, newer hardware versions would require even more such special
behaviors.

For any given version of IPA hardware (like 3.5.1 or 4.2), the GSI
hardware version is fixed (in this case, 1.3 and 2.2, respectively).
So the IPA version *implies* the GSI version, and the IPA version
can be used as effectively the equivalent of the GSI hardware version.

Rather than proliferating new special behavior flags, just provide
the IPA version to the GSI layer when it is initialized.  The GSI
code can then use that directly to determine whether special
behaviors are required.  The IPA version enumerated type is already
isolated to its own header file, so the exposure of this IPA detail
is very limited.

For now, just change gsi_init() to pass the version rather than the
Boolean flags, and set the flag values internal to that function.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ipa/gsi.c
drivers/net/ipa/gsi.h
drivers/net/ipa/ipa_main.c