X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fnet%2Fibm_newemac%2Fzmii.c;h=17b154124943e5baf89e6640f26643ade28be72c;hb=5423b2ed25993e13009ce39f55d742c3c6d03edb;hp=d06312901848f75b8dcb0b00303e70fcfc9bf2a7;hpb=dcf397f037f52add9945eced57ca300ab6a4413c;p=linux-2.6 diff --git a/drivers/net/ibm_newemac/zmii.c b/drivers/net/ibm_newemac/zmii.c index d063129018..17b1541249 100644 --- a/drivers/net/ibm_newemac/zmii.c +++ b/drivers/net/ibm_newemac/zmii.c @@ -3,6 +3,11 @@ * * Driver for PowerPC 4xx on-chip ethernet controller, ZMII bridge support. * + * Copyright 2007 Benjamin Herrenschmidt, IBM Corp. + * + * + * Based on the arch/ppc version of the driver: + * * Copyright (c) 2004, 2005 Zultys Technologies. * Eugene Surovegin or * @@ -79,16 +84,18 @@ static inline u32 zmii_mode_mask(int mode, int input) int __devinit zmii_attach(struct of_device *ofdev, int input, int *mode) { struct zmii_instance *dev = dev_get_drvdata(&ofdev->dev); - struct zmii_regs *p = dev->base; + struct zmii_regs __iomem *p = dev->base; ZMII_DBG(dev, "init(%d, %d)" NL, input, *mode); - if (!zmii_valid_mode(*mode)) + if (!zmii_valid_mode(*mode)) { /* Probably an EMAC connected to RGMII, * but it still may need ZMII for MDIO so * we don't fail here. */ + dev->users++; return 0; + } mutex_lock(&dev->lock); @@ -182,7 +189,7 @@ void zmii_set_speed(struct of_device *ofdev, int input, int speed) mutex_unlock(&dev->lock); } -void __devexit zmii_detach(struct of_device *ofdev, int input) +void zmii_detach(struct of_device *ofdev, int input) { struct zmii_instance *dev = dev_get_drvdata(&ofdev->dev); @@ -250,7 +257,7 @@ static int __devinit zmii_probe(struct of_device *ofdev, } rc = -ENOMEM; - dev->base = (struct zmii_regs *)ioremap(regs.start, + dev->base = (struct zmii_regs __iomem *)ioremap(regs.start, sizeof(struct zmii_regs)); if (dev->base == NULL) { printk(KERN_ERR "%s: Can't map device registers!\n",