]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
i2c: i801: Use a different adapter-name for IDF adapters
authorHans de Goede <hdegoede@redhat.com>
Mon, 12 Aug 2024 20:39:48 +0000 (22:39 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 17 Oct 2024 13:11:51 +0000 (15:11 +0200)
[ Upstream commit 43457ada98c824f310adb7bd96bd5f2fcd9a3279 ]

On chipsets with a second 'Integrated Device Function' SMBus controller use
a different adapter-name for the second IDF adapter.

This allows platform glue code which is looking for the primary i801
adapter to manually instantiate i2c_clients on to differentiate
between the 2.

This allows such code to find the primary i801 adapter by name, without
needing to duplicate the PCI-ids to feature-flags mapping from i2c-i801.c.

Reviewed-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/i2c/busses/i2c-i801.c

index 758bbb13b8be32b4cb42f7ec893849d800b879b5..e983ad07c4951bc12da5d7a3c6c5e334dae48a0b 100644 (file)
@@ -1851,8 +1851,15 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
 
        i801_add_tco(priv);
 
+       /*
+        * adapter.name is used by platform code to find the main I801 adapter
+        * to instantiante i2c_clients, do not change.
+        */
        snprintf(priv->adapter.name, sizeof(priv->adapter.name),
-               "SMBus I801 adapter at %04lx", priv->smba);
+                "SMBus %s adapter at %04lx",
+                (priv->features & FEATURE_IDF) ? "I801 IDF" : "I801",
+                priv->smba);
+
        err = i2c_add_adapter(&priv->adapter);
        if (err) {
                platform_device_unregister(priv->tco_pdev);