diff options
author | Vadim Pasternak <vadimp@mellanox.com> | 2018-02-13 22:09:36 +0000 |
---|---|---|
committer | Darren Hart (VMware) <dvhart@infradead.org> | 2018-03-23 16:14:29 -0700 |
commit | ef0f62264b2a9e6fc73476ed22ade1ff1f3ad7f3 (patch) | |
tree | 2cf6987205b838ec7bf503d90ebe89b91198e61c /include/linux | |
parent | f709e1bfb0c643a866b909d101442c7a7f425655 (diff) | |
download | talos-op-linux-ef0f62264b2a9e6fc73476ed22ade1ff1f3ad7f3.tar.gz talos-op-linux-ef0f62264b2a9e6fc73476ed22ade1ff1f3ad7f3.zip |
platform/x86: mlx-platform: Add physical bus number auto detection
mlx-platform does not provide a bus number to i2c-mlxcpld, assuming it
is always one. On some x86 systems, other i2c drivers may probe before
i2c-mlxcpld, causing bus one to be busy.
Make mlx-platform determine which adapter number is free prior to
activating i2c-mlxpld, adjusting the mux base numbers accordingly.
Update the mlxreg-hotplug pdata similarly.
This adds an explicit mlx-platform build dependency on I2C, update the
Kconfig accordingly. Add the missing REGMAP dependency while we're at
it.
Signed-off-by: Vadim Pasternak <vadimp@mellanox.com>
[dvhart: Rewrite commit message more concisely]
[dvhart: Add build dependencies]
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/platform_data/mlxreg.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/platform_data/mlxreg.h b/include/linux/platform_data/mlxreg.h index 262910967476..2744cff1b297 100644 --- a/include/linux/platform_data/mlxreg.h +++ b/include/linux/platform_data/mlxreg.h @@ -130,6 +130,7 @@ struct mlxreg_core_platform_data { * @cell_low: location of low aggregation interrupt register; * @mask_low: low aggregation interrupt common mask; * @deferred_nr: I2C adapter number must be exist prior probing execution; + * @shift_nr: I2C adapter numbers must be incremented by this value; */ struct mlxreg_core_hotplug_platform_data { struct mlxreg_core_item *items; @@ -141,6 +142,7 @@ struct mlxreg_core_hotplug_platform_data { u32 cell_low; u32 mask_low; int deferred_nr; + int shift_nr; }; #endif /* __LINUX_PLATFORM_DATA_MLXREG_H */ |