浏览代码

tc35815: Use irq number for tc35815-mac platform device id

The tc35815-mac platform device used a pci bus number and a devfn to
identify its target device, but the pci bus number may vary if some
bus-bridges are found.  Use irq number which is be unique for embedded
controllers.

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Atsushi Nemoto 17 年之前
父节点
当前提交
06675e6f4f
共有 2 个文件被更改,包括 3 次插入3 次删除
  1. 2 2
      arch/mips/tx4938/toshiba_rbtx4938/setup.c
  2. 1 1
      drivers/net/tc35815.c

+ 2 - 2
arch/mips/tx4938/toshiba_rbtx4938/setup.c

@@ -598,8 +598,8 @@ static int __init rbtx4938_ethaddr_init(void)
 			printk(KERN_WARNING "seeprom: bad checksum.\n");
 			printk(KERN_WARNING "seeprom: bad checksum.\n");
 	}
 	}
 	for (i = 0; i < 2; i++) {
 	for (i = 0; i < 2; i++) {
-		unsigned int slot = TX4938_PCIC_IDSEL_AD_TO_SLOT(31 - i);
-		unsigned int id = (1 << 8) | PCI_DEVFN(slot, 0); /* bus 1 */
+		unsigned int id =
+			TXX9_IRQ_BASE + (i ? TX4938_IR_ETH1 : TX4938_IR_ETH0);
 		struct platform_device *pdev;
 		struct platform_device *pdev;
 		if (!(tx4938_ccfgptr->pcfg &
 		if (!(tx4938_ccfgptr->pcfg &
 		      (i ? TX4938_PCFG_ETH1_SEL : TX4938_PCFG_ETH0_SEL)))
 		      (i ? TX4938_PCFG_ETH1_SEL : TX4938_PCFG_ETH0_SEL)))

+ 1 - 1
drivers/net/tc35815.c

@@ -611,7 +611,7 @@ static int __devinit tc35815_mac_match(struct device *dev, void *data)
 {
 {
 	struct platform_device *plat_dev = to_platform_device(dev);
 	struct platform_device *plat_dev = to_platform_device(dev);
 	struct pci_dev *pci_dev = data;
 	struct pci_dev *pci_dev = data;
-	unsigned int id = (pci_dev->bus->number << 8) | pci_dev->devfn;
+	unsigned int id = pci_dev->irq;
 	return !strcmp(plat_dev->name, "tc35815-mac") && plat_dev->id == id;
 	return !strcmp(plat_dev->name, "tc35815-mac") && plat_dev->id == id;
 }
 }