Comment 0 for bug 1991551

Revision history for this message
Asmaa Mnebhi (asmaam) wrote :

SRU Justification:

[Impact]

Several i2c-mlxbf.c patches have been upstreamed recently and are in linux-next at the moment. So revert all changes in both Focal (5.4) and Jammy (5.15) and cherry-pick all changes from linux-next master.

IMPORTANT NOTE: please make sure you also load the latest UEFI (EDK2) firmware because there are dependencies.

[Fix]

* i2c: mlxbf: incorrect base address passed during io write
From <https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=2a5be6d1340c0fefcee8a6489cff7fd88a0d5b85>

* i2c: mlxbf: prevent stack overflow in mlxbf_i2c_smbus_start_transaction()
From <https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=de24aceb07d426b6f1c59f33889d6a964770547b>

* i2c: mlxbf: remove IRQF_ONESHOT
From <https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=92be2c122e495f0249090c0048f4fd05fe1efa9e>

* i2c: mlxbf: Fix frequency calculation
From <https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=37f071ec327b04c83d47637c5e5c2199b39899ca>

* i2c: mlxbf: support lock mechanism
From <https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=86067ccfa1424a26491542d6f6d7546d40b61a10>

* i2c: mlxbf: add multi slave functionality
From <https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=bdc4af281b70b7fe2881fd08f1aa1b15f2b6adf0>

* i2c: mlxbf: support BlueField-3 SoC
From <https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=19e13e1330c63506452eed80f473f344e6779b94>

* i2c: mlxbf: remove device tree support
From <https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=be18c5ede25da39a0eda541f6de3620a30cf731f>

* Also add the i2c driver version to keep track of the changes internally.

[Test Case]

* Check that the i2c driver loads without errors on BF1 and BF2 (dmesg, and check i2c1 sysfs is created)
* Check that the i2c module can be removed and reloaded without errors.
* Check that IPMB services work successfully on systems with BMC. This is the best way to test the i2c driver. Run ipmitool command from the BF: ipmitool mc info
* Run ipmitool from the BMC as well: ipmitool -I ipmb mc info

[Regression Potential]

* The i2c driver could fail to load because the UEFI firmware hasn't been upgraded
* The i2c driver would fail to load due to a bug
* IPMB code which utilises the i2c driver fails to work (ipmitool commands)