Rather than having the bus names be "i2c-designware-pci--1" because we have set the .bus_num to -1 to force dynamic allocation, lets have the busses named "i2c-designware-pci-0" and "i2c-designware-pci-1" to correspond to the correct names of these busses. The adapter number will still be dynamically assigned. Signed-off-by: Benson Leung <bleung@xxxxxxxxxxxx> --- v2: Fixed warning. v1: Initial --- drivers/i2c/busses/i2c-designware-pcidrv.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/i2c/busses/i2c-designware-pcidrv.c b/drivers/i2c/busses/i2c-designware-pcidrv.c index 816cbd1..0c6771d 100644 --- a/drivers/i2c/busses/i2c-designware-pcidrv.c +++ b/drivers/i2c/busses/i2c-designware-pcidrv.c @@ -229,7 +229,7 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev, { struct dw_i2c_dev *dev; struct i2c_adapter *adap; - int r; + int r, adapter_num; struct dw_pci_controller *controller; if (id->driver_data >= ARRAY_SIZE(dw_pci_controllers)) { @@ -287,8 +287,18 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev, adap->algo = &i2c_dw_algo; adap->dev.parent = &pdev->dev; adap->nr = controller->bus_num; + + switch (id->driver_data) { + case haswell_0: + case haswell_1: + adapter_num = id->driver_data - haswell_0; + break; + default: + adapter_num = adap->nr; + break; + } snprintf(adap->name, sizeof(adap->name), "i2c-designware-pci-%d", - adap->nr); + adapter_num); r = devm_request_irq(&pdev->dev, pdev->irq, i2c_dw_isr, IRQF_SHARED, adap->name, dev); -- 1.8.3.2 -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html