platform: mellanox: Split logic in init and exit flow
authorVadim Pasternak <vadimp@nvidia.com>
Wed, 8 Feb 2023 06:33:24 +0000 (08:33 +0200)
committerHans de Goede <hdegoede@redhat.com>
Mon, 13 Feb 2023 11:07:49 +0000 (12:07 +0100)
commit158cd83207768abdba86e408fed3169bb3ad3e9f
tree289b4e9bf03748806fdd8505f86bf4d25ff9d367
parent0170f616f496fcaf25dde0fea042880d4af3089a
platform: mellanox: Split logic in init and exit flow

Split logic in mlxplat_init()/mlxplat_exit() routines.
Separate initialization of I2C infrastructure and others platform
drivers.

Motivation is to provide synchronization between I2C bus and mux
drivers and other drivers using this infrastructure.
I2C main bus and MUX busses are implemented in FPGA logic. On some new
systems the numbers allocated for these busses could be variable
depending on order of initialization of I2C native busses. Since bus
numbers are passed to some other platform drivers during initialization
flow, it is necessary to synchronize completion of I2C infrastructure
drivers and activation of rest of drivers.

Thus initialization flow will be performed in synchronized order.

Signed-off-by: Vadim Pasternak <vadimp@nvidia.com>
Reviewed-by: Michael Shych <michaelsh@nvidia.com>
Link: https://lore.kernel.org/r/20230208063331.15560-8-vadimp@nvidia.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/mlx-platform.c