i2c: pasemi: remove hardcoded bus numbers on smbus
authorDarren Stevens <darren@stevens-zone.net>
Sun, 31 Dec 2017 20:53:55 +0000 (20:53 +0000)
committerWolfram Sang <wsa@the-dreams.de>
Mon, 20 Aug 2018 09:01:13 +0000 (11:01 +0200)
The pasemi smbus controller uses PCI_FUNC(dev->devfn) to define which
number bus to attach to, however this fails when something else is
probed first, for example an ATI Radeon graphics card will claim 9 or
10 busses, including the ones the pasemi wants.
Patch the driver to call i2c_add_adapter rather than
i2c_add_numbered_adapter.

Signed-off-by: Darren Stevens <darren@stevens-zone.net>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-pasemi.c

index 55fd5c6..50803e5 100644 (file)
@@ -365,7 +365,6 @@ static int pasemi_smb_probe(struct pci_dev *dev,
        smbus->adapter.class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
        smbus->adapter.algo = &smbus_algorithm;
        smbus->adapter.algo_data = smbus;
-       smbus->adapter.nr = PCI_FUNC(dev->devfn);
 
        /* set up the sysfs linkage to our parent device */
        smbus->adapter.dev.parent = &dev->dev;
@@ -373,7 +372,7 @@ static int pasemi_smb_probe(struct pci_dev *dev,
        reg_write(smbus, REG_CTL, (CTL_MTR | CTL_MRR |
                  (CLK_100K_DIV & CTL_CLK_M)));
 
-       error = i2c_add_numbered_adapter(&smbus->adapter);
+       error = i2c_add_adapter(&smbus->adapter);
        if (error)
                goto out_release_region;