Tested-by: Emil Medve <[EMAIL PROTECTED]>
> -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Nicu Ioan Petru > Sent: Friday, December 21, 2007 7:57 AM > To: netdev@vger.kernel.org > Cc: Nicu Ioan Petru > Subject: [PATCH 1/2] ucc_geth: split ucc_geth into two modules > > Split ucc_geth_driver into 2 modules: > - one module for the mii bus (phy devices register to this bus). > - one module for the ethernet driver (uses phy_connect > to get a phydev from the mii bus) > > Updated Makefile, Kconfig files and defconfigs (mpc836x, > mpc832x_mds, mpc832x_rdb). > > Signed-off-by: Ionut Nicu <[EMAIL PROTECTED]> > --- > arch/powerpc/configs/mpc832x_mds_defconfig | 1 + > arch/powerpc/configs/mpc832x_rdb_defconfig | 1 + > arch/powerpc/configs/mpc836x_mds_defconfig | 1 + > drivers/net/Kconfig | 8 ++++++++ > drivers/net/Makefile | 5 ++++- > drivers/net/ucc_geth.c | 18 +++++------------- > drivers/net/ucc_geth_mii.c | 9 +++++++++ > 7 files changed, 29 insertions(+), 14 deletions(-) > > diff --git a/arch/powerpc/configs/mpc832x_mds_defconfig > b/arch/powerpc/configs/mpc832x_mds_defconfig > index 2d8951b..1c51739 100644 > --- a/arch/powerpc/configs/mpc832x_mds_defconfig > +++ b/arch/powerpc/configs/mpc832x_mds_defconfig > @@ -500,6 +500,7 @@ CONFIG_NETDEV_1000=y > # CONFIG_TIGON3 is not set > # CONFIG_BNX2 is not set > # CONFIG_GIANFAR is not set > +CONFIG_UCC_MDIO=y > CONFIG_UCC_GETH=y > # CONFIG_UGETH_NAPI is not set > # CONFIG_UGETH_MAGIC_PACKET is not set > diff --git a/arch/powerpc/configs/mpc832x_rdb_defconfig > b/arch/powerpc/configs/mpc832x_rdb_defconfig > index 761718a..cb4d076 100644 > --- a/arch/powerpc/configs/mpc832x_rdb_defconfig > +++ b/arch/powerpc/configs/mpc832x_rdb_defconfig > @@ -503,6 +503,7 @@ CONFIG_E1000=y > # CONFIG_TIGON3 is not set > # CONFIG_BNX2 is not set > # CONFIG_GIANFAR is not set > +CONFIG_UCC_MDIO=y > CONFIG_UCC_GETH=y > CONFIG_UGETH_NAPI=y > # CONFIG_UGETH_MAGIC_PACKET is not set > diff --git a/arch/powerpc/configs/mpc836x_mds_defconfig > b/arch/powerpc/configs/mpc836x_mds_defconfig > index c44fc56..92166e9 100644 > --- a/arch/powerpc/configs/mpc836x_mds_defconfig > +++ b/arch/powerpc/configs/mpc836x_mds_defconfig > @@ -499,6 +499,7 @@ CONFIG_NETDEV_1000=y > # CONFIG_TIGON3 is not set > # CONFIG_BNX2 is not set > # CONFIG_GIANFAR is not set > +CONFIG_UCC_MDIO=y > CONFIG_UCC_GETH=y > # CONFIG_UGETH_NAPI is not set > # CONFIG_UGETH_MAGIC_PACKET is not set > diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig > index d9107e5..7314802 100644 > --- a/drivers/net/Kconfig > +++ b/drivers/net/Kconfig > @@ -2315,9 +2315,17 @@ config GFAR_NAPI > bool "Use Rx Polling (NAPI)" > depends on GIANFAR > > +config UCC_MDIO > + tristate "Freescale QE UCC MDIO Bus" > + depends on QUICC_ENGINE > + select PHYLIB > + help > + Provides Bus interface for MII Management regs in the > UCC register space. > + > config UCC_GETH > tristate "Freescale QE Gigabit Ethernet" > depends on QUICC_ENGINE > + select UCC_MDIO > select PHYLIB > help > This driver supports the Gigabit Ethernet mode of the > QUICC Engine, > diff --git a/drivers/net/Makefile b/drivers/net/Makefile > index 0e5fde4..97843a3 100644 > --- a/drivers/net/Makefile > +++ b/drivers/net/Makefile > @@ -22,8 +22,11 @@ gianfar_driver-objs := gianfar.o \ > gianfar_mii.o \ > gianfar_sysfs.o > > +obj-$(CONFIG_UCC_MDIO) += ucc_geth_mdio.o > +ucc_geth_mdio-objs := ucc_geth_mii.o > + > obj-$(CONFIG_UCC_GETH) += ucc_geth_driver.o > -ucc_geth_driver-objs := ucc_geth.o ucc_geth_mii.o ucc_geth_ethtool.o > +ucc_geth_driver-objs := ucc_geth.o ucc_geth_ethtool.o > > # > # link order important here > diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c > index c6a1902..c33a4cb 100644 > --- a/drivers/net/ucc_geth.c > +++ b/drivers/net/ucc_geth.c > @@ -1612,9 +1612,12 @@ static int init_phy(struct net_device *dev) > priv->oldspeed = 0; > priv->oldduplex = -1; > > + request_module("ucc_geth_mdio"); > + > snprintf(phy_id, BUS_ID_SIZE, PHY_ID_FMT, > priv->ug_info->mdio_bus, > priv->ug_info->phy_address); > > + > phydev = phy_connect(dev, phy_id, &adjust_link, 0, > priv->phy_interface); > > if (IS_ERR(phydev)) { > @@ -4025,12 +4028,7 @@ static struct of_platform_driver > ucc_geth_driver = { > > static int __init ucc_geth_init(void) > { > - int i, ret; > - > - ret = uec_mdio_init(); > - > - if (ret) > - return ret; > + int i; > > if (netif_msg_drv(&debug)) > printk(KERN_INFO "ucc_geth: " DRV_DESC "\n"); > @@ -4038,18 +4036,12 @@ static int __init ucc_geth_init(void) > memcpy(&(ugeth_info[i]), &ugeth_primary_info, > sizeof(ugeth_primary_info)); > > - ret = of_register_platform_driver(&ucc_geth_driver); > - > - if (ret) > - uec_mdio_exit(); > - > - return ret; > + return of_register_platform_driver(&ucc_geth_driver); > } > > static void __exit ucc_geth_exit(void) > { > of_unregister_platform_driver(&ucc_geth_driver); > - uec_mdio_exit(); > } > > module_init(ucc_geth_init); > diff --git a/drivers/net/ucc_geth_mii.c b/drivers/net/ucc_geth_mii.c > index df884f0..a3af4ea 100644 > --- a/drivers/net/ucc_geth_mii.c > +++ b/drivers/net/ucc_geth_mii.c > @@ -17,6 +17,7 @@ > */ > > #include <linux/kernel.h> > +#include <linux/module.h> > #include <linux/sched.h> > #include <linux/string.h> > #include <linux/errno.h> > @@ -276,3 +277,11 @@ void uec_mdio_exit(void) > { > of_unregister_platform_driver(&uec_mdio_driver); > } > + > +module_init(uec_mdio_init); > +module_exit(uec_mdio_exit); > + > +MODULE_AUTHOR("Freescale Semiconductor, Inc"); > +MODULE_DESCRIPTION("QE UCC MDIO Bus Implementation"); > +MODULE_VERSION("1.0"); > +MODULE_LICENSE("GPL"); > -- > 1.5.4.rc0 > > -- > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to [EMAIL PROTECTED] > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html