Remove calls from net drivers to legacy miiphy_register() entry-point
Subsystems (8)
cover Remove calls from net drivers to legacy miiphy_register() entry-point
This is an effort to migrate closer to the phylib approach so that a new DM approach can be developed from a single starting point. The more of this legacy code can be removed, the easier it will be to move forward.
Joe Hershberger (6):
common: Always include errno.h in common.h
scripts: Add a cocci patch for miiphy_register
net: mii: Use spatch to update miiphy_register
net: mii: Changes not made by spatch
net: mii: Fix changes made by spatch
net: mii: Clean up legacy glue that is not used
arch/m68k/include/asm/fec.h | 9 +- arch/mips/mach-au1x00/au1x00_eth.c | 27 ++++-- arch/powerpc/cpu/mpc8260/ether_fcc.c | 13 ++- arch/powerpc/cpu/mpc85xx/ether_fcc.c | 13 ++- arch/powerpc/cpu/mpc8xx/fec.c | 44 ++++++--- arch/powerpc/cpu/ppc4xx/miiphy.c | 11 +-- board/gdsys/405ep/io.c | 13 ++- board/gdsys/405ep/iocon.c | 27 +++++- board/gdsys/405ex/io64.c | 25 ++++- board/gdsys/mpc8308/hrcon.c | 27 +++++- board/gdsys/mpc8308/strider.c | 27 +++++- common/miiphyutil.c | 73 --------------- drivers/net/4xx_enet.c | 20 ++-- drivers/net/armada100_fec.c | 35 ++++--- drivers/net/at91_emac.c | 30 ++++-- drivers/net/bcm-sf2-eth-gmac.c | 18 ++-- drivers/net/bcm-sf2-eth.c | 12 ++- drivers/net/bcm-sf2-eth.h | 8 +- drivers/net/bfin_mac.c | 45 ++++++--- drivers/net/davinci_emac.c | 34 +++++-- drivers/net/eepro100.c | 36 +++++--- drivers/net/enc28j60.c | 28 ++++-- drivers/net/ep93xx_eth.c | 44 ++++++--- drivers/net/fsl_mcdmafec.c | 13 ++- drivers/net/ftmac110.c | 37 +++++--- drivers/net/lpc32xx_eth.c | 54 +++++------ drivers/net/macb.c | 32 +++++-- drivers/net/mcffec.c | 13 ++- drivers/net/mcfmii.c | 19 ++-- drivers/net/mpc512x_fec.c | 34 +++++-- drivers/net/mpc5xxx_fec.c | 34 +++++-- drivers/net/mvgbe.c | 35 +++++-- drivers/net/phy/miiphybb.c | 25 ++--- drivers/net/sh_eth.c | 12 ++- drivers/net/smc911x.c | 35 +++++-- drivers/qe/uec.c | 34 ++++--- include/common.h | 1 + include/miiphy.h | 20 +--- scripts/coccinelle/net/mdio_register.cocci | 142 +++++++++++++++++++++++++++++ 39 files changed, 787 insertions(+), 372 deletions(-) create mode 100644 scripts/coccinelle/net/mdio_register.cocci
Signature · 1 line
1.7.11.5
PATCH 1/6 common: Always include errno.h in common.h
We want people using errnos for errors instead of -1, so make it easy by always including the definition of all the errnos.
---
include/common.h | 1 + 1 file changed, 1 insertion(+)
include/common.h +1 -0
@@ -16,6 +16,7 @@ typedef volatile unsigned short vu_short;typedef volatile unsigned char vu_char ;#include <config.h> +#include <errno.h> #include <asm-offsets.h> #include <linux/bitops.h> #include <linux/types.h>
Signature · 1 line
1.7.11.5
PATCH 1/6 common: Always include errno.h in common.h
Quoted 9 lines · Joe Hershberger
We want people using errnos for errors instead of -1, so make it easy by always including the definition of all the errnos.
Signed-off-by Joe Hershberger <[email protected]>---
include/common.h | 1 + 1 file changed, 1 insertion(+)
[U-Boot] common: Always include errno.h in common.h
In reply to Joe HershbergerPATCH 2/6 scripts: Add a cocci patch for miiphy_register
In reply to Joe HershbergerMany Ethernet drivers still use the legacy miiphy API to register their mdio interface for access to the mdio commands.
This semantic patch will convert the drivers from the legacy adapter API to the more modern alloc/register API.
---
scripts/coccinelle/net/mdio_register.cocci | 142 +++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 scripts/coccinelle/net/mdio_register.cocci
scripts/coccinelle/net/mdio_register.cocci new file +142 -0
@@ -0,0 +1,142 @@ +/// Use mdio_alloc and mdio_register instead of miiphy_register +/// +//# Stop using the oldest mii interface in drivers +// +// Confidence: High +// Copyright: (C) 2016 Joe Hershberger. GPLv2. +// Comments: +// Options: --include-headers --recursive-includes --local-includes -I include + +@ mii_reg @ +expression devname; +identifier readfunc, writefunc; +@@ + ++ int retval; +- miiphy_register(devname, readfunc, writefunc); ++ struct mii_dev *mdiodev = mdio_alloc(); ++ if (!mdiodev) return -ENOMEM; ++ strncpy(mdiodev->name, devname, MDIO_NAME_LEN); ++ mdiodev->read = readfunc; ++ mdiodev->write = writefunc; ++ ++ retval = mdio_register(mdiodev); ++ if (retval < 0) return retval; + +@ update_read_sig @ +identifier mii_reg.readfunc; +identifier name0, addr0, reg0, output; +type addrT, outputT; +@@ + +- readfunc ( +- const char *name0, +- addrT addr0, +- addrT reg0, +- outputT *output +- ) ++ readfunc ( ++ struct mii_dev *bus, ++ int addr0, ++ int devad, ++ int reg0 ++ ) + { + ... + } + +@ update_read_impl @ +identifier mii_reg.readfunc; +identifier update_read_sig.output; +type update_read_sig.outputT; +constant c; +identifier retvar; +expression E; +@@ + + readfunc (...) + { ++ outputT output = 0; + ... +( +- return 0; ++ return *output; +| + return c; +| +- return retvar; ++ if (retvar < 0) ++ return retvar; ++ return *output; +| +- return E; ++ int retval = E; ++ if (retval < 0) ++ return retval; ++ return *output; +) + } + +@ update_read_impl2 @ +identifier mii_reg.readfunc; +identifier update_read_sig.output; +@@ + + readfunc (...) + { + <... +( +- *output ++ output +| +- output ++ &output +) + ...> + } + +@ update_read_name @ +identifier mii_reg.readfunc; +identifier update_read_sig.name0; +@@ + readfunc (...) { + <... +- name0 ++ bus->name + ...> + } + +@ update_write_sig @ +identifier mii_reg.writefunc; +identifier name0, addr0, reg0, value0; +type addrT, valueT; +typedef u16; +@@ + +- writefunc ( +- const char *name0, +- addrT addr0, +- addrT reg0, +- valueT value0 +- ) ++ writefunc ( ++ struct mii_dev *bus, ++ int addr0, ++ int devad, ++ int reg0, ++ u16 value0 ++ ) + { + ... + } + +@ update_write_name @ +identifier mii_reg.writefunc; +identifier update_write_sig.name0; +@@ + writefunc (...) { + <... +- name0 ++ bus->name + ...> + }
Signature · 1 line
1.7.11.5
PATCH 3/6 net: mii: Use spatch to update miiphy_register
In reply to Joe HershbergerRun scripts/coccinelle/net/mdio_register.cocci on the U-Boot code base.
---
arch/mips/mach-au1x00/au1x00_eth.c | 27 +++++++++++++++------- arch/powerpc/cpu/mpc8260/ether_fcc.c | 13 +++++++++-- arch/powerpc/cpu/mpc85xx/ether_fcc.c | 13 +++++++++-- arch/powerpc/cpu/mpc8xx/fec.c | 38 +++++++++++++++++++----------- board/gdsys/405ep/io.c | 13 +++++++++-- board/gdsys/405ep/iocon.c | 27 ++++++++++++++++++---- board/gdsys/405ex/io64.c | 26 +++++++++++++++++---- board/gdsys/mpc8308/hrcon.c | 27 ++++++++++++++++++---- board/gdsys/mpc8308/strider.c | 27 ++++++++++++++++++---- drivers/net/4xx_enet.c | 13 +++++++++-- drivers/net/armada100_fec.c | 35 +++++++++++++++++++--------- drivers/net/at91_emac.c | 30 ++++++++++++++++-------- drivers/net/bfin_mac.c | 24 +++++++++++++++---- drivers/net/davinci_emac.c | 27 ++++++++++++++++++---- drivers/net/eepro100.c | 36 +++++++++++++++++++---------- drivers/net/enc28j60.c | 28 ++++++++++++++++------ drivers/net/ep93xx_eth.c | 45 +++++++++++++++++++++++++----------- drivers/net/fsl_mcdmafec.c | 13 +++++++++-- drivers/net/ftmac110.c | 37 ++++++++++++++++++++--------- drivers/net/lpc32xx_eth.c | 31 ++++++++++++++++++------- drivers/net/macb.c | 32 +++++++++++++++++-------- drivers/net/mcffec.c | 13 +++++++++-- drivers/net/mpc512x_fec.c | 34 ++++++++++++++++++++------- drivers/net/mpc5xxx_fec.c | 34 ++++++++++++++++++++------- drivers/net/mvgbe.c | 35 ++++++++++++++++++++-------- drivers/net/sh_eth.c | 12 +++++++++- drivers/net/smc911x.c | 33 ++++++++++++++++++++------ drivers/qe/uec.c | 34 ++++++++++++++++++--------- 28 files changed, 572 insertions(+), 185 deletions(-)
arch/mips/mach-au1x00/au1x00_eth.c +19 -8
@@ -73,9 +73,10 @@ mac_fifo_t mac_fifo[NO_OF_FIFOS];#define MAX_WAIT 1000#if defined(CONFIG_CMD_MII ) -int au1x00_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short * value) +int au1x00_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg + ) { +unsigned short value =0 ;volatile u32 *mii_control_reg = (volatile u32 *)(ETH0_BASE +MAC_MII_CNTRL );volatile u32 *mii_data_reg = (volatile u32 *)(ETH0_BASE +MAC_MII_DATA );u32 mii_control;
@@ -102,12 +103,13 @@ int au1x00_miiphy_read(const char *devname, unsigned char addr,return -1 ; } } - *value = *mii_data_reg; -return 0 ; + value = *mii_data_reg; +return value; } -int au1x00_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value) +int au1x00_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value + ) {volatile u32 *mii_control_reg = (volatile u32 *)(ETH0_BASE +MAC_MII_CNTRL );volatile u32 *mii_data_reg = (volatile u32 *)(ETH0_BASE +MAC_MII_DATA );
@@ -290,8 +292,17 @@ int au1x00_enet_initialize(bd_t *bis){eth_register (dev);#if defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, - au1x00_miiphy_read, au1x00_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = au1x00_miiphy_read; + mdiodev->write = au1x00_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif return 1 ;
arch/powerpc/cpu/mpc8260/ether_fcc.c +11 -2
@@ -379,8 +379,17 @@ int fec_initialize(bd_t *bis)#if (defined(CONFIG_MII ) || defined(CONFIG_CMD_MII )) \ && defined(CONFIG_BITBANGMII ) -miiphy_register (dev->name, - bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif }
arch/powerpc/cpu/mpc85xx/ether_fcc.c +11 -2
@@ -441,8 +441,17 @@ int fec_initialize(bd_t *bis)#if (defined(CONFIG_MII ) || defined(CONFIG_CMD_MII )) \ && defined(CONFIG_BITBANGMII ) -miiphy_register (dev->name, - bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif }
arch/powerpc/cpu/mpc8xx/fec.c +25 -13
@@ -47,10 +47,11 @@ DECLARE_GLOBAL_DATA_PTR;static int mii_discover_phy (struct eth_device *dev);#endif -int fec8xx_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value); -int fec8xx_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value); +int fec8xx_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg + ); +int fec8xx_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value + ); static struct ether_fcc_info_s {
@@ -170,8 +171,17 @@ int fec_initialize(bd_t *bis)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, - fec8xx_miiphy_read, fec8xx_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = fec8xx_miiphy_read; + mdiodev->write = fec8xx_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif }return 1 ;
@@ -894,9 +904,10 @@ void mii_init (void)* Otherwise they hang in mii_send() !!! Sorry! *****************************************************************************/ -int fec8xx_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value) +int fec8xx_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg + ) { +unsigned short value =0 ;short rdreg;/* register working value */ #ifdef MII_DEBUG
@@ -904,15 +915,16 @@ int fec8xx_miiphy_read(const char *devname, unsigned char addr,#endif rdreg =mii_send (mk_mii_read (addr, reg)); - *value = rdreg; + value = rdreg;#ifdef MII_DEBUG -printf ("0x%04x\n" , *value); +printf ("0x%04x\n" , value);#endif -return 0 ; +return value; } -int fec8xx_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value) +int fec8xx_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value + ) {#ifdef MII_DEBUG printf ("miiphy_write(0x%x) @ 0x%x = " , reg, addr);
board/gdsys/405ep/io.c +11 -2
@@ -172,8 +172,17 @@ int last_stage_init(void)print_fpga_info (); -miiphy_register (CONFIG_SYS_GBIT_MII_BUSNAME , - bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name,CONFIG_SYS_GBIT_MII_BUSNAME ,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;for (k =0 ; k <32 ; ++k)configure_gbit_phy (k);
board/gdsys/405ep/iocon.c +23 -4
@@ -405,8 +405,17 @@ int last_stage_init(void) }if (!legacy && (feature_carrier_speed ==CARRIER_SPEED_1G )) { -miiphy_register (bb_miiphy_buses[0 ].name, bb_miiphy_read, - bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, bb_miiphy_buses[0 ].name,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;for (mux_ch =0 ; mux_ch <MAX_MUX_CHANNELS ; ++mux_ch) {if ((mux_ch ==1 ) && !ch0_rgmii2_present)continue ;
@@ -437,8 +446,18 @@ int last_stage_init(void)print_fpga_info (k, false);osd_probe (k);if (feature_carrier_speed ==CARRIER_SPEED_1G ) { -miiphy_register (bb_miiphy_buses[k].name, - bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, bb_miiphy_buses[k].name, +MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;setup_88e1518 (bb_miiphy_buses[k].name,0 ); } }
board/gdsys/405ex/io64.c +22 -4
@@ -246,8 +246,17 @@ int last_stage_init(void)/* setup Gbit PHYs */ puts ("TRANS: " );puts (str_phys); -miiphy_register (CONFIG_SYS_GBIT_MII_BUSNAME , - bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name,CONFIG_SYS_GBIT_MII_BUSNAME ,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;for (k =0 ; k <32 ; ++k) {configure_gbit_phy (CONFIG_SYS_GBIT_MII_BUSNAME , k);
@@ -255,8 +264,17 @@ int last_stage_init(void)putc (slash[k %8 ]); } -miiphy_register (CONFIG_SYS_GBIT_MII1_BUSNAME , - bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name,CONFIG_SYS_GBIT_MII1_BUSNAME ,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;for (k =0 ; k <32 ; ++k) {configure_gbit_phy (CONFIG_SYS_GBIT_MII1_BUSNAME , k);
board/gdsys/mpc8308/hrcon.c +23 -4
@@ -162,8 +162,17 @@ int last_stage_init(void) }if (hw_type_cat) { -miiphy_register (bb_miiphy_buses[0 ].name, bb_miiphy_read, - bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, bb_miiphy_buses[0 ].name,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;for (mux_ch =0 ; mux_ch <MAX_MUX_CHANNELS ; ++mux_ch) {if ((mux_ch ==1 ) && !ch0_rgmii2_present)continue ;
@@ -199,8 +208,18 @@ int last_stage_init(void)osd_probe (k +4 );#endif if (hw_type_cat) { -miiphy_register (bb_miiphy_buses[k].name, - bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, bb_miiphy_buses[k].name, +MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;setup_88e1514 (bb_miiphy_buses[k].name,0 ); } }
board/gdsys/mpc8308/strider.c +23 -4
@@ -175,8 +175,17 @@ int last_stage_init(void) }if (hw_type_cat) { -miiphy_register (bb_miiphy_buses[0 ].name, bb_miiphy_read, - bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, bb_miiphy_buses[0 ].name,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;for (mux_ch =0 ; mux_ch <MAX_MUX_CHANNELS ; ++mux_ch) {if ((mux_ch ==1 ) && !ch0_sgmii2_present)continue ;
@@ -233,8 +242,18 @@ int last_stage_init(void)dp501_probe (k, false);#endif if (hw_type_cat) { -miiphy_register (bb_miiphy_buses[k].name, - bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, bb_miiphy_buses[k].name, +MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;setup_88e1514 (bb_miiphy_buses[k].name,0 ); } }
drivers/net/4xx_enet.c +11 -2
@@ -2015,8 +2015,17 @@ int ppc_4xx_eth_initialize (bd_t * bis)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, - emac4xx_miiphy_read, emac4xx_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = emac4xx_miiphy_read; + mdiodev->write = emac4xx_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif if (0 == virgin) {
drivers/net/armada100_fec.c +24 -11
@@ -57,18 +57,20 @@ static int armdfec_phy_timeout(u32 *reg, u32 flag, int cond)return !timeout; } -static int smi_reg_read (const char *devname,u8 phy_addr,u8 phy_reg, -u16 *value) +static int smi_reg_read (struct mii_dev *bus,int phy_addr,int devad, +int phy_reg + ) { -struct eth_device *dev =eth_get_dev_by_name (devname); +u16 value =0 ; +struct eth_device *dev =eth_get_dev_by_name (bus->name);struct armdfec_device *darmdfec =to_darmdfec (dev);struct armdfec_reg *regs = darmdfec->regs;u32 val;if (phy_addr ==PHY_ADR_REQ && phy_reg ==PHY_ADR_REQ ) { val =readl (®s->phyadr); - *value = val &0x1f ; -return 0 ; + value = val &0x1f ; +return value; }/* check parameters */
@@ -99,15 +101,16 @@ static int smi_reg_read(const char *devname, u8 phy_addr, u8 phy_reg,return -1 ; } val =readl (®s->smi); - *value = val &0xffff ; + value = val &0xffff ; -return 0 ; +return value; } -static int smi_reg_write (const char *devname, -u8 phy_addr,u8 phy_reg,u16 value) +static int smi_reg_write (struct mii_dev *bus,int phy_addr,int devad, +int phy_reg,u16 value + ) { -struct eth_device *dev =eth_get_dev_by_name (devname); +struct eth_device *dev =eth_get_dev_by_name (bus->name);struct armdfec_device *darmdfec =to_darmdfec (dev);struct armdfec_reg *regs = darmdfec->regs;
@@ -711,7 +714,17 @@ int armada100_fec_register(unsigned long base_addr)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, smi_reg_read, smi_reg_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = smi_reg_read; + mdiodev->write = smi_reg_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif return 0 ;
drivers/net/at91_emac.c +21 -9
@@ -159,23 +159,25 @@ at91_emac_t *get_emacbase_by_name(const char *devname)return (at91_emac_t *) netdev->iobase; } -int at91emac_mii_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value) +int at91emac_mii_read (struct mii_dev *bus,int addr,int devad,int reg + ) { +unsigned short value =0 ;at91_emac_t *emac; - emac =get_emacbase_by_name (devname); -at91emac_read (emac , addr, reg, value); -return 0 ; + emac =get_emacbase_by_name (bus->name); +at91emac_read (emac , addr, reg, &value); +return value; } -int at91emac_mii_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value) +int at91emac_mii_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value + ) {at91_emac_t *emac; - emac =get_emacbase_by_name (devname); + emac =get_emacbase_by_name (bus->name);at91emac_write (emac, addr, reg, value);return 0 ; }
@@ -502,7 +504,17 @@ int at91emac_register(bd_t *bis, unsigned long iobase)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, at91emac_mii_read, at91emac_mii_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = at91emac_mii_read; + mdiodev->write = at91emac_mii_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif return 1 ; }
drivers/net/bfin_mac.c +19 -5
@@ -72,18 +72,22 @@ static int bfin_miiphy_wait(void)return 0 ; } -static int bfin_miiphy_read (const char *devname,uchar addr,uchar reg,ushort *val) +static int bfin_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg + ) { +ushort val =0 ;if (bfin_miiphy_wait ())return 1 ;bfin_write_EMAC_STAADD (SET_PHYAD (addr) |SET_REGAD (reg) |STABUSY );if (bfin_miiphy_wait ())return 1 ; - *val =bfin_read_EMAC_STADAT (); -return 0 ; + val =bfin_read_EMAC_STADAT (); +return val; } -static int bfin_miiphy_write (const char *devname,uchar addr,uchar reg,ushort val) +static int bfin_miiphy_write (struct mii_dev *bus,int addr,int devad, +int reg,u16 val + ) {if (bfin_miiphy_wait ())return 1 ;
@@ -113,7 +117,17 @@ int bfin_EMAC_initialize(bd_t *bis)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, bfin_miiphy_read, bfin_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = bfin_miiphy_read; + mdiodev->write = bfin_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif return 0 ;
drivers/net/davinci_emac.c +22 -5
@@ -390,12 +390,20 @@ static int gen_auto_negotiate(int phy_addr)#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -static int davinci_mii_phy_read (const char *devname,unsigned char addr,unsigned char reg,unsigned short *value) +static int davinci_mii_phy_read (struct mii_dev *bus,int addr,int devad, +int reg + ) { -return (davinci_eth_phy_read (addr, reg, value) ?0 :1 ); +unsigned short value =0 ; +int retval = (davinci_eth_phy_read (addr, reg, &value) ?0 :1 ); +if (retval <0 ) +return retval; +return value; } -static int davinci_mii_phy_write (const char *devname,unsigned char addr,unsigned char reg,unsigned short value) +static int davinci_mii_phy_write (struct mii_dev *bus,int addr,int devad, +int reg,u16 value + ) {return (davinci_eth_phy_write (addr, reg, value) ?0 :1 ); }
@@ -883,8 +891,17 @@ int davinci_emac_initialize(void)debug ("Ethernet PHY: %s\n" , phy[i].name); -miiphy_register (phy[i].name, davinci_mii_phy_read, - davinci_mii_phy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, phy[i].name,MDIO_NAME_LEN ); + mdiodev->read = davinci_mii_phy_read; + mdiodev->write = davinci_mii_phy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval; } #if defined(CONFIG_DRIVER_TI_EMAC_USE_RMII) && \
drivers/net/eepro100.c +24 -12
@@ -334,34 +334,37 @@ static struct eth_device* verify_phyaddr (const char *devname,return dev; } -static int eepro100_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value) +static int eepro100_miiphy_read (struct mii_dev *bus,int addr,int devad, +int reg + ) { +unsigned short value =0 ;struct eth_device *dev; - dev =verify_phyaddr (devname, addr); + dev =verify_phyaddr (bus->name, addr);if (dev ==NULL )return -1 ; -if (get_phyreg (dev, addr, reg, value) !=0 ) { -printf ("%s: mii read timeout!\n" , devname); +if (get_phyreg (dev, addr, reg, &value) !=0 ) { +printf ("%s: mii read timeout!\n" , bus->name);return -1 ; } -return 0 ; +return value; } -static int eepro100_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value) +static int eepro100_miiphy_write (struct mii_dev *bus,int addr,int devad, +int reg,u16 value + ) {struct eth_device *dev; - dev =verify_phyaddr (devname, addr); + dev =verify_phyaddr (bus->name, addr);if (dev ==NULL )return -1 ;if (set_phyreg (dev, addr, reg, value) !=0 ) { -printf ("%s: mii write timeout!\n" , devname); +printf ("%s: mii write timeout!\n" , bus->name);return -1 ; }
@@ -451,8 +454,17 @@ int eepro100_initialize (bd_t * bis)#if defined (CONFIG_MII ) || defined(CONFIG_CMD_MII )/* register mii command access routines */ -miiphy_register (dev->name, - eepro100_miiphy_read, eepro100_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = eepro100_miiphy_read; + mdiodev->write = eepro100_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif card_number++;
drivers/net/enc28j60.c +21 -7
@@ -742,9 +742,11 @@ static int enc_initcheck(enc_dev_t *enc, const enum enc_initstate requiredstate)* * This function is registered with miiphy_register(). */ -int enc_miiphy_read (const char *devname,u8 phy_adr,u8 reg,u16 *value) +int enc_miiphy_read (struct mii_dev *bus,int phy_adr,int devad,int reg + ) { -struct eth_device *dev =eth_get_dev_by_name (devname); +u16 value =0 ; +struct eth_device *dev =eth_get_dev_by_name (bus->name);enc_dev_t *enc;if (!dev || phy_adr !=0 )
@@ -757,9 +759,9 @@ int enc_miiphy_read(const char *devname, u8 phy_adr, u8 reg, u16 *value)enc_release_bus (enc);return -1 ; } - *value =enc_phy_read (enc, reg); + value =enc_phy_read (enc, reg);enc_release_bus (enc); -return 0 ; +return value; }/*
@@ -767,9 +769,11 @@ int enc_miiphy_read(const char *devname, u8 phy_adr, u8 reg, u16 *value)* * This function is registered with miiphy_register(). */ -int enc_miiphy_write (const char *devname,u8 phy_adr,u8 reg,u16 value) +int enc_miiphy_write (struct mii_dev *bus,int phy_adr,int devad,int reg, +u16 value + ) { -struct eth_device *dev =eth_get_dev_by_name (devname); +struct eth_device *dev =eth_get_dev_by_name (bus->name);enc_dev_t *enc;if (!dev || phy_adr !=0 )
@@ -958,7 +962,17 @@ int enc28j60_initialize(unsigned int bus, unsigned int cs,sprintf (dev->name,"enc%i.%i" , bus, cs);eth_register (dev);#if defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, enc_miiphy_read, enc_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = enc_miiphy_read; + mdiodev->write = enc_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif return 0 ; }
drivers/net/ep93xx_eth.c +31 -14
95 lines not on this page · raw message
drivers/net/fsl_mcdmafec.c +11 -2
@@ -556,8 +556,17 @@ int mcdmafec_initialize(bd_t * bis)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, - mcffec_miiphy_read, mcffec_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = mcffec_miiphy_read; + mdiodev->write = mcffec_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif if (i >0 )
drivers/net/ftmac110.c +26 -11
@@ -364,32 +364,37 @@ static int ftmac110_recv(struct eth_device *dev)#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -static int ftmac110_mdio_read ( -const char *devname,uint8_t addr,uint8_t reg,uint16_t *value) +static int ftmac110_mdio_read (struct mii_dev *bus,int addr,int devad, +int reg + ) { +uint16_t value =0 ;int ret =0 ;struct eth_device *dev; - dev =eth_get_dev_by_name (devname); + dev =eth_get_dev_by_name (bus->name);if (dev ==NULL ) { -printf ("%s: no such device\n" , devname); +printf ("%s: no such device\n" , bus->name); ret =-1 ; }else { - *value =mdio_read (dev, addr, reg); + value =mdio_read (dev, addr, reg); } -return ret; +if (ret <0 ) +return ret; +return value; } -static int ftmac110_mdio_write ( -const char *devname,uint8_t addr,uint8_t reg,uint16_t value) +static int ftmac110_mdio_write (struct mii_dev *bus,int addr,int devad, +int reg,u16 value + ) {int ret =0 ;struct eth_device *dev; - dev =eth_get_dev_by_name (devname); + dev =eth_get_dev_by_name (bus->name);if (dev ==NULL ) { -printf ("%s: no such device\n" , devname); +printf ("%s: no such device\n" , bus->name); ret =-1 ; }else {mdio_write (dev, addr, reg, value);
@@ -468,7 +473,17 @@ int ftmac110_initialize(bd_t *bis)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, ftmac110_mdio_read, ftmac110_mdio_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = ftmac110_mdio_read; + mdiodev->write = ftmac110_mdio_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif card_nr++;
drivers/net/lpc32xx_eth.c +23 -8
@@ -226,9 +226,12 @@ DECLARE_GLOBAL_DATA_PTR;* * Returns 16bit phy register value, or 0xffff on error */ -static int mii_reg_read (const char *devname,u8 phy_adr,u8 reg_ofs,u16 *data) +static int mii_reg_read (struct mii_dev *bus,int phy_adr,int devad, +int reg_ofs + ) { -struct eth_device *dev =eth_get_dev_by_name (devname); +u16 data =0 ; +struct eth_device *dev =eth_get_dev_by_name (bus->name);struct lpc32xx_eth_device *dlpc32xx_eth =to_lpc32xx_eth (dev);struct lpc32xx_eth_registers *regs = dlpc32xx_eth->regs;u32 mind_reg;
@@ -270,12 +273,12 @@ static int mii_reg_read(const char *devname, u8 phy_adr, u8 reg_ofs, u16 *data)return -EFAULT ; } - *data = (u16 )readl (®s->mrdd); + data = (u16 )readl (®s->mrdd);debug ("%s:(adr %d, off %d) => %04x\n" , __func__, phy_adr, - reg_ofs, *data); + reg_ofs, data); -return 0 ; +return data; }/*
@@ -284,9 +287,11 @@ static int mii_reg_read(const char *devname, u8 phy_adr, u8 reg_ofs, u16 *data)* Returns 0 if write succeed, -EINVAL on bad parameters * -ETIME on timeout */ -static int mii_reg_write (const char *devname,u8 phy_adr,u8 reg_ofs,u16 data) +static int mii_reg_write (struct mii_dev *bus,int phy_adr,int devad, +int reg_ofs,u16 data + ) { -struct eth_device *dev =eth_get_dev_by_name (devname); +struct eth_device *dev =eth_get_dev_by_name (bus->name);struct lpc32xx_eth_device *dlpc32xx_eth =to_lpc32xx_eth (dev);struct lpc32xx_eth_registers *regs = dlpc32xx_eth->regs;u32 mind_reg;
@@ -645,7 +650,17 @@ int lpc32xx_eth_initialize(bd_t *bis)#if defined(CONFIG_PHYLIB )lpc32xx_eth_phylib_init (dev,CONFIG_PHY_ADDR );#elif defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, mii_reg_read, mii_reg_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = mii_reg_read; + mdiodev->write = mii_reg_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif return 0 ;
drivers/net/macb.c +23 -9
@@ -190,29 +190,33 @@ void __weak arch_get_mdio_control(const char *name)#if defined(CONFIG_CMD_MII ) || defined(CONFIG_PHYLIB ) -int macb_miiphy_read (const char *devname,u8 phy_adr,u8 reg,u16 *value) +int macb_miiphy_read (struct mii_dev *bus,int phy_adr,int devad,int reg + ) { -struct eth_device *dev =eth_get_dev_by_name (devname); +u16 value =0 ; +struct eth_device *dev =eth_get_dev_by_name (bus->name);struct macb_device *macb =to_macb (dev);if (macb->phy_addr != phy_adr)return -1 ; -arch_get_mdio_control (devname); - *value =macb_mdio_read (macb, reg); +arch_get_mdio_control (bus->name); + value =macb_mdio_read (macb, reg); -return 0 ; +return value; } -int macb_miiphy_write (const char *devname,u8 phy_adr,u8 reg,u16 value) +int macb_miiphy_write (struct mii_dev *bus,int phy_adr,int devad,int reg, +u16 value + ) { -struct eth_device *dev =eth_get_dev_by_name (devname); +struct eth_device *dev =eth_get_dev_by_name (bus->name);struct macb_device *macb =to_macb (dev);if (macb->phy_addr != phy_adr)return -1 ; -arch_get_mdio_control (devname); +arch_get_mdio_control (bus->name);macb_mdio_write (macb, reg, value);return 0 ;
@@ -795,7 +799,17 @@ int macb_eth_initialize(int id, void *regs, unsigned int phy_addr)eth_register (netdev);#if defined(CONFIG_CMD_MII ) || defined(CONFIG_PHYLIB ) -miiphy_register (netdev->name, macb_miiphy_read, macb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, netdev->name,MDIO_NAME_LEN ); + mdiodev->read = macb_miiphy_read; + mdiodev->write = macb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval; macb->bus =miiphy_get_dev_by_name (netdev->name);#endif return 0 ;
drivers/net/mcffec.c +11 -2
@@ -595,8 +595,17 @@ int mcffec_initialize(bd_t * bis)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, - mcffec_miiphy_read, mcffec_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = mcffec_miiphy_read; + mdiodev->write = mcffec_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif if (i >0 ) fec_info[i -1 ].next = &fec_info[i];
drivers/net/mpc512x_fec.c +26 -8
@@ -22,8 +22,12 @@ DECLARE_GLOBAL_DATA_PTR;#error "CONFIG_MII has to be defined!"#endif -int fec512x_miiphy_read (const char *devname,u8 phyAddr,u8 regAddr,u16 * retVal); -int fec512x_miiphy_write (const char *devname,u8 phyAddr,u8 regAddr,u16 data); +int fec512x_miiphy_read (struct mii_dev *bus,int phyAddr,int devad, +int regAddr + ); +int fec512x_miiphy_write (struct mii_dev *bus,int phyAddr,int devad, +int regAddr,u16 data + );int mpc512x_fec_init_phy (struct eth_device *dev,bd_t * bis);static uchar rx_buff[FEC_BUFFER_SIZE ];
@@ -639,8 +643,17 @@ int mpc512x_fec_initialize (bd_t * bis)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, - fec512x_miiphy_read, fec512x_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = fec512x_miiphy_read; + mdiodev->write = fec512x_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif /* Clean up space FEC's MIB and FIFO RAM ...*/
@@ -670,8 +683,11 @@ int mpc512x_fec_initialize (bd_t * bis)/* MII-interface related functions */ /********************************************************************/ -int fec512x_miiphy_read (const char *devname,u8 phyAddr,u8 regAddr,u16 *retVal) +int fec512x_miiphy_read (struct mii_dev *bus,int phyAddr,int devad, +int regAddr + ) { +u16 retVal =0 ;volatile immap_t *im = (immap_t *)CONFIG_SYS_IMMR ;volatile fec512x_t *eth = &im->fec;u32 reg;/* convenient holder for the PHY register */
@@ -711,13 +727,15 @@ int fec512x_miiphy_read(const char *devname, u8 phyAddr, u8 regAddr, u16 *retVal/* * it's now safe to read the PHY's register */ - *retVal = (u16 )in_be32 (ð->mii_data); + retVal = (u16 )in_be32 (ð->mii_data); -return 0 ; +return retVal; }/********************************************************************/ -int fec512x_miiphy_write (const char *devname,u8 phyAddr,u8 regAddr,u16 data) +int fec512x_miiphy_write (struct mii_dev *bus,int phyAddr,int devad, +int regAddr,u16 data + ) {volatile immap_t *im = (immap_t *)CONFIG_SYS_IMMR ;volatile fec512x_t *eth = &im->fec;
drivers/net/mpc5xxx_fec.c +26 -8
@@ -35,8 +35,12 @@ typedef struct {uint8 head[16 ];/* MAC header(6 + 6 + 2) + 2(aligned) */ }NBUF ; -int fec5xxx_miiphy_read (const char *devname,uint8 phyAddr,uint8 regAddr,uint16 *retVal); -int fec5xxx_miiphy_write (const char *devname,uint8 phyAddr,uint8 regAddr,uint16 data); +int fec5xxx_miiphy_read (struct mii_dev *bus,int phyAddr,int devad, +int regAddr + ); +int fec5xxx_miiphy_write (struct mii_dev *bus,int phyAddr,int devad, +int regAddr,u16 data + );static int mpc5xxx_fec_init_phy (struct eth_device *dev,bd_t * bis);
@@ -917,8 +921,17 @@ int mpc5xxx_fec_initialize(bd_t * bis)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, - fec5xxx_miiphy_read, fec5xxx_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = fec5xxx_miiphy_read; + mdiodev->write = fec5xxx_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif /*
@@ -941,8 +954,11 @@ int mpc5xxx_fec_initialize(bd_t * bis)/* MII-interface related functions */ /********************************************************************/ -int fec5xxx_miiphy_read (const char *devname,uint8 phyAddr,uint8 regAddr,uint16 * retVal) +int fec5xxx_miiphy_read (struct mii_dev *bus,int phyAddr,int devad, +int regAddr + ) { +uint16 retVal =0 ;ethernet_regs *eth = (ethernet_regs *)MPC5XXX_FEC ;uint32 reg;/* convenient holder for the PHY register */ uint32 phy;/* convenient holder for the PHY */
@@ -977,13 +993,15 @@ int fec5xxx_miiphy_read(const char *devname, uint8 phyAddr, uint8 regAddr, uint1/* * it's now safe to read the PHY's register */ - *retVal = (uint16 ) eth->mii_data; + retVal = (uint16 ) eth->mii_data; -return 0 ; +return retVal; }/********************************************************************/ -int fec5xxx_miiphy_write (const char *devname,uint8 phyAddr,uint8 regAddr,uint16 data) +int fec5xxx_miiphy_write (struct mii_dev *bus,int phyAddr,int devad, +int regAddr,u16 data + ) {ethernet_regs *eth = (ethernet_regs *)MPC5XXX_FEC ;uint32 reg;/* convenient holder for the PHY register */
drivers/net/mvgbe.c +25 -10
@@ -48,9 +48,12 @@ DECLARE_GLOBAL_DATA_PTR;* * Returns 16bit phy register value, or 0xffff on error */ -static int smi_reg_read (const char *devname,u8 phy_adr,u8 reg_ofs,u16 * data) +static int smi_reg_read (struct mii_dev *bus,int phy_adr,int devad, +int reg_ofs + ) { -struct eth_device *dev =eth_get_dev_by_name (devname); +u16 data =0 ; +struct eth_device *dev =eth_get_dev_by_name (bus->name);struct mvgbe_device *dmvgbe =to_mvgbe (dev);struct mvgbe_registers *regs = dmvgbe->regs;u32 smi_reg;
@@ -60,8 +63,8 @@ static int smi_reg_read(const char *devname, u8 phy_adr, u8 reg_ofs, u16 * data)if (phy_adr ==MV_PHY_ADR_REQUEST && reg_ofs ==MV_PHY_ADR_REQUEST ) {/* */ - *data = (u16) (MVGBE_REG_RD (regs->phyadr) &PHYADR_MASK ); -return 0 ; + data = (u16) (MVGBE_REG_RD (regs->phyadr) &PHYADR_MASK ); +return data; }/* check parameters */ if (phy_adr >PHYADR_MASK ) {
@@ -111,12 +114,12 @@ static int smi_reg_read(const char *devname, u8 phy_adr, u8 reg_ofs, u16 * data)for (timeout =0 ; timeout <MVGBE_PHY_SMI_TIMEOUT ; timeout++) ; - *data = (u16) (MVGBE_REG_RD (MVGBE_SMI_REG ) &MVGBE_PHY_SMI_DATA_MASK ); + data = (u16) (MVGBE_REG_RD (MVGBE_SMI_REG ) &MVGBE_PHY_SMI_DATA_MASK );debug ("%s:(adr %d, off %d) value= %04x\n" , __func__, phy_adr, reg_ofs, - *data); + data); -return 0 ; +return data; }/*
@@ -125,9 +128,11 @@ static int smi_reg_read(const char *devname, u8 phy_adr, u8 reg_ofs, u16 * data)* Returns 0 if write succeed, -EINVAL on bad parameters * -ETIME on timeout */ -static int smi_reg_write (const char *devname,u8 phy_adr,u8 reg_ofs,u16 data) +static int smi_reg_write (struct mii_dev *bus,int phy_adr,int devad, +int reg_ofs,u16 data + ) { -struct eth_device *dev =eth_get_dev_by_name (devname); +struct eth_device *dev =eth_get_dev_by_name (bus->name);struct mvgbe_device *dmvgbe =to_mvgbe (dev);struct mvgbe_registers *regs = dmvgbe->regs;u32 smi_reg;
@@ -785,7 +790,17 @@ error1:#if defined(CONFIG_PHYLIB )mvgbe_phylib_init (dev,PHY_BASE_ADR + devnum);#elif defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, smi_reg_read, smi_reg_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = smi_reg_read; + mdiodev->write = smi_reg_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;/* Set phy address of the port */ miiphy_write (dev->name,MV_PHY_ADR_REQUEST ,MV_PHY_ADR_REQUEST ,PHY_BASE_ADR + devnum);
drivers/net/sh_eth.c +11 -1
@@ -566,7 +566,17 @@ int sh_eth_initialize(bd_t *bd)eth_register (dev); bb_miiphy_buses[0 ].priv = eth; -miiphy_register (dev->name, bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;if (!eth_getenv_enetaddr ("ethaddr" , dev->enetaddr))puts ("Please set MAC address\n" );
drivers/net/smc911x.c +26 -7
@@ -219,17 +219,26 @@ static int smc911x_rx(struct eth_device *dev)#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII )/* wrapper for smc911x_eth_phy_read */ -static int smc911x_miiphy_read (const char *devname,u8 phy,u8 reg,u16 *val) +static int smc911x_miiphy_read (struct mii_dev *bus,int phy,int devad, +int reg + ) { -struct eth_device *dev =eth_get_dev_by_name (devname); -if (dev) -return smc911x_eth_phy_read (dev, phy, reg, val); +u16 val =0 ; +struct eth_device *dev =eth_get_dev_by_name (bus->name); +if (dev) { +int retval =smc911x_eth_phy_read (dev, phy, reg, &val); +if (retval <0 ) +return retval; +return val; + }return -1 ; }/* wrapper for smc911x_eth_phy_write */ -static int smc911x_miiphy_write (const char *devname,u8 phy,u8 reg,u16 val) +static int smc911x_miiphy_write (struct mii_dev *bus,int phy,int devad, +int reg,u16 val + ) { -struct eth_device *dev =eth_get_dev_by_name (devname); +struct eth_device *dev =eth_get_dev_by_name (bus->name);if (dev)return smc911x_eth_phy_write (dev, phy, reg, val);return -1 ;
@@ -276,7 +285,17 @@ int smc911x_initialize(u8 dev_num, int base_addr)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, smc911x_miiphy_read, smc911x_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = smc911x_miiphy_read; + mdiodev->write = smc911x_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif return 1 ;
drivers/qe/uec.c +23 -11
@@ -623,20 +623,21 @@ static int uec_miiphy_find_dev_by_name(const char *devname)* Returns: * 0 on success */ -static int uec_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value) +static int uec_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg + ) { +unsigned short value =0 ;int devindex =0 ; -if (devname ==NULL || value ==NULL ) { +if (bus->name ==NULL || &value ==NULL ) {debug ("%s: NULL pointer given\n" , __FUNCTION__); }else { - devindex =uec_miiphy_find_dev_by_name (devname); + devindex =uec_miiphy_find_dev_by_name (bus->name);if (devindex >=0 ) { - *value =uec_read_phy_reg (devlist[devindex], addr, reg); + value =uec_read_phy_reg (devlist[devindex], addr, reg); } } -return 0 ; +return value; }/*
@@ -645,15 +646,16 @@ static int uec_miiphy_read(const char *devname, unsigned char addr,* Returns: * 0 on success */ -static int uec_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value) +static int uec_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value + ) {int devindex =0 ; -if (devname ==NULL ) { +if (bus->name ==NULL ) {debug ("%s: NULL pointer given\n" , __FUNCTION__); }else { - devindex =uec_miiphy_find_dev_by_name (devname); + devindex =uec_miiphy_find_dev_by_name (bus->name);if (devindex >=0 ) {uec_write_phy_reg (devlist[devindex], addr, reg, value); }
@@ -1399,7 +1401,17 @@ int uec_initialize(bd_t *bis, uec_info_t *uec_info) }#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, uec_miiphy_read, uec_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = uec_miiphy_read; + mdiodev->write = uec_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif return 1 ;
Signature · 1 line
1.7.11.5
PATCH 3/6 net: mii: Use spatch to update miiphy_register
Hi Joe,
Quoted 1 line · Joe Hershberger
Run
scripts/coccinelle/net/mdio_register.coccion the U-Boot code base.
Looks we need more manual nits fixes after running the scripts. See below.
Quoted 39 lines
Signed-off-by Joe Hershberger <[email protected]>---
arch/mips/mach-au1x00/au1x00_eth.c | 27 +++++++++++++++------- arch/powerpc/cpu/mpc8260/ether_fcc.c | 13 +++++++++-- arch/powerpc/cpu/mpc85xx/ether_fcc.c | 13 +++++++++-- arch/powerpc/cpu/mpc8xx/fec.c | 38 +++++++++++++++++++----------- board/gdsys/405ep/io.c | 13 +++++++++-- board/gdsys/405ep/iocon.c | 27 ++++++++++++++++++---- board/gdsys/405ex/io64.c | 26 +++++++++++++++++---- board/gdsys/mpc8308/hrcon.c | 27 ++++++++++++++++++---- board/gdsys/mpc8308/strider.c | 27 ++++++++++++++++++---- drivers/net/4xx_enet.c | 13 +++++++++-- drivers/net/armada100_fec.c | 35 +++++++++++++++++++--------- drivers/net/at91_emac.c | 30 ++++++++++++++++-------- drivers/net/bfin_mac.c | 24 +++++++++++++++---- drivers/net/davinci_emac.c | 27 ++++++++++++++++++---- drivers/net/eepro100.c | 36 +++++++++++++++++++---------- drivers/net/enc28j60.c | 28 ++++++++++++++++------ drivers/net/ep93xx_eth.c | 45 +++++++++++++++++++++++++----------- drivers/net/fsl_mcdmafec.c | 13 +++++++++-- drivers/net/ftmac110.c | 37 ++++++++++++++++++++--------- drivers/net/lpc32xx_eth.c | 31 ++++++++++++++++++------- drivers/net/macb.c | 32 +++++++++++++++++-------- drivers/net/mcffec.c | 13 +++++++++-- drivers/net/mpc512x_fec.c | 34 ++++++++++++++++++++------- drivers/net/mpc5xxx_fec.c | 34 ++++++++++++++++++++------- drivers/net/mvgbe.c | 35 ++++++++++++++++++++-------- drivers/net/sh_eth.c | 12 +++++++++- drivers/net/smc911x.c | 33 ++++++++++++++++++++------ drivers/qe/uec.c | 34 ++++++++++++++++++--------- 28 files changed, 572 insertions(+), 185 deletions(-)arch/mips/mach-au1x00/au1x00_eth.c +0
-0
arch/mips/mach-au1x00/au1x00_eth.c mac_fifo_t mac_fifo[NO_OF_FIFOS]; · line 77
Quoted 7 lines
arch/mips/mach-au1x00/au1x00_eth.c +2
-2@@ -73,9 +73,10 @@ mac_fifo_t mac_fifo[NO_OF_FIFOS];#define MAX_WAIT 1000#if defined(CONFIG_CMD_MII ) -int au1x00_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short * value) +int au1x00_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg + )
nits: moving ) to the line above. Please fix this globally.
Quoted 24 lines
arch/mips/mach-au1x00/au1x00_eth.c +6
-4{ +unsigned short value =0 ;volatile u32 *mii_control_reg = (volatile u32 *)(ETH0_BASE +MAC_MII_CNTRL );volatile u32 *mii_data_reg = (volatile u32 *)(ETH0_BASE +MAC_MII_DATA );u32 mii_control;@@ -102,12 +103,13 @@ int au1x00_miiphy_read(const char *devname, unsigned char addr,return -1 ; } } - *value = *mii_data_reg; -return 0 ; + value = *mii_data_reg; +return value; } -int au1x00_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value) +int au1x00_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value + ) {volatile u32 *mii_control_reg = (volatile u32 *)(ETH0_BASE +MAC_MII_CNTRL );volatile u32 *mii_data_reg = (volatile u32 *)(ETH0_BASE +MAC_MII_DATA );
arch/mips/mach-au1x00/au1x00_eth.c int au1x00_enet_initialize(bd_t *bis){ · line 295
Quoted 6 lines
arch/mips/mach-au1x00/au1x00_eth.c +1
-2@@ -290,8 +292,17 @@ int au1x00_enet_initialize(bd_t *bis){eth_register (dev);#if defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, - au1x00_miiphy_read, au1x00_miiphy_write); +int retval;
nits: adding one blank line to separate. Please fix this globally.
arch/mips/mach-au1x00/au1x00_eth.c int au1x00_enet_initialize(bd_t *bis){ · line 308
Quoted 13 lines
arch/mips/mach-au1x00/au1x00_eth.c +10
-0+struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = au1x00_miiphy_read; + mdiodev->write = au1x00_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif return 1 ;
[snip]
Otherwise,
Regards,
Bin
PATCH 4/6 net: mii: Changes not made by spatch
In reply to Joe HershbergerIf the functions passed to the registration function are not in the same C file (extern) then spatch will not handle the dependent changes.
Make those changes manually.
---
arch/m68k/include/asm/fec.h | 9 +++++---- arch/powerpc/cpu/ppc4xx/miiphy.c | 11 ++++------- drivers/net/4xx_enet.c | 7 +++---- drivers/net/bcm-sf2-eth-gmac.c | 18 +++++++----------- drivers/net/bcm-sf2-eth.c | 12 +++++++++++- drivers/net/bcm-sf2-eth.h | 8 ++++---- drivers/net/mcfmii.c | 19 ++++++------------- drivers/net/phy/miiphybb.c | 25 ++++++++----------------- include/miiphy.h | 7 +++---- 9 files changed, 51 insertions(+), 65 deletions(-)
arch/m68k/include/asm/fec.h +5 -4
@@ -15,6 +15,8 @@ #ifndef fec_h #define fec_h +#include <phy.h> + /* Buffer descriptors used FEC. */ typedef struct cpm_buf_desc {
@@ -341,10 +343,9 @@ int fecpin_setclear(struct eth_device *dev, int setclear);void __mii_init (void );uint mii_send (uint mii_cmd);int mii_discover_phy (struct eth_device *dev); -int mcffec_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value); -int mcffec_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value); +int mcffec_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg); +int mcffec_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value);#endif #endif /* fec_h */
arch/powerpc/cpu/ppc4xx/miiphy.c +4 -7
@@ -318,8 +318,7 @@ static int emac_miiphy_command(u8 addr, u8 reg, int cmd, u16 value)return 0 ; } -int emac4xx_miiphy_read (const char *devname,unsigned char addr,unsigned char reg, -unsigned short *value) +int emac4xx_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg) {unsigned long sta_reg;unsigned long emac_reg;
@@ -330,17 +329,15 @@ int emac4xx_miiphy_read (const char *devname, unsigned char addr, unsigned charreturn -1 ; sta_reg =in_be32 ((void *)EMAC0_STACR + emac_reg); - *value = sta_reg >>16 ; - -return 0 ; +return sta_reg >>16 ; }/***********************************************************/ /* write a phy reg and return the value with a rc */ /***********************************************************/ -int emac4xx_miiphy_write (const char *devname,unsigned char addr,unsigned char reg, -unsigned short value) +int emac4xx_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value) {return emac_miiphy_command (addr, reg,EMAC_STACR_WRITE , value); }
drivers/net/4xx_enet.c +3 -4
@@ -283,10 +283,9 @@ static void mal_err (struct eth_device *dev, unsigned long isr,static void emac_err (struct eth_device *dev,unsigned long isr);extern int phy_setup_aneg (char *devname,unsigned char addr); -extern int emac4xx_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value); -extern int emac4xx_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value); +int emac4xx_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg); +int emac4xx_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value);int board_emac_count (void );
drivers/net/bcm-sf2-eth-gmac.c +7 -11
@@ -596,12 +596,10 @@ bool gmac_mii_busywait(unsigned int timeout)return tmp & (1 <<GMAC_MII_BUSY_SHIFT ); } -int gmac_miiphy_read (const char *devname,unsigned char phyaddr, -unsigned char reg,unsigned short *value) +int gmac_miiphy_read (struct mii_dev *bus,int phyaddr,int devad,int reg) {uint32_t tmp =0 ; - - (void )devname; +u16 value =0 ;/* Busy wait timeout is 1ms */ if (gmac_mii_busywait (1000 )) {
@@ -621,18 +619,16 @@ int gmac_miiphy_read(const char *devname, unsigned char phyaddr,return -1 ; } - *value =readl (GMAC_MII_DATA_ADDR ) &0xffff ; -debug ("MII read data 0x%x\n" , *value); -return 0 ; + value =readl (GMAC_MII_DATA_ADDR ) &0xffff ; +debug ("MII read data 0x%x\n" , value); +return value; } -int gmac_miiphy_write (const char *devname,unsigned char phyaddr, -unsigned char reg,unsigned short value) +int gmac_miiphy_write (struct mii_dev *bus,int phyaddr,int devad,int reg, +u16 value) {uint32_t tmp =0 ; - (void )devname; -/* Busy wait timeout is 1ms */ if (gmac_mii_busywait (1000 )) {error ("%s: Prepare MII write: MII/MDIO busy\n" , __func__);
drivers/net/bcm-sf2-eth.c +11 -1
@@ -244,7 +244,17 @@ int bcm_sf2_eth_register(bd_t *bis, u8 dev_num)eth_register (dev);#ifdef CONFIG_CMD_MII -miiphy_register (dev->name, eth->miiphy_read, eth->miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = eth->miiphy_read; + mdiodev->write = eth->miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif /* Initialization */
drivers/net/bcm-sf2-eth.h +4 -4
@@ -54,10 +54,10 @@ struct eth_info {struct phy_device *port[BCM_ETH_MAX_PORT_NUM ];int port_num; -int (*miiphy_read)(const char *devname,unsigned char phyaddr, -unsigned char reg,unsigned short *value); -int (*miiphy_write)(const char *devname,unsigned char phyaddr, -unsigned char reg,unsigned short value); +int (*miiphy_read)(struct mii_dev *bus,int phyaddr,int devad, +int reg); +int (*miiphy_write)(struct mii_dev *bus,int phyaddr,int devad, +int reg,u16 value);int (*mac_init)(struct eth_device *dev);int (*enable_mac)(void );
drivers/net/mcfmii.c +6 -13
@@ -277,8 +277,7 @@ void __mii_init(void)* Otherwise they hang in mii_send() !!! Sorry! */ -int mcffec_miiphy_read (const char *devname,unsigned char addr,unsigned char reg, -unsigned short *value) +int mcffec_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg) {short rdreg;/* register working value */
@@ -287,28 +286,22 @@ int mcffec_miiphy_read(const char *devname, unsigned char addr, unsigned char re#endif rdreg =mii_send (mk_mii_read (addr, reg)); - *value = rdreg; -#ifdef MII_DEBUG -printf ("0x%04x\n" , *value); +printf ("0x%04x\n" , rdreg);#endif -return 0 ; +return rdreg; } -int mcffec_miiphy_write (const char *devname,unsigned char addr,unsigned char reg, -unsigned short value) +int mcffec_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value) {#ifdef MII_DEBUG -printf ("miiphy_write(0x%x) @ 0x%x = " , reg, addr); +printf ("miiphy_write(0x%x) @ 0x%x = 0x%04x\n" , reg, addr, value);#endif mii_send (mk_mii_write (addr, reg, value)); -#ifdef MII_DEBUG -printf ("0x%04x\n" , value); -#endif -return 0 ; }
drivers/net/phy/miiphybb.c +8 -17
@@ -230,24 +230,18 @@ static void miiphy_pre(struct bb_miiphy_bus *bus, char read,* Returns: * 0 on success */ -int bb_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value) +int bb_miiphy_read (struct mii_dev *miidev,int addr,int devad,int reg) {short rdreg;/* register working value */ int v;int j;/* counter */ struct bb_miiphy_bus *bus; - bus =bb_miiphy_getbus (devname); + bus =bb_miiphy_getbus (miidev->name);if (bus ==NULL ) {return -1 ; } -if (value ==NULL ) { -puts ("NULL value pointer\n" ); -return -1 ; - } -miiphy_pre (bus,1 , addr, reg);/* tri-state our MDIO I/O pin so we can read */
@@ -267,8 +261,7 @@ int bb_miiphy_read(const char *devname, unsigned char addr, bus->set_mdc (bus,1 ); bus->delay (bus); } -/* There is no PHY, set value to 0xFFFF and return */ - *value =0xFFFF ; +/* There is no PHY, return */ return -1 ; }
@@ -294,13 +287,11 @@ int bb_miiphy_read(const char *devname, unsigned char addr, bus->set_mdc (bus,1 ); bus->delay (bus); - *value = rdreg; -#ifdef DEBUG -printf ("miiphy_read(0x%x) @ 0x%x = 0x%04x\n" , reg, addr, *value); +printf ("miiphy_read(0x%x) @ 0x%x = 0x%04x\n" , reg, addr, rdreg);#endif -return 0 ; +return rdreg; }
@@ -311,13 +302,13 @@ int bb_miiphy_read(const char *devname, unsigned char addr,* Returns: * 0 on success */ -int bb_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value) +int bb_miiphy_write (struct mii_dev *miidev,int addr,int devad,int reg, +u16 value) {struct bb_miiphy_bus *bus;int j;/* counter */ - bus =bb_miiphy_getbus (devname); + bus =bb_miiphy_getbus (miidev->name);if (bus ==NULL ) {/* Bus not found! */ return -1 ;
include/miiphy.h +3 -4
@@ -86,10 +86,9 @@ extern struct bb_miiphy_bus bb_miiphy_buses[];extern int bb_miiphy_buses_num;void bb_miiphy_init (void ); -int bb_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value); -int bb_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value); +int bb_miiphy_read (struct mii_dev *miidev,int addr,int devad,int reg); +int bb_miiphy_write (struct mii_dev *miidev,int addr,int devad,int reg, +u16 value);#endif /* phy seed setup */
Signature · 1 line
1.7.11.5
PATCH 4/6 net: mii: Changes not made by spatch
Hi Joe,
Quoted 8 lines · Joe Hershberger
If the functions passed to the registration function are not in the same C file (extern) then spatch will not handle the dependent changes.
Make those changes manually.
Signed-off-by Joe Hershberger <[email protected]>---
Quoted 10 lines
arch/m68k/include/asm/fec.h | 9 +++++---- arch/powerpc/cpu/ppc4xx/miiphy.c | 11 ++++------- drivers/net/4xx_enet.c | 7 +++---- drivers/net/bcm-sf2-eth-gmac.c | 18 +++++++----------- drivers/net/bcm-sf2-eth.c | 12 +++++++++++- drivers/net/bcm-sf2-eth.h | 8 ++++---- drivers/net/mcfmii.c | 19 ++++++------------- drivers/net/phy/miiphybb.c | 25 ++++++++----------------- include/miiphy.h | 7 +++---- 9 files changed, 51 insertions(+), 65 deletions(-)
For the 4xx related files:
Thanks,
Stefan
PATCH 4/6 net: mii: Changes not made by spatch
In reply to Joe HershbergerHi Joe,
Quoted 8 lines · Joe Hershberger
If the functions passed to the registration function are not in the same C file (extern) then spatch will not handle the dependent changes.
Make those changes manually.
Signed-off-by Joe Hershberger <[email protected]>---
Quoted 11 lines
arch/m68k/include/asm/fec.h | 9 +++++---- arch/powerpc/cpu/ppc4xx/miiphy.c | 11 ++++------- drivers/net/4xx_enet.c | 7 +++---- drivers/net/bcm-sf2-eth-gmac.c | 18 +++++++----------- drivers/net/bcm-sf2-eth.c | 12 +++++++++++- drivers/net/bcm-sf2-eth.h | 8 ++++---- drivers/net/mcfmii.c | 19 ++++++------------- drivers/net/phy/miiphybb.c | 25 ++++++++----------------- include/miiphy.h | 7 +++---- 9 files changed, 51 insertions(+), 65 deletions(-)
But one nits below.
Quoted 128 lines
arch/m68k/include/asm/fec.h +5
-4@@ -15,6 +15,8 @@ #ifndef fec_h #define fec_h +#include <phy.h> + /* Buffer descriptors used FEC. */ typedef struct cpm_buf_desc {@@ -341,10 +343,9 @@ int fecpin_setclear(struct eth_device *dev, int setclear);void __mii_init (void );uint mii_send (uint mii_cmd);int mii_discover_phy (struct eth_device *dev); -int mcffec_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value); -int mcffec_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value); +int mcffec_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg); +int mcffec_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value);#endif #endif /* fec_h */ arch/powerpc/cpu/ppc4xx/miiphy.c +4
-7@@ -318,8 +318,7 @@ static int emac_miiphy_command(u8 addr, u8 reg, int cmd, u16 value)return 0 ; } -int emac4xx_miiphy_read (const char *devname,unsigned char addr,unsigned char reg, -unsigned short *value) +int emac4xx_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg) {unsigned long sta_reg;unsigned long emac_reg;@@ -330,17 +329,15 @@ int emac4xx_miiphy_read (const char *devname, unsigned char addr, unsigned charreturn -1 ; sta_reg =in_be32 ((void *)EMAC0_STACR + emac_reg); - *value = sta_reg >>16 ; - -return 0 ; +return sta_reg >>16 ; }/***********************************************************/ /* write a phy reg and return the value with a rc */ /***********************************************************/ -int emac4xx_miiphy_write (const char *devname,unsigned char addr,unsigned char reg, -unsigned short value) +int emac4xx_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value) {return emac_miiphy_command (addr, reg,EMAC_STACR_WRITE , value); }drivers/net/4xx_enet.c +3
-4@@ -283,10 +283,9 @@ static void mal_err (struct eth_device *dev, unsigned long isr,static void emac_err (struct eth_device *dev,unsigned long isr);extern int phy_setup_aneg (char *devname,unsigned char addr); -extern int emac4xx_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value); -extern int emac4xx_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value); +int emac4xx_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg); +int emac4xx_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value);int board_emac_count (void );drivers/net/bcm-sf2-eth-gmac.c +7
-11@@ -596,12 +596,10 @@ bool gmac_mii_busywait(unsigned int timeout)return tmp & (1 <<GMAC_MII_BUSY_SHIFT ); } -int gmac_miiphy_read (const char *devname,unsigned char phyaddr, -unsigned char reg,unsigned short *value) +int gmac_miiphy_read (struct mii_dev *bus,int phyaddr,int devad,int reg) {uint32_t tmp =0 ; - - (void )devname; +u16 value =0 ;/* Busy wait timeout is 1ms */ if (gmac_mii_busywait (1000 )) {@@ -621,18 +619,16 @@ int gmac_miiphy_read(const char *devname, unsigned char phyaddr,return -1 ; } - *value =readl (GMAC_MII_DATA_ADDR ) &0xffff ; -debug ("MII read data 0x%x\n" , *value); -return 0 ; + value =readl (GMAC_MII_DATA_ADDR ) &0xffff ; +debug ("MII read data 0x%x\n" , value); +return value; } -int gmac_miiphy_write (const char *devname,unsigned char phyaddr, -unsigned char reg,unsigned short value) +int gmac_miiphy_write (struct mii_dev *bus,int phyaddr,int devad,int reg, +u16 value) {uint32_t tmp =0 ; - (void )devname; -/* Busy wait timeout is 1ms */ if (gmac_mii_busywait (1000 )) {error ("%s: Prepare MII write: MII/MDIO busy\n" , __func__);drivers/net/bcm-sf2-eth.c +0
-0
drivers/net/bcm-sf2-eth.c int bcm_sf2_eth_register(bd_t *bis, u8 dev_num) · line 247
Quoted 5 lines
drivers/net/bcm-sf2-eth.c +1
-1@@ -244,7 +244,17 @@ int bcm_sf2_eth_register(bd_t *bis, u8 dev_num)eth_register (dev);#ifdef CONFIG_CMD_MII -miiphy_register (dev->name, eth->miiphy_read, eth->miiphy_write); +int retval;
nits: should have a blank line here.
drivers/net/bcm-sf2-eth.c int bcm_sf2_eth_register(bd_t *bis, u8 dev_num) · line 260
Quoted 13 lines
drivers/net/bcm-sf2-eth.c +10
-0+struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = eth->miiphy_read; + mdiodev->write = eth->miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif /* Initialization */
[snip]
Regards,
Bin
PATCH 5/6 net: mii: Fix changes made by spatch
In reply to Joe HershbergerSome of the changes were a bit too complex.
---
arch/powerpc/cpu/mpc8xx/fec.c | 6 ++++-- board/gdsys/405ex/io64.c | 3 +-- drivers/net/bfin_mac.c | 21 +++++++++++++++------ drivers/net/davinci_emac.c | 17 +++++++---------- drivers/net/ep93xx_eth.c | 1 - drivers/net/lpc32xx_eth.c | 23 ++--------------------- drivers/net/smc911x.c | 10 ++++------ drivers/qe/uec.c | 2 +- 8 files changed, 34 insertions(+), 49 deletions(-)
arch/powerpc/cpu/mpc8xx/fec.c +4 -2
@@ -6,10 +6,12 @@*/ #include <common.h> -#include <malloc.h> +#include <command.h> #include <commproc.h> +#include <malloc.h> #include <net.h> -#include <command.h> + +#include <phy.h> DECLARE_GLOBAL_DATA_PTR ;
board/gdsys/405ex/io64.c +1 -2
@@ -264,8 +264,7 @@ int last_stage_init(void)putc (slash[k %8 ]); } -int retval; -struct mii_dev *mdiodev =mdio_alloc (); + mdiodev =mdio_alloc ();if (!mdiodev)return -ENOMEM ;strncpy (mdiodev->name,CONFIG_SYS_GBIT_MII1_BUSNAME ,MDIO_NAME_LEN );
drivers/net/bfin_mac.c +15 -6
@@ -13,6 +13,7 @@#include <command.h> #include <malloc.h> #include <miiphy.h> +#include <linux/mdio.h> #include <linux/mii.h> #include <asm/blackfin.h>
@@ -128,6 +129,8 @@ int bfin_EMAC_initialize(bd_t *bis) retval =mdio_register (mdiodev);if (retval <0 )return retval; + + dev->priv = mdiodev;#endif return 0 ;
@@ -236,8 +239,9 @@ static int bfin_EMAC_recv(struct eth_device *dev)static int bfin_miiphy_init (struct eth_device *dev,int *opmode) {const unsigned short pins[] =CONFIG_BFIN_MAC_PINS ; -u16 phydat; +int phydat;size_t count; +struct mii_dev *mdiodev = dev->priv;/* Enable PHY output */ bfin_write_VR_CTL (bfin_read_VR_CTL () |CLKBUFOE );
@@ -250,12 +254,15 @@ static int bfin_miiphy_init(struct eth_device *dev, int *opmode)bfin_write_EMAC_SYSCTL (RXDWA |RXCKS |SET_MDCDIV (MDC_FREQ_TO_DIV (CONFIG_PHY_CLOCK_FREQ )));/* turn on auto-negotiation and wait for link to come up */ -bfin_miiphy_write (dev->name,CONFIG_PHY_ADDR ,MII_BMCR ,BMCR_ANENABLE ); +bfin_miiphy_write (mdiodev,CONFIG_PHY_ADDR ,MDIO_DEVAD_NONE ,MII_BMCR , +BMCR_ANENABLE ); count =0 ;while (1 ) { ++count; -if (bfin_miiphy_read (dev->name,CONFIG_PHY_ADDR ,MII_BMSR , &phydat)) -return -1 ; + phydat =bfin_miiphy_read (mdiodev,CONFIG_PHY_ADDR , +MDIO_DEVAD_NONE ,MII_BMSR ); +if (phydat <0 ) +return phydat;if (phydat &BMSR_LSTATUS )break ;if (count >30000 ) {
@@ -266,8 +273,10 @@ static int bfin_miiphy_init(struct eth_device *dev, int *opmode) }/* see what kind of link we have */ -if (bfin_miiphy_read (dev->name,CONFIG_PHY_ADDR ,MII_LPA , &phydat)) -return -1 ; + phydat =bfin_miiphy_read (mdiodev,CONFIG_PHY_ADDR ,MDIO_DEVAD_NONE , +MII_LPA ); +if (phydat <0 ) +return phydat;if (phydat &LPA_DUPLEX ) *opmode =FDMODE ;else
drivers/net/davinci_emac.c +7 -10
@@ -243,11 +243,10 @@ int davinci_eth_phy_read(u_int8_t phy_addr, u_int8_t reg_num, u_int16_t *data)if (tmp &MDIO_USERACCESS0_ACK ) { *data = tmp &0xffff ; -return (1 ); +return 0 ; } - *data =-1 ; -return (0 ); +return -EIO ; }/* Write to a PHY register via MDIO inteface. Blocks until operation is complete. */
@@ -268,7 +267,7 @@ int davinci_eth_phy_write(u_int8_t phy_addr, u_int8_t reg_num, u_int16_t data)while (readl (&adap_mdio->USERACCESS0) &MDIO_USERACCESS0_GO ) ; -return (1 ); +return 0 ; }/* PHY functions for a generic PHY */
@@ -391,21 +390,19 @@ static int gen_auto_negotiate(int phy_addr)#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII )static int davinci_mii_phy_read (struct mii_dev *bus,int addr,int devad, -int reg - ) +int reg) {unsigned short value =0 ; -int retval = (davinci_eth_phy_read (addr, reg, &value) ?0 :1 ); +int retval =davinci_eth_phy_read (addr, reg, &value);if (retval <0 )return retval;return value; }static int davinci_mii_phy_write (struct mii_dev *bus,int addr,int devad, -int reg,u16 value - ) +int reg,u16 value) { -return (davinci_eth_phy_write (addr, reg, value) ?0 :1 ); +return davinci_eth_phy_write (addr, reg, value); }#endif
drivers/net/ep93xx_eth.c +0 -1
@@ -569,7 +569,6 @@ static int ep93xx_miiphy_read(struct mii_dev *bus, int addr, int devad,BUG_ON (bus->name ==NULL );BUG_ON (addr >MII_ADDRESS_MAX );BUG_ON (reg >MII_REGISTER_MAX ); -BUG_ON (&value ==NULL );/* * Save the current SelfCTL register value. Set MAC to suppress
drivers/net/lpc32xx_eth.c +2 -21
@@ -338,25 +338,6 @@ static int mii_reg_write(struct mii_dev *bus, int phy_adr, int devad, }#endif -#if defined(CONFIG_PHYLIB ) -int lpc32xx_eth_phy_read (struct mii_dev *bus,int phy_addr,int dev_addr, -int reg_addr) -{ -u16 data; -int ret; - ret =mii_reg_read (bus->name, phy_addr, reg_addr, &data); -if (ret) -return ret; -return data; -} - -int lpc32xx_eth_phy_write (struct mii_dev *bus,int phy_addr,int dev_addr, -int reg_addr,u16 data) -{ -return mii_reg_write (bus->name, phy_addr, reg_addr, data); -} -#endif -/* * Provide default Ethernet buffers base address if target did not. * Locate buffers in SRAM at 0x00001000 to avoid cache issues and
@@ -585,8 +566,8 @@ int lpc32xx_eth_phylib_init(struct eth_device *dev, int phyid)printf ("mdio_alloc failed\n" );return -ENOMEM ; } - bus->read = lpc32xx_eth_phy_read; - bus->write = lpc32xx_eth_phy_write; + bus->read = mii_reg_read; + bus->write = mii_reg_write;strcpy (bus->name, dev->name); ret =mdio_register (bus);
drivers/net/smc911x.c +4 -6
@@ -220,8 +220,7 @@ static int smc911x_rx(struct eth_device *dev)#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII )/* wrapper for smc911x_eth_phy_read */ static int smc911x_miiphy_read (struct mii_dev *bus,int phy,int devad, -int reg - ) +int reg) {u16 val =0 ;struct eth_device *dev =eth_get_dev_by_name (bus->name);
@@ -231,17 +230,16 @@ static int smc911x_miiphy_read(struct mii_dev *bus, int phy, int devad,return retval; return val; } -return -1 ; +return -ENODEV ; }/* wrapper for smc911x_eth_phy_write */ static int smc911x_miiphy_write (struct mii_dev *bus,int phy,int devad, -int reg,u16 val - ) +int reg,u16 val) {struct eth_device *dev =eth_get_dev_by_name (bus->name);if (dev)return smc911x_eth_phy_write (dev, phy, reg, val); -return -1 ; +return -ENODEV ; }#endif
drivers/qe/uec.c +1 -1
@@ -629,7 +629,7 @@ static int uec_miiphy_read(struct mii_dev *bus, int addr, int devad, int regunsigned short value =0 ;int devindex =0 ; -if (bus->name ==NULL || &value ==NULL ) { +if (bus->name ==NULL ) {debug ("%s: NULL pointer given\n" , __FUNCTION__); }else { devindex =uec_miiphy_find_dev_by_name (bus->name);
Signature · 1 line
1.7.11.5
PATCH 5/6 net: mii: Fix changes made by spatch
Quoted 5 lines · Joe Hershberger
Some of the changes were a bit too complex.
Signed-off-by Joe Hershberger <[email protected]>---
Quoted 10 lines
arch/powerpc/cpu/mpc8xx/fec.c | 6 ++++-- board/gdsys/405ex/io64.c | 3 +-- drivers/net/bfin_mac.c | 21 +++++++++++++++------ drivers/net/davinci_emac.c | 17 +++++++---------- drivers/net/ep93xx_eth.c | 1 - drivers/net/lpc32xx_eth.c | 23 ++--------------------- drivers/net/smc911x.c | 10 ++++------ drivers/qe/uec.c | 2 +- 8 files changed, 34 insertions(+), 49 deletions(-)
PATCH 6/6 net: mii: Clean up legacy glue that is not used
In reply to Joe HershbergerThe cleanup of the legacy mii registration API that's no longer used now that the drivers have been converted to use the (more) modern API.
---
common/miiphyutil.c | 73 ----------------------------------------------------- include/miiphy.h | 13 ---------- 2 files changed, 86 deletions(-)
common/miiphyutil.c +0 -73
@@ -65,79 +65,6 @@ void miiphy_init(void) current_mii =NULL ; } -static int legacy_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg) -{ -unsigned short val; -int ret; -struct legacy_mii_dev *ldev = bus->priv; - - ret = ldev->read (bus->name, addr, reg, &val); - -return ret ?-1 : (int )val; -} - -static int legacy_miiphy_write (struct mii_dev *bus,int addr,int devad, -int reg,u16 val) -{ -struct legacy_mii_dev *ldev = bus->priv; - -return ldev->write (bus->name, addr, reg, val); -} - -/***************************************************************************** -* -* Register read and write MII access routines for the device <name>. -* This API is now deprecated. Please use mdio_alloc and mdio_register, instead. -*/ -void miiphy_register (const char *name, -int (*read)(const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value), -int (*write)(const char *devname,unsigned char addr, -unsigned char reg,unsigned short value)) -{ -struct mii_dev *new_dev; -struct legacy_mii_dev *ldev; - -BUG_ON (strlen (name) >=MDIO_NAME_LEN ); - -/* check if we have unique name */ - new_dev =miiphy_get_dev_by_name (name); -if (new_dev) { -printf ("miiphy_register: non unique device name '%s'\n" , name); -return ; - } - -/* allocate memory */ - new_dev =mdio_alloc (); - ldev =malloc (sizeof (*ldev)); - -if (new_dev ==NULL || ldev ==NULL ) { -printf ("miiphy_register: cannot allocate memory for '%s'\n" , - name); -free (ldev); -mdio_free (new_dev); -return ; - } - -/* initalize mii_dev struct fields */ - new_dev->read = legacy_miiphy_read; - new_dev->write = legacy_miiphy_write; -strncpy (new_dev->name, name,MDIO_NAME_LEN ); - new_dev->name[MDIO_NAME_LEN -1 ] =0 ; - ldev->read = read; - ldev->write = write; - new_dev->priv = ldev; - -debug ("miiphy_register: added '%s', read=0x%08lx, write=0x%08lx\n" , - new_dev->name, ldev->read, ldev->write); - -/* add it to the list */ -list_add_tail (&new_dev->link, &mii_devs); - -if (!current_mii) - current_mii = new_dev; -} -struct mii_dev *mdio_alloc (void ) {struct mii_dev *bus;
include/miiphy.h +0 -13
@@ -21,13 +21,6 @@#include <net.h> #include <phy.h> -struct legacy_mii_dev { -int (*read)(const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value); -int (*write)(const char *devname,unsigned char addr, -unsigned char reg,unsigned short value); -}; -int miiphy_read (const char *devname,unsigned char addr,unsigned char reg,unsigned short *value); int miiphy_write(const char *devname, unsigned char addr, unsigned char reg,
@@ -44,12 +37,6 @@ int miiphy_link(const char *devname, unsigned char addr);void miiphy_init (void ); -void miiphy_register (const char *devname, -int (*read)(const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value), -int (*write)(const char *devname,unsigned char addr, -unsigned char reg,unsigned short value)); -int miiphy_set_current_dev (const char *devname);const char *miiphy_get_current_dev (void );struct mii_dev *mdio_get_current_dev (void );
Signature · 1 line
1.7.11.5
PATCH 6/6 net: mii: Clean up legacy glue that is not used
Quoted 11 lines · Joe Hershberger
The cleanup of the legacy mii registration API that's no longer used now that the drivers have been converted to use the (more) modern API.
Signed-off-by Joe Hershberger <[email protected]>---
common/miiphyutil.c | 73 ----------------------------------------------------- include/miiphy.h | 13 ---------- 2 files changed, 86 deletions(-)
cover Remove calls from net drivers to legacy miiphy_register() entry-point
In reply to Joe HershbergerHi Joe,
Quoted 5 lines · Joe Hershberger
This is an effort to migrate closer to the phylib approach so that a new DM approach can be developed from a single starting point. The more of this legacy code can be removed, the easier it will be to move forward.
Sounds good!
Quoted 52 lines
Joe Hershberger (6):
common: Always includeerrno.hincommon.h
scripts: Add a cocci patch formiiphy_register
net: mii: Use spatch to updatemiiphy_register
net: mii: Changes not made by spatch
net: mii: Fix changes made by spatch
net: mii: Clean up legacy glue that is not usedarch/m68k/include/asm/fec.h | 9 +- arch/mips/mach-au1x00/au1x00_eth.c | 27 ++++-- arch/powerpc/cpu/mpc8260/ether_fcc.c | 13 ++- arch/powerpc/cpu/mpc85xx/ether_fcc.c | 13 ++- arch/powerpc/cpu/mpc8xx/fec.c | 44 ++++++--- arch/powerpc/cpu/ppc4xx/miiphy.c | 11 +-- board/gdsys/405ep/io.c | 13 ++- board/gdsys/405ep/iocon.c | 27 +++++- board/gdsys/405ex/io64.c | 25 ++++- board/gdsys/mpc8308/hrcon.c | 27 +++++- board/gdsys/mpc8308/strider.c | 27 +++++- common/miiphyutil.c | 73 --------------- drivers/net/4xx_enet.c | 20 ++-- drivers/net/armada100_fec.c | 35 ++++--- drivers/net/at91_emac.c | 30 ++++-- drivers/net/bcm-sf2-eth-gmac.c | 18 ++-- drivers/net/bcm-sf2-eth.c | 12 ++- drivers/net/bcm-sf2-eth.h | 8 +- drivers/net/bfin_mac.c | 45 ++++++--- drivers/net/davinci_emac.c | 34 +++++-- drivers/net/eepro100.c | 36 +++++--- drivers/net/enc28j60.c | 28 ++++-- drivers/net/ep93xx_eth.c | 44 ++++++--- drivers/net/fsl_mcdmafec.c | 13 ++- drivers/net/ftmac110.c | 37 +++++--- drivers/net/lpc32xx_eth.c | 54 +++++------ drivers/net/macb.c | 32 +++++-- drivers/net/mcffec.c | 13 ++- drivers/net/mcfmii.c | 19 ++-- drivers/net/mpc512x_fec.c | 34 +++++-- drivers/net/mpc5xxx_fec.c | 34 +++++-- drivers/net/mvgbe.c | 35 +++++-- drivers/net/phy/miiphybb.c | 25 ++--- drivers/net/sh_eth.c | 12 ++- drivers/net/smc911x.c | 35 +++++-- drivers/qe/uec.c | 34 ++++--- include/common.h | 1 + include/miiphy.h | 20 +--- scripts/coccinelle/net/mdio_register.cocci | 142 +++++++++++++++++++++++++++++ 39 files changed, 787 insertions(+), 372 deletions(-) create mode 100644 scripts/coccinelle/net/mdio_register.cocci
Quoted 3 lines
--
1.7.11.5
Regards,
Simon
v2 cover Remove calls from net drivers to legacy miiphy_register() entry-point
In reply to Joe HershbergerThis is an effort to migrate closer to the phylib approach so that a new DM approach can be developed from a single starting point. The more of this legacy code that can be removed, the easier it will be to move forward.
Changes in v2:
- Added a blank line
- Run against the current master which adds one more driver to convert (drivers/net/macb.c)
- Use an updated spatch that does not put closing paren on the next line
Joe Hershberger (5):
scripts: Add a cocci patch for miiphy_register
net: mii: Use spatch to update miiphy_register
net: mii: Changes not made by spatch
net: mii: Fix changes made by spatch
net: mii: Clean up legacy glue that is not used
arch/m68k/include/asm/fec.h | 9 +- arch/mips/mach-au1x00/au1x00_eth.c | 25 +++-- arch/powerpc/cpu/mpc8260/ether_fcc.c | 13 ++- arch/powerpc/cpu/mpc85xx/ether_fcc.c | 13 ++- arch/powerpc/cpu/mpc8xx/fec.c | 40 +++++--- arch/powerpc/cpu/ppc4xx/miiphy.c | 11 +-- board/gdsys/405ep/io.c | 13 ++- board/gdsys/405ep/iocon.c | 27 +++++- board/gdsys/405ex/io64.c | 25 ++++- board/gdsys/mpc8308/hrcon.c | 27 +++++- board/gdsys/mpc8308/strider.c | 27 +++++- common/miiphyutil.c | 73 --------------- drivers/net/4xx_enet.c | 20 ++-- drivers/net/armada100_fec.c | 33 ++++--- drivers/net/at91_emac.c | 28 ++++-- drivers/net/bcm-sf2-eth-gmac.c | 18 ++-- drivers/net/bcm-sf2-eth.c | 13 ++- drivers/net/bcm-sf2-eth.h | 8 +- drivers/net/bfin_mac.c | 43 ++++++--- drivers/net/davinci_emac.c | 34 +++++-- drivers/net/eepro100.c | 34 ++++--- drivers/net/enc28j60.c | 26 ++++-- drivers/net/ep93xx_eth.c | 40 +++++--- drivers/net/fsl_mcdmafec.c | 13 ++- drivers/net/ftmac110.c | 35 ++++--- drivers/net/lpc32xx_eth.c | 52 +++++------ drivers/net/macb.c | 46 +++++++--- drivers/net/mcffec.c | 13 ++- drivers/net/mcfmii.c | 19 ++-- drivers/net/mpc512x_fec.c | 30 ++++-- drivers/net/mpc5xxx_fec.c | 30 ++++-- drivers/net/mvgbe.c | 33 +++++-- drivers/net/phy/miiphybb.c | 25 ++--- drivers/net/sh_eth.c | 12 ++- drivers/net/smc911x.c | 35 +++++-- drivers/qe/uec.c | 32 ++++--- include/miiphy.h | 20 +--- scripts/coccinelle/net/mdio_register.cocci | 142 +++++++++++++++++++++++++++++ 38 files changed, 762 insertions(+), 375 deletions(-) create mode 100644 scripts/coccinelle/net/mdio_register.cocci
Signature · 1 line
1.7.11.5
PATCH v2 1/5 scripts: Add a cocci patch for miiphy_register
Many Ethernet drivers still use the legacy miiphy API to register their mdio interface for access to the mdio commands.
This semantic patch will convert the drivers from the legacy adapter API to the more modern alloc/register API.
---
Changes in v2: None
scripts/coccinelle/net/mdio_register.cocci | 142 +++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 scripts/coccinelle/net/mdio_register.cocci
scripts/coccinelle/net/mdio_register.cocci new file +142 -0
@@ -0,0 +1,142 @@ +/// Use mdio_alloc and mdio_register instead of miiphy_register +/// +//# Stop using the oldest mii interface in drivers +// +// Confidence: High +// Copyright: (C) 2016 Joe Hershberger. GPLv2. +// Comments: +// Options: --include-headers --recursive-includes --local-includes -I include + +@ mii_reg @ +expression devname; +identifier readfunc, writefunc; +@@ + ++ int retval; +- miiphy_register(devname, readfunc, writefunc); ++ struct mii_dev *mdiodev = mdio_alloc(); ++ if (!mdiodev) return -ENOMEM; ++ strncpy(mdiodev->name, devname, MDIO_NAME_LEN); ++ mdiodev->read = readfunc; ++ mdiodev->write = writefunc; ++ ++ retval = mdio_register(mdiodev); ++ if (retval < 0) return retval; + +@ update_read_sig @ +identifier mii_reg.readfunc; +identifier name0, addr0, reg0, output; +type addrT, outputT; +@@ + +- readfunc ( +- const char *name0, +- addrT addr0, +- addrT reg0, +- outputT *output +- ) ++ readfunc ( ++ struct mii_dev *bus, ++ int addr0, ++ int devad, ++ int reg0 ++ ) + { + ... + } + +@ update_read_impl @ +identifier mii_reg.readfunc; +identifier update_read_sig.output; +type update_read_sig.outputT; +constant c; +identifier retvar; +expression E; +@@ + + readfunc (...) + { ++ outputT output = 0; + ... +( +- return 0; ++ return *output; +| + return c; +| +- return retvar; ++ if (retvar < 0) ++ return retvar; ++ return *output; +| +- return E; ++ int retval = E; ++ if (retval < 0) ++ return retval; ++ return *output; +) + } + +@ update_read_impl2 @ +identifier mii_reg.readfunc; +identifier update_read_sig.output; +@@ + + readfunc (...) + { + <... +( +- *output ++ output +| +- output ++ &output +) + ...> + } + +@ update_read_name @ +identifier mii_reg.readfunc; +identifier update_read_sig.name0; +@@ + readfunc (...) { + <... +- name0 ++ bus->name + ...> + } + +@ update_write_sig @ +identifier mii_reg.writefunc; +identifier name0, addr0, reg0, value0; +type addrT, valueT; +typedef u16; +@@ + +- writefunc ( +- const char *name0, +- addrT addr0, +- addrT reg0, +- valueT value0 +- ) ++ writefunc ( ++ struct mii_dev *bus, ++ int addr0, ++ int devad, ++ int reg0, ++ u16 value0 ++ ) + { + ... + } + +@ update_write_name @ +identifier mii_reg.writefunc; +identifier update_write_sig.name0; +@@ + writefunc (...) { + <... +- name0 ++ bus->name + ...> + }
Signature · 1 line
1.7.11.5
[U-Boot] scripts: Add a cocci patch for miiphy_register
PATCH v2 2/5 net: mii: Use spatch to update miiphy_register
In reply to Joe HershbergerRun scripts/coccinelle/net/mdio_register.cocci on the U-Boot code base.
---
Changes in v2:
- Run against the current master which adds one more driver to convert (drivers/net/macb.c)
- Use an updated spatch that does not put closing paren on the next line
arch/mips/mach-au1x00/au1x00_eth.c | 25 +++++++++++++------- arch/powerpc/cpu/mpc8260/ether_fcc.c | 13 ++++++++-- arch/powerpc/cpu/mpc85xx/ether_fcc.c | 13 ++++++++-- arch/powerpc/cpu/mpc8xx/fec.c | 34 ++++++++++++++++---------- board/gdsys/405ep/io.c | 13 ++++++++-- board/gdsys/405ep/iocon.c | 27 +++++++++++++++++---- board/gdsys/405ex/io64.c | 26 ++++++++++++++++---- board/gdsys/mpc8308/hrcon.c | 27 +++++++++++++++++---- board/gdsys/mpc8308/strider.c | 27 +++++++++++++++++---- drivers/net/4xx_enet.c | 13 ++++++++-- drivers/net/armada100_fec.c | 33 +++++++++++++++++--------- drivers/net/at91_emac.c | 28 +++++++++++++++------- drivers/net/bfin_mac.c | 22 +++++++++++++---- drivers/net/davinci_emac.c | 25 ++++++++++++++++---- drivers/net/eepro100.c | 34 ++++++++++++++++---------- drivers/net/enc28j60.c | 26 ++++++++++++++------ drivers/net/ep93xx_eth.c | 41 +++++++++++++++++++++----------- drivers/net/fsl_mcdmafec.c | 13 ++++++++-- drivers/net/ftmac110.c | 35 ++++++++++++++++++--------- drivers/net/lpc32xx_eth.c | 29 ++++++++++++++++------- drivers/net/macb.c | 46 ++++++++++++++++++++++++++---------- drivers/net/mcffec.c | 13 ++++++++-- drivers/net/mpc512x_fec.c | 30 ++++++++++++++++------- drivers/net/mpc5xxx_fec.c | 30 ++++++++++++++++------- drivers/net/mvgbe.c | 33 ++++++++++++++++++-------- drivers/net/sh_eth.c | 12 +++++++++- drivers/net/smc911x.c | 31 ++++++++++++++++++------ drivers/qe/uec.c | 32 ++++++++++++++++--------- 28 files changed, 543 insertions(+), 188 deletions(-)
arch/mips/mach-au1x00/au1x00_eth.c +17 -8
@@ -73,9 +73,9 @@ mac_fifo_t mac_fifo[NO_OF_FIFOS];#define MAX_WAIT 1000#if defined(CONFIG_CMD_MII ) -int au1x00_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short * value) +int au1x00_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg) { +unsigned short value =0 ;volatile u32 *mii_control_reg = (volatile u32 *)(ETH0_BASE +MAC_MII_CNTRL );volatile u32 *mii_data_reg = (volatile u32 *)(ETH0_BASE +MAC_MII_DATA );u32 mii_control;
@@ -102,12 +102,12 @@ int au1x00_miiphy_read(const char *devname, unsigned char addr,return -1 ; } } - *value = *mii_data_reg; -return 0 ; + value = *mii_data_reg; +return value; } -int au1x00_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value) +int au1x00_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value) {volatile u32 *mii_control_reg = (volatile u32 *)(ETH0_BASE +MAC_MII_CNTRL );volatile u32 *mii_data_reg = (volatile u32 *)(ETH0_BASE +MAC_MII_DATA );
@@ -290,8 +290,17 @@ int au1x00_enet_initialize(bd_t *bis){eth_register (dev);#if defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, - au1x00_miiphy_read, au1x00_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = au1x00_miiphy_read; + mdiodev->write = au1x00_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif return 1 ;
arch/powerpc/cpu/mpc8260/ether_fcc.c +11 -2
@@ -379,8 +379,17 @@ int fec_initialize(bd_t *bis)#if (defined(CONFIG_MII ) || defined(CONFIG_CMD_MII )) \ && defined(CONFIG_BITBANGMII ) -miiphy_register (dev->name, - bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif }
arch/powerpc/cpu/mpc85xx/ether_fcc.c +11 -2
@@ -441,8 +441,17 @@ int fec_initialize(bd_t *bis)#if (defined(CONFIG_MII ) || defined(CONFIG_CMD_MII )) \ && defined(CONFIG_BITBANGMII ) -miiphy_register (dev->name, - bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif }
arch/powerpc/cpu/mpc8xx/fec.c +21 -13
@@ -47,10 +47,9 @@ DECLARE_GLOBAL_DATA_PTR;static int mii_discover_phy (struct eth_device *dev);#endif -int fec8xx_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value); -int fec8xx_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value); +int fec8xx_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg); +int fec8xx_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value); static struct ether_fcc_info_s {
@@ -170,8 +169,17 @@ int fec_initialize(bd_t *bis)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, - fec8xx_miiphy_read, fec8xx_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = fec8xx_miiphy_read; + mdiodev->write = fec8xx_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif }return 1 ;
@@ -894,9 +902,9 @@ void mii_init (void)* Otherwise they hang in mii_send() !!! Sorry! *****************************************************************************/ -int fec8xx_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value) +int fec8xx_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg) { +unsigned short value =0 ;short rdreg;/* register working value */ #ifdef MII_DEBUG
@@ -904,15 +912,15 @@ int fec8xx_miiphy_read(const char *devname, unsigned char addr,#endif rdreg =mii_send (mk_mii_read (addr, reg)); - *value = rdreg; + value = rdreg;#ifdef MII_DEBUG -printf ("0x%04x\n" , *value); +printf ("0x%04x\n" , value);#endif -return 0 ; +return value; } -int fec8xx_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value) +int fec8xx_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value) {#ifdef MII_DEBUG printf ("miiphy_write(0x%x) @ 0x%x = " , reg, addr);
board/gdsys/405ep/io.c +11 -2
@@ -172,8 +172,17 @@ int last_stage_init(void)print_fpga_info (); -miiphy_register (CONFIG_SYS_GBIT_MII_BUSNAME , - bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name,CONFIG_SYS_GBIT_MII_BUSNAME ,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;for (k =0 ; k <32 ; ++k)configure_gbit_phy (k);
board/gdsys/405ep/iocon.c +23 -4
@@ -405,8 +405,17 @@ int last_stage_init(void) }if (!legacy && (feature_carrier_speed ==CARRIER_SPEED_1G )) { -miiphy_register (bb_miiphy_buses[0 ].name, bb_miiphy_read, - bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, bb_miiphy_buses[0 ].name,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;for (mux_ch =0 ; mux_ch <MAX_MUX_CHANNELS ; ++mux_ch) {if ((mux_ch ==1 ) && !ch0_rgmii2_present)continue ;
@@ -437,8 +446,18 @@ int last_stage_init(void)print_fpga_info (k, false);osd_probe (k);if (feature_carrier_speed ==CARRIER_SPEED_1G ) { -miiphy_register (bb_miiphy_buses[k].name, - bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, bb_miiphy_buses[k].name, +MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;setup_88e1518 (bb_miiphy_buses[k].name,0 ); } }
board/gdsys/405ex/io64.c +22 -4
@@ -246,8 +246,17 @@ int last_stage_init(void)/* setup Gbit PHYs */ puts ("TRANS: " );puts (str_phys); -miiphy_register (CONFIG_SYS_GBIT_MII_BUSNAME , - bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name,CONFIG_SYS_GBIT_MII_BUSNAME ,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;for (k =0 ; k <32 ; ++k) {configure_gbit_phy (CONFIG_SYS_GBIT_MII_BUSNAME , k);
@@ -255,8 +264,17 @@ int last_stage_init(void)putc (slash[k %8 ]); } -miiphy_register (CONFIG_SYS_GBIT_MII1_BUSNAME , - bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name,CONFIG_SYS_GBIT_MII1_BUSNAME ,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;for (k =0 ; k <32 ; ++k) {configure_gbit_phy (CONFIG_SYS_GBIT_MII1_BUSNAME , k);
board/gdsys/mpc8308/hrcon.c +23 -4
@@ -162,8 +162,17 @@ int last_stage_init(void) }if (hw_type_cat) { -miiphy_register (bb_miiphy_buses[0 ].name, bb_miiphy_read, - bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, bb_miiphy_buses[0 ].name,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;for (mux_ch =0 ; mux_ch <MAX_MUX_CHANNELS ; ++mux_ch) {if ((mux_ch ==1 ) && !ch0_rgmii2_present)continue ;
@@ -199,8 +208,18 @@ int last_stage_init(void)osd_probe (k +4 );#endif if (hw_type_cat) { -miiphy_register (bb_miiphy_buses[k].name, - bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, bb_miiphy_buses[k].name, +MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;setup_88e1514 (bb_miiphy_buses[k].name,0 ); } }
board/gdsys/mpc8308/strider.c +23 -4
@@ -179,8 +179,17 @@ int last_stage_init(void) }if (hw_type_cat) { -miiphy_register (bb_miiphy_buses[0 ].name, bb_miiphy_read, - bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, bb_miiphy_buses[0 ].name,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;for (mux_ch =0 ; mux_ch <MAX_MUX_CHANNELS ; ++mux_ch) {if ((mux_ch ==1 ) && !ch0_sgmii2_present)continue ;
@@ -252,8 +261,18 @@ int last_stage_init(void)dp501_probe (k, false);#endif if (hw_type_cat) { -miiphy_register (bb_miiphy_buses[k].name, - bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, bb_miiphy_buses[k].name, +MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;setup_88e1514 (bb_miiphy_buses[k].name,0 ); } }
drivers/net/4xx_enet.c +11 -2
@@ -2015,8 +2015,17 @@ int ppc_4xx_eth_initialize (bd_t * bis)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, - emac4xx_miiphy_read, emac4xx_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = emac4xx_miiphy_read; + mdiodev->write = emac4xx_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif if (0 == virgin) {
drivers/net/armada100_fec.c +22 -11
@@ -57,18 +57,19 @@ static int armdfec_phy_timeout(u32 *reg, u32 flag, int cond)return !timeout; } -static int smi_reg_read (const char *devname,u8 phy_addr,u8 phy_reg, -u16 *value) +static int smi_reg_read (struct mii_dev *bus,int phy_addr,int devad, +int phy_reg) { -struct eth_device *dev =eth_get_dev_by_name (devname); +u16 value =0 ; +struct eth_device *dev =eth_get_dev_by_name (bus->name);struct armdfec_device *darmdfec =to_darmdfec (dev);struct armdfec_reg *regs = darmdfec->regs;u32 val;if (phy_addr ==PHY_ADR_REQ && phy_reg ==PHY_ADR_REQ ) { val =readl (®s->phyadr); - *value = val &0x1f ; -return 0 ; + value = val &0x1f ; +return value; }/* check parameters */
@@ -99,15 +100,15 @@ static int smi_reg_read(const char *devname, u8 phy_addr, u8 phy_reg,return -1 ; } val =readl (®s->smi); - *value = val &0xffff ; + value = val &0xffff ; -return 0 ; +return value; } -static int smi_reg_write (const char *devname, -u8 phy_addr,u8 phy_reg,u16 value) +static int smi_reg_write (struct mii_dev *bus,int phy_addr,int devad, +int phy_reg,u16 value) { -struct eth_device *dev =eth_get_dev_by_name (devname); +struct eth_device *dev =eth_get_dev_by_name (bus->name);struct armdfec_device *darmdfec =to_darmdfec (dev);struct armdfec_reg *regs = darmdfec->regs;
@@ -711,7 +712,17 @@ int armada100_fec_register(unsigned long base_addr)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, smi_reg_read, smi_reg_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = smi_reg_read; + mdiodev->write = smi_reg_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif return 0 ;
drivers/net/at91_emac.c +19 -9
@@ -159,23 +159,23 @@ at91_emac_t *get_emacbase_by_name(const char *devname)return (at91_emac_t *) netdev->iobase; } -int at91emac_mii_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value) +int at91emac_mii_read (struct mii_dev *bus,int addr,int devad,int reg) { +unsigned short value =0 ;at91_emac_t *emac; - emac =get_emacbase_by_name (devname); -at91emac_read (emac , addr, reg, value); -return 0 ; + emac =get_emacbase_by_name (bus->name); +at91emac_read (emac , addr, reg, &value); +return value; } -int at91emac_mii_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value) +int at91emac_mii_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value) {at91_emac_t *emac; - emac =get_emacbase_by_name (devname); + emac =get_emacbase_by_name (bus->name);at91emac_write (emac, addr, reg, value);return 0 ; }
@@ -502,7 +502,17 @@ int at91emac_register(bd_t *bis, unsigned long iobase)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, at91emac_mii_read, at91emac_mii_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = at91emac_mii_read; + mdiodev->write = at91emac_mii_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif return 1 ; }
drivers/net/bfin_mac.c +17 -5
@@ -72,18 +72,20 @@ static int bfin_miiphy_wait(void)return 0 ; } -static int bfin_miiphy_read (const char *devname,uchar addr,uchar reg,ushort *val) +static int bfin_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg) { +ushort val =0 ;if (bfin_miiphy_wait ())return 1 ;bfin_write_EMAC_STAADD (SET_PHYAD (addr) |SET_REGAD (reg) |STABUSY );if (bfin_miiphy_wait ())return 1 ; - *val =bfin_read_EMAC_STADAT (); -return 0 ; + val =bfin_read_EMAC_STADAT (); +return val; } -static int bfin_miiphy_write (const char *devname,uchar addr,uchar reg,ushort val) +static int bfin_miiphy_write (struct mii_dev *bus,int addr,int devad, +int reg,u16 val) {if (bfin_miiphy_wait ())return 1 ;
@@ -113,7 +115,17 @@ int bfin_EMAC_initialize(bd_t *bis)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, bfin_miiphy_read, bfin_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = bfin_miiphy_read; + mdiodev->write = bfin_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif return 0 ;
drivers/net/davinci_emac.c +20 -5
@@ -390,12 +390,18 @@ static int gen_auto_negotiate(int phy_addr)#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -static int davinci_mii_phy_read (const char *devname,unsigned char addr,unsigned char reg,unsigned short *value) +static int davinci_mii_phy_read (struct mii_dev *bus,int addr,int devad, +int reg) { -return (davinci_eth_phy_read (addr, reg, value) ?0 :1 ); +unsigned short value =0 ; +int retval = (davinci_eth_phy_read (addr, reg, &value) ?0 :1 ); +if (retval <0 ) +return retval; +return value; } -static int davinci_mii_phy_write (const char *devname,unsigned char addr,unsigned char reg,unsigned short value) +static int davinci_mii_phy_write (struct mii_dev *bus,int addr,int devad, +int reg,u16 value) {return (davinci_eth_phy_write (addr, reg, value) ?0 :1 ); }
@@ -883,8 +889,17 @@ int davinci_emac_initialize(void)debug ("Ethernet PHY: %s\n" , phy[i].name); -miiphy_register (phy[i].name, davinci_mii_phy_read, - davinci_mii_phy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, phy[i].name,MDIO_NAME_LEN ); + mdiodev->read = davinci_mii_phy_read; + mdiodev->write = davinci_mii_phy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval; } #if defined(CONFIG_DRIVER_TI_EMAC_USE_RMII) && \
drivers/net/eepro100.c +22 -12
@@ -334,34 +334,35 @@ static struct eth_device* verify_phyaddr (const char *devname,return dev; } -static int eepro100_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value) +static int eepro100_miiphy_read (struct mii_dev *bus,int addr,int devad, +int reg) { +unsigned short value =0 ;struct eth_device *dev; - dev =verify_phyaddr (devname, addr); + dev =verify_phyaddr (bus->name, addr);if (dev ==NULL )return -1 ; -if (get_phyreg (dev, addr, reg, value) !=0 ) { -printf ("%s: mii read timeout!\n" , devname); +if (get_phyreg (dev, addr, reg, &value) !=0 ) { +printf ("%s: mii read timeout!\n" , bus->name);return -1 ; } -return 0 ; +return value; } -static int eepro100_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value) +static int eepro100_miiphy_write (struct mii_dev *bus,int addr,int devad, +int reg,u16 value) {struct eth_device *dev; - dev =verify_phyaddr (devname, addr); + dev =verify_phyaddr (bus->name, addr);if (dev ==NULL )return -1 ;if (set_phyreg (dev, addr, reg, value) !=0 ) { -printf ("%s: mii write timeout!\n" , devname); +printf ("%s: mii write timeout!\n" , bus->name);return -1 ; }
@@ -451,8 +452,17 @@ int eepro100_initialize (bd_t * bis)#if defined (CONFIG_MII ) || defined(CONFIG_CMD_MII )/* register mii command access routines */ -miiphy_register (dev->name, - eepro100_miiphy_read, eepro100_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = eepro100_miiphy_read; + mdiodev->write = eepro100_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif card_number++;
drivers/net/enc28j60.c +19 -7
@@ -742,9 +742,10 @@ static int enc_initcheck(enc_dev_t *enc, const enum enc_initstate requiredstate)* * This function is registered with miiphy_register(). */ -int enc_miiphy_read (const char *devname,u8 phy_adr,u8 reg,u16 *value) +int enc_miiphy_read (struct mii_dev *bus,int phy_adr,int devad,int reg) { -struct eth_device *dev =eth_get_dev_by_name (devname); +u16 value =0 ; +struct eth_device *dev =eth_get_dev_by_name (bus->name);enc_dev_t *enc;if (!dev || phy_adr !=0 )
@@ -757,9 +758,9 @@ int enc_miiphy_read(const char *devname, u8 phy_adr, u8 reg, u16 *value)enc_release_bus (enc);return -1 ; } - *value =enc_phy_read (enc, reg); + value =enc_phy_read (enc, reg);enc_release_bus (enc); -return 0 ; +return value; }/*
@@ -767,9 +768,10 @@ int enc_miiphy_read(const char *devname, u8 phy_adr, u8 reg, u16 *value)* * This function is registered with miiphy_register(). */ -int enc_miiphy_write (const char *devname,u8 phy_adr,u8 reg,u16 value) +int enc_miiphy_write (struct mii_dev *bus,int phy_adr,int devad,int reg, +u16 value) { -struct eth_device *dev =eth_get_dev_by_name (devname); +struct eth_device *dev =eth_get_dev_by_name (bus->name);enc_dev_t *enc;if (!dev || phy_adr !=0 )
@@ -958,7 +960,17 @@ int enc28j60_initialize(unsigned int bus, unsigned int cs,sprintf (dev->name,"enc%i.%i" , bus, cs);eth_register (dev);#if defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, enc_miiphy_read, enc_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = enc_miiphy_read; + mdiodev->write = enc_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif return 0 ; }
drivers/net/ep93xx_eth.c +27 -14
91 lines not on this page · raw message
drivers/net/fsl_mcdmafec.c +11 -2
@@ -556,8 +556,17 @@ int mcdmafec_initialize(bd_t * bis)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, - mcffec_miiphy_read, mcffec_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = mcffec_miiphy_read; + mdiodev->write = mcffec_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif if (i >0 )
drivers/net/ftmac110.c +24 -11
@@ -364,32 +364,35 @@ static int ftmac110_recv(struct eth_device *dev)#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -static int ftmac110_mdio_read ( -const char *devname,uint8_t addr,uint8_t reg,uint16_t *value) +static int ftmac110_mdio_read (struct mii_dev *bus,int addr,int devad, +int reg) { +uint16_t value =0 ;int ret =0 ;struct eth_device *dev; - dev =eth_get_dev_by_name (devname); + dev =eth_get_dev_by_name (bus->name);if (dev ==NULL ) { -printf ("%s: no such device\n" , devname); +printf ("%s: no such device\n" , bus->name); ret =-1 ; }else { - *value =mdio_read (dev, addr, reg); + value =mdio_read (dev, addr, reg); } -return ret; +if (ret <0 ) +return ret; +return value; } -static int ftmac110_mdio_write ( -const char *devname,uint8_t addr,uint8_t reg,uint16_t value) +static int ftmac110_mdio_write (struct mii_dev *bus,int addr,int devad, +int reg,u16 value) {int ret =0 ;struct eth_device *dev; - dev =eth_get_dev_by_name (devname); + dev =eth_get_dev_by_name (bus->name);if (dev ==NULL ) { -printf ("%s: no such device\n" , devname); +printf ("%s: no such device\n" , bus->name); ret =-1 ; }else {mdio_write (dev, addr, reg, value);
@@ -468,7 +471,17 @@ int ftmac110_initialize(bd_t *bis)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, ftmac110_mdio_read, ftmac110_mdio_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = ftmac110_mdio_read; + mdiodev->write = ftmac110_mdio_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif card_nr++;
drivers/net/lpc32xx_eth.c +21 -8
@@ -226,9 +226,11 @@ DECLARE_GLOBAL_DATA_PTR;* * Returns 16bit phy register value, or 0xffff on error */ -static int mii_reg_read (const char *devname,u8 phy_adr,u8 reg_ofs,u16 *data) +static int mii_reg_read (struct mii_dev *bus,int phy_adr,int devad, +int reg_ofs) { -struct eth_device *dev =eth_get_dev_by_name (devname); +u16 data =0 ; +struct eth_device *dev =eth_get_dev_by_name (bus->name);struct lpc32xx_eth_device *dlpc32xx_eth =to_lpc32xx_eth (dev);struct lpc32xx_eth_registers *regs = dlpc32xx_eth->regs;u32 mind_reg;
@@ -270,12 +272,12 @@ static int mii_reg_read(const char *devname, u8 phy_adr, u8 reg_ofs, u16 *data)return -EFAULT ; } - *data = (u16 )readl (®s->mrdd); + data = (u16 )readl (®s->mrdd);debug ("%s:(adr %d, off %d) => %04x\n" , __func__, phy_adr, - reg_ofs, *data); + reg_ofs, data); -return 0 ; +return data; }/*
@@ -284,9 +286,10 @@ static int mii_reg_read(const char *devname, u8 phy_adr, u8 reg_ofs, u16 *data)* Returns 0 if write succeed, -EINVAL on bad parameters * -ETIME on timeout */ -static int mii_reg_write (const char *devname,u8 phy_adr,u8 reg_ofs,u16 data) +static int mii_reg_write (struct mii_dev *bus,int phy_adr,int devad, +int reg_ofs,u16 data) { -struct eth_device *dev =eth_get_dev_by_name (devname); +struct eth_device *dev =eth_get_dev_by_name (bus->name);struct lpc32xx_eth_device *dlpc32xx_eth =to_lpc32xx_eth (dev);struct lpc32xx_eth_registers *regs = dlpc32xx_eth->regs;u32 mind_reg;
@@ -645,7 +648,17 @@ int lpc32xx_eth_initialize(bd_t *bis)#if defined(CONFIG_PHYLIB )lpc32xx_eth_phylib_init (dev,CONFIG_PHY_ADDR );#elif defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, mii_reg_read, mii_reg_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = mii_reg_read; + mdiodev->write = mii_reg_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif return 0 ;
drivers/net/macb.c +34 -12
87 lines not on this page · raw message
drivers/net/mcffec.c +11 -2
@@ -595,8 +595,17 @@ int mcffec_initialize(bd_t * bis)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, - mcffec_miiphy_read, mcffec_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = mcffec_miiphy_read; + mdiodev->write = mcffec_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif if (i >0 ) fec_info[i -1 ].next = &fec_info[i];
drivers/net/mpc512x_fec.c +22 -8
@@ -22,8 +22,10 @@ DECLARE_GLOBAL_DATA_PTR;#error "CONFIG_MII has to be defined!"#endif -int fec512x_miiphy_read (const char *devname,u8 phyAddr,u8 regAddr,u16 * retVal); -int fec512x_miiphy_write (const char *devname,u8 phyAddr,u8 regAddr,u16 data); +int fec512x_miiphy_read (struct mii_dev *bus,int phyAddr,int devad, +int regAddr); +int fec512x_miiphy_write (struct mii_dev *bus,int phyAddr,int devad, +int regAddr,u16 data);int mpc512x_fec_init_phy (struct eth_device *dev,bd_t * bis);static uchar rx_buff[FEC_BUFFER_SIZE ];
@@ -639,8 +641,17 @@ int mpc512x_fec_initialize (bd_t * bis)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, - fec512x_miiphy_read, fec512x_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = fec512x_miiphy_read; + mdiodev->write = fec512x_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif /* Clean up space FEC's MIB and FIFO RAM ...*/
@@ -670,8 +681,10 @@ int mpc512x_fec_initialize (bd_t * bis)/* MII-interface related functions */ /********************************************************************/ -int fec512x_miiphy_read (const char *devname,u8 phyAddr,u8 regAddr,u16 *retVal) +int fec512x_miiphy_read (struct mii_dev *bus,int phyAddr,int devad, +int regAddr) { +u16 retVal =0 ;volatile immap_t *im = (immap_t *)CONFIG_SYS_IMMR ;volatile fec512x_t *eth = &im->fec;u32 reg;/* convenient holder for the PHY register */
@@ -711,13 +724,14 @@ int fec512x_miiphy_read(const char *devname, u8 phyAddr, u8 regAddr, u16 *retVal/* * it's now safe to read the PHY's register */ - *retVal = (u16 )in_be32 (ð->mii_data); + retVal = (u16 )in_be32 (ð->mii_data); -return 0 ; +return retVal; }/********************************************************************/ -int fec512x_miiphy_write (const char *devname,u8 phyAddr,u8 regAddr,u16 data) +int fec512x_miiphy_write (struct mii_dev *bus,int phyAddr,int devad, +int regAddr,u16 data) {volatile immap_t *im = (immap_t *)CONFIG_SYS_IMMR ;volatile fec512x_t *eth = &im->fec;
drivers/net/mpc5xxx_fec.c +22 -8
@@ -35,8 +35,10 @@ typedef struct {uint8 head[16 ];/* MAC header(6 + 6 + 2) + 2(aligned) */ }NBUF ; -int fec5xxx_miiphy_read (const char *devname,uint8 phyAddr,uint8 regAddr,uint16 *retVal); -int fec5xxx_miiphy_write (const char *devname,uint8 phyAddr,uint8 regAddr,uint16 data); +int fec5xxx_miiphy_read (struct mii_dev *bus,int phyAddr,int devad, +int regAddr); +int fec5xxx_miiphy_write (struct mii_dev *bus,int phyAddr,int devad, +int regAddr,u16 data);static int mpc5xxx_fec_init_phy (struct eth_device *dev,bd_t * bis);
@@ -917,8 +919,17 @@ int mpc5xxx_fec_initialize(bd_t * bis)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, - fec5xxx_miiphy_read, fec5xxx_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = fec5xxx_miiphy_read; + mdiodev->write = fec5xxx_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif /*
@@ -941,8 +952,10 @@ int mpc5xxx_fec_initialize(bd_t * bis)/* MII-interface related functions */ /********************************************************************/ -int fec5xxx_miiphy_read (const char *devname,uint8 phyAddr,uint8 regAddr,uint16 * retVal) +int fec5xxx_miiphy_read (struct mii_dev *bus,int phyAddr,int devad, +int regAddr) { +uint16 retVal =0 ;ethernet_regs *eth = (ethernet_regs *)MPC5XXX_FEC ;uint32 reg;/* convenient holder for the PHY register */ uint32 phy;/* convenient holder for the PHY */
@@ -977,13 +990,14 @@ int fec5xxx_miiphy_read(const char *devname, uint8 phyAddr, uint8 regAddr, uint1/* * it's now safe to read the PHY's register */ - *retVal = (uint16 ) eth->mii_data; + retVal = (uint16 ) eth->mii_data; -return 0 ; +return retVal; }/********************************************************************/ -int fec5xxx_miiphy_write (const char *devname,uint8 phyAddr,uint8 regAddr,uint16 data) +int fec5xxx_miiphy_write (struct mii_dev *bus,int phyAddr,int devad, +int regAddr,u16 data) {ethernet_regs *eth = (ethernet_regs *)MPC5XXX_FEC ;uint32 reg;/* convenient holder for the PHY register */
drivers/net/mvgbe.c +23 -10
@@ -48,9 +48,11 @@ DECLARE_GLOBAL_DATA_PTR;* * Returns 16bit phy register value, or 0xffff on error */ -static int smi_reg_read (const char *devname,u8 phy_adr,u8 reg_ofs,u16 * data) +static int smi_reg_read (struct mii_dev *bus,int phy_adr,int devad, +int reg_ofs) { -struct eth_device *dev =eth_get_dev_by_name (devname); +u16 data =0 ; +struct eth_device *dev =eth_get_dev_by_name (bus->name);struct mvgbe_device *dmvgbe =to_mvgbe (dev);struct mvgbe_registers *regs = dmvgbe->regs;u32 smi_reg;
@@ -60,8 +62,8 @@ static int smi_reg_read(const char *devname, u8 phy_adr, u8 reg_ofs, u16 * data)if (phy_adr ==MV_PHY_ADR_REQUEST && reg_ofs ==MV_PHY_ADR_REQUEST ) {/* */ - *data = (u16) (MVGBE_REG_RD (regs->phyadr) &PHYADR_MASK ); -return 0 ; + data = (u16) (MVGBE_REG_RD (regs->phyadr) &PHYADR_MASK ); +return data; }/* check parameters */ if (phy_adr >PHYADR_MASK ) {
@@ -111,12 +113,12 @@ static int smi_reg_read(const char *devname, u8 phy_adr, u8 reg_ofs, u16 * data)for (timeout =0 ; timeout <MVGBE_PHY_SMI_TIMEOUT ; timeout++) ; - *data = (u16) (MVGBE_REG_RD (MVGBE_SMI_REG ) &MVGBE_PHY_SMI_DATA_MASK ); + data = (u16) (MVGBE_REG_RD (MVGBE_SMI_REG ) &MVGBE_PHY_SMI_DATA_MASK );debug ("%s:(adr %d, off %d) value= %04x\n" , __func__, phy_adr, reg_ofs, - *data); + data); -return 0 ; +return data; }/*
@@ -125,9 +127,10 @@ static int smi_reg_read(const char *devname, u8 phy_adr, u8 reg_ofs, u16 * data)* Returns 0 if write succeed, -EINVAL on bad parameters * -ETIME on timeout */ -static int smi_reg_write (const char *devname,u8 phy_adr,u8 reg_ofs,u16 data) +static int smi_reg_write (struct mii_dev *bus,int phy_adr,int devad, +int reg_ofs,u16 data) { -struct eth_device *dev =eth_get_dev_by_name (devname); +struct eth_device *dev =eth_get_dev_by_name (bus->name);struct mvgbe_device *dmvgbe =to_mvgbe (dev);struct mvgbe_registers *regs = dmvgbe->regs;u32 smi_reg;
@@ -785,7 +788,17 @@ error1:#if defined(CONFIG_PHYLIB )mvgbe_phylib_init (dev,PHY_BASE_ADR + devnum);#elif defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, smi_reg_read, smi_reg_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = smi_reg_read; + mdiodev->write = smi_reg_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;/* Set phy address of the port */ miiphy_write (dev->name,MV_PHY_ADR_REQUEST ,MV_PHY_ADR_REQUEST ,PHY_BASE_ADR + devnum);
drivers/net/sh_eth.c +11 -1
@@ -566,7 +566,17 @@ int sh_eth_initialize(bd_t *bd)eth_register (dev); bb_miiphy_buses[0 ].priv = eth; -miiphy_register (dev->name, bb_miiphy_read, bb_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = bb_miiphy_read; + mdiodev->write = bb_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;if (!eth_getenv_enetaddr ("ethaddr" , dev->enetaddr))puts ("Please set MAC address\n" );
drivers/net/smc911x.c +24 -7
@@ -219,17 +219,24 @@ static int smc911x_rx(struct eth_device *dev)#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII )/* wrapper for smc911x_eth_phy_read */ -static int smc911x_miiphy_read (const char *devname,u8 phy,u8 reg,u16 *val) +static int smc911x_miiphy_read (struct mii_dev *bus,int phy,int devad, +int reg) { -struct eth_device *dev =eth_get_dev_by_name (devname); -if (dev) -return smc911x_eth_phy_read (dev, phy, reg, val); +u16 val =0 ; +struct eth_device *dev =eth_get_dev_by_name (bus->name); +if (dev) { +int retval =smc911x_eth_phy_read (dev, phy, reg, &val); +if (retval <0 ) +return retval; +return val; + }return -1 ; }/* wrapper for smc911x_eth_phy_write */ -static int smc911x_miiphy_write (const char *devname,u8 phy,u8 reg,u16 val) +static int smc911x_miiphy_write (struct mii_dev *bus,int phy,int devad, +int reg,u16 val) { -struct eth_device *dev =eth_get_dev_by_name (devname); +struct eth_device *dev =eth_get_dev_by_name (bus->name);if (dev)return smc911x_eth_phy_write (dev, phy, reg, val);return -1 ;
@@ -276,7 +283,17 @@ int smc911x_initialize(u8 dev_num, int base_addr)eth_register (dev);#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, smc911x_miiphy_read, smc911x_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = smc911x_miiphy_read; + mdiodev->write = smc911x_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif return 1 ;
drivers/qe/uec.c +21 -11
@@ -623,20 +623,20 @@ static int uec_miiphy_find_dev_by_name(const char *devname)* Returns: * 0 on success */ -static int uec_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value) +static int uec_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg) { +unsigned short value =0 ;int devindex =0 ; -if (devname ==NULL || value ==NULL ) { +if (bus->name ==NULL || &value ==NULL ) {debug ("%s: NULL pointer given\n" , __FUNCTION__); }else { - devindex =uec_miiphy_find_dev_by_name (devname); + devindex =uec_miiphy_find_dev_by_name (bus->name);if (devindex >=0 ) { - *value =uec_read_phy_reg (devlist[devindex], addr, reg); + value =uec_read_phy_reg (devlist[devindex], addr, reg); } } -return 0 ; +return value; }/*
@@ -645,15 +645,15 @@ static int uec_miiphy_read(const char *devname, unsigned char addr,* Returns: * 0 on success */ -static int uec_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value) +static int uec_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value) {int devindex =0 ; -if (devname ==NULL ) { +if (bus->name ==NULL ) {debug ("%s: NULL pointer given\n" , __FUNCTION__); }else { - devindex =uec_miiphy_find_dev_by_name (devname); + devindex =uec_miiphy_find_dev_by_name (bus->name);if (devindex >=0 ) {uec_write_phy_reg (devlist[devindex], addr, reg, value); }
@@ -1399,7 +1399,17 @@ int uec_initialize(bd_t *bis, uec_info_t *uec_info) }#if defined(CONFIG_MII ) || defined(CONFIG_CMD_MII ) -miiphy_register (dev->name, uec_miiphy_read, uec_miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = uec_miiphy_read; + mdiodev->write = uec_miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif return 1 ;
Signature · 1 line
1.7.11.5
[U-Boot] net: mii: Use spatch to update miiphy_register
PATCH v2 3/5 net: mii: Changes not made by spatch
In reply to Joe HershbergerIf the functions passed to the registration function are not in the same C file (extern) then spatch will not handle the dependent changes.
Make those changes manually.
For the 4xx related files:
---
Changes in v2:
- Added a blank line
arch/m68k/include/asm/fec.h | 9 +++++---- arch/powerpc/cpu/ppc4xx/miiphy.c | 11 ++++------- drivers/net/4xx_enet.c | 7 +++---- drivers/net/bcm-sf2-eth-gmac.c | 18 +++++++----------- drivers/net/bcm-sf2-eth.c | 13 ++++++++++++- drivers/net/bcm-sf2-eth.h | 8 ++++---- drivers/net/mcfmii.c | 19 ++++++------------- drivers/net/phy/miiphybb.c | 25 ++++++++----------------- include/miiphy.h | 7 +++---- 9 files changed, 52 insertions(+), 65 deletions(-)
arch/m68k/include/asm/fec.h +5 -4
@@ -15,6 +15,8 @@ #ifndef fec_h #define fec_h +#include <phy.h> + /* Buffer descriptors used FEC. */ typedef struct cpm_buf_desc {
@@ -341,10 +343,9 @@ int fecpin_setclear(struct eth_device *dev, int setclear);void __mii_init (void );uint mii_send (uint mii_cmd);int mii_discover_phy (struct eth_device *dev); -int mcffec_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value); -int mcffec_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value); +int mcffec_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg); +int mcffec_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value);#endif #endif /* fec_h */
arch/powerpc/cpu/ppc4xx/miiphy.c +4 -7
@@ -318,8 +318,7 @@ static int emac_miiphy_command(u8 addr, u8 reg, int cmd, u16 value)return 0 ; } -int emac4xx_miiphy_read (const char *devname,unsigned char addr,unsigned char reg, -unsigned short *value) +int emac4xx_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg) {unsigned long sta_reg;unsigned long emac_reg;
@@ -330,17 +329,15 @@ int emac4xx_miiphy_read (const char *devname, unsigned char addr, unsigned charreturn -1 ; sta_reg =in_be32 ((void *)EMAC0_STACR + emac_reg); - *value = sta_reg >>16 ; - -return 0 ; +return sta_reg >>16 ; }/***********************************************************/ /* write a phy reg and return the value with a rc */ /***********************************************************/ -int emac4xx_miiphy_write (const char *devname,unsigned char addr,unsigned char reg, -unsigned short value) +int emac4xx_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value) {return emac_miiphy_command (addr, reg,EMAC_STACR_WRITE , value); }
drivers/net/4xx_enet.c +3 -4
@@ -283,10 +283,9 @@ static void mal_err (struct eth_device *dev, unsigned long isr,static void emac_err (struct eth_device *dev,unsigned long isr);extern int phy_setup_aneg (char *devname,unsigned char addr); -extern int emac4xx_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value); -extern int emac4xx_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value); +int emac4xx_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg); +int emac4xx_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value);int board_emac_count (void );
drivers/net/bcm-sf2-eth-gmac.c +7 -11
@@ -596,12 +596,10 @@ bool gmac_mii_busywait(unsigned int timeout)return tmp & (1 <<GMAC_MII_BUSY_SHIFT ); } -int gmac_miiphy_read (const char *devname,unsigned char phyaddr, -unsigned char reg,unsigned short *value) +int gmac_miiphy_read (struct mii_dev *bus,int phyaddr,int devad,int reg) {uint32_t tmp =0 ; - - (void )devname; +u16 value =0 ;/* Busy wait timeout is 1ms */ if (gmac_mii_busywait (1000 )) {
@@ -621,18 +619,16 @@ int gmac_miiphy_read(const char *devname, unsigned char phyaddr,return -1 ; } - *value =readl (GMAC_MII_DATA_ADDR ) &0xffff ; -debug ("MII read data 0x%x\n" , *value); -return 0 ; + value =readl (GMAC_MII_DATA_ADDR ) &0xffff ; +debug ("MII read data 0x%x\n" , value); +return value; } -int gmac_miiphy_write (const char *devname,unsigned char phyaddr, -unsigned char reg,unsigned short value) +int gmac_miiphy_write (struct mii_dev *bus,int phyaddr,int devad,int reg, +u16 value) {uint32_t tmp =0 ; - (void )devname; -/* Busy wait timeout is 1ms */ if (gmac_mii_busywait (1000 )) {error ("%s: Prepare MII write: MII/MDIO busy\n" , __func__);
drivers/net/bcm-sf2-eth.c +12 -1
@@ -244,7 +244,18 @@ int bcm_sf2_eth_register(bd_t *bis, u8 dev_num)eth_register (dev);#ifdef CONFIG_CMD_MII -miiphy_register (dev->name, eth->miiphy_read, eth->miiphy_write); +int retval; +struct mii_dev *mdiodev =mdio_alloc (); + +if (!mdiodev) +return -ENOMEM ; +strncpy (mdiodev->name, dev->name,MDIO_NAME_LEN ); + mdiodev->read = eth->miiphy_read; + mdiodev->write = eth->miiphy_write; + + retval =mdio_register (mdiodev); +if (retval <0 ) +return retval;#endif /* Initialization */
drivers/net/bcm-sf2-eth.h +4 -4
@@ -54,10 +54,10 @@ struct eth_info {struct phy_device *port[BCM_ETH_MAX_PORT_NUM ];int port_num; -int (*miiphy_read)(const char *devname,unsigned char phyaddr, -unsigned char reg,unsigned short *value); -int (*miiphy_write)(const char *devname,unsigned char phyaddr, -unsigned char reg,unsigned short value); +int (*miiphy_read)(struct mii_dev *bus,int phyaddr,int devad, +int reg); +int (*miiphy_write)(struct mii_dev *bus,int phyaddr,int devad, +int reg,u16 value);int (*mac_init)(struct eth_device *dev);int (*enable_mac)(void );
drivers/net/mcfmii.c +6 -13
@@ -277,8 +277,7 @@ void __mii_init(void)* Otherwise they hang in mii_send() !!! Sorry! */ -int mcffec_miiphy_read (const char *devname,unsigned char addr,unsigned char reg, -unsigned short *value) +int mcffec_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg) {short rdreg;/* register working value */
@@ -287,28 +286,22 @@ int mcffec_miiphy_read(const char *devname, unsigned char addr, unsigned char re#endif rdreg =mii_send (mk_mii_read (addr, reg)); - *value = rdreg; -#ifdef MII_DEBUG -printf ("0x%04x\n" , *value); +printf ("0x%04x\n" , rdreg);#endif -return 0 ; +return rdreg; } -int mcffec_miiphy_write (const char *devname,unsigned char addr,unsigned char reg, -unsigned short value) +int mcffec_miiphy_write (struct mii_dev *bus,int addr,int devad,int reg, +u16 value) {#ifdef MII_DEBUG -printf ("miiphy_write(0x%x) @ 0x%x = " , reg, addr); +printf ("miiphy_write(0x%x) @ 0x%x = 0x%04x\n" , reg, addr, value);#endif mii_send (mk_mii_write (addr, reg, value)); -#ifdef MII_DEBUG -printf ("0x%04x\n" , value); -#endif -return 0 ; }
drivers/net/phy/miiphybb.c +8 -17
@@ -230,24 +230,18 @@ static void miiphy_pre(struct bb_miiphy_bus *bus, char read,* Returns: * 0 on success */ -int bb_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value) +int bb_miiphy_read (struct mii_dev *miidev,int addr,int devad,int reg) {short rdreg;/* register working value */ int v;int j;/* counter */ struct bb_miiphy_bus *bus; - bus =bb_miiphy_getbus (devname); + bus =bb_miiphy_getbus (miidev->name);if (bus ==NULL ) {return -1 ; } -if (value ==NULL ) { -puts ("NULL value pointer\n" ); -return -1 ; - } -miiphy_pre (bus,1 , addr, reg);/* tri-state our MDIO I/O pin so we can read */
@@ -267,8 +261,7 @@ int bb_miiphy_read(const char *devname, unsigned char addr, bus->set_mdc (bus,1 ); bus->delay (bus); } -/* There is no PHY, set value to 0xFFFF and return */ - *value =0xFFFF ; +/* There is no PHY, return */ return -1 ; }
@@ -294,13 +287,11 @@ int bb_miiphy_read(const char *devname, unsigned char addr, bus->set_mdc (bus,1 ); bus->delay (bus); - *value = rdreg; -#ifdef DEBUG -printf ("miiphy_read(0x%x) @ 0x%x = 0x%04x\n" , reg, addr, *value); +printf ("miiphy_read(0x%x) @ 0x%x = 0x%04x\n" , reg, addr, rdreg);#endif -return 0 ; +return rdreg; }
@@ -311,13 +302,13 @@ int bb_miiphy_read(const char *devname, unsigned char addr,* Returns: * 0 on success */ -int bb_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value) +int bb_miiphy_write (struct mii_dev *miidev,int addr,int devad,int reg, +u16 value) {struct bb_miiphy_bus *bus;int j;/* counter */ - bus =bb_miiphy_getbus (devname); + bus =bb_miiphy_getbus (miidev->name);if (bus ==NULL ) {/* Bus not found! */ return -1 ;
include/miiphy.h +3 -4
@@ -86,10 +86,9 @@ extern struct bb_miiphy_bus bb_miiphy_buses[];extern int bb_miiphy_buses_num;void bb_miiphy_init (void ); -int bb_miiphy_read (const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value); -int bb_miiphy_write (const char *devname,unsigned char addr, -unsigned char reg,unsigned short value); +int bb_miiphy_read (struct mii_dev *miidev,int addr,int devad,int reg); +int bb_miiphy_write (struct mii_dev *miidev,int addr,int devad,int reg, +u16 value);#endif /* phy seed setup */
Signature · 1 line
1.7.11.5
[U-Boot] net: mii: Changes not made by spatch
PATCH v2 4/5 net: mii: Fix changes made by spatch
In reply to Joe HershbergerSome of the changes were a bit too complex.
---
Changes in v2: None
arch/powerpc/cpu/mpc8xx/fec.c | 6 ++++-- board/gdsys/405ex/io64.c | 3 +-- drivers/net/bfin_mac.c | 21 +++++++++++++++------ drivers/net/davinci_emac.c | 11 +++++------ drivers/net/ep93xx_eth.c | 1 - drivers/net/lpc32xx_eth.c | 23 ++--------------------- drivers/net/smc911x.c | 4 ++-- drivers/qe/uec.c | 2 +- 8 files changed, 30 insertions(+), 41 deletions(-)
arch/powerpc/cpu/mpc8xx/fec.c +4 -2
@@ -6,10 +6,12 @@*/ #include <common.h> -#include <malloc.h> +#include <command.h> #include <commproc.h> +#include <malloc.h> #include <net.h> -#include <command.h> + +#include <phy.h> DECLARE_GLOBAL_DATA_PTR ;
board/gdsys/405ex/io64.c +1 -2
@@ -264,8 +264,7 @@ int last_stage_init(void)putc (slash[k %8 ]); } -int retval; -struct mii_dev *mdiodev =mdio_alloc (); + mdiodev =mdio_alloc ();if (!mdiodev)return -ENOMEM ;strncpy (mdiodev->name,CONFIG_SYS_GBIT_MII1_BUSNAME ,MDIO_NAME_LEN );
drivers/net/bfin_mac.c +15 -6
@@ -13,6 +13,7 @@#include <command.h> #include <malloc.h> #include <miiphy.h> +#include <linux/mdio.h> #include <linux/mii.h> #include <asm/blackfin.h>
@@ -126,6 +127,8 @@ int bfin_EMAC_initialize(bd_t *bis) retval =mdio_register (mdiodev);if (retval <0 )return retval; + + dev->priv = mdiodev;#endif return 0 ;
@@ -234,8 +237,9 @@ static int bfin_EMAC_recv(struct eth_device *dev)static int bfin_miiphy_init (struct eth_device *dev,int *opmode) {const unsigned short pins[] =CONFIG_BFIN_MAC_PINS ; -u16 phydat; +int phydat;size_t count; +struct mii_dev *mdiodev = dev->priv;/* Enable PHY output */ bfin_write_VR_CTL (bfin_read_VR_CTL () |CLKBUFOE );
@@ -248,12 +252,15 @@ static int bfin_miiphy_init(struct eth_device *dev, int *opmode)bfin_write_EMAC_SYSCTL (RXDWA |RXCKS |SET_MDCDIV (MDC_FREQ_TO_DIV (CONFIG_PHY_CLOCK_FREQ )));/* turn on auto-negotiation and wait for link to come up */ -bfin_miiphy_write (dev->name,CONFIG_PHY_ADDR ,MII_BMCR ,BMCR_ANENABLE ); +bfin_miiphy_write (mdiodev,CONFIG_PHY_ADDR ,MDIO_DEVAD_NONE ,MII_BMCR , +BMCR_ANENABLE ); count =0 ;while (1 ) { ++count; -if (bfin_miiphy_read (dev->name,CONFIG_PHY_ADDR ,MII_BMSR , &phydat)) -return -1 ; + phydat =bfin_miiphy_read (mdiodev,CONFIG_PHY_ADDR , +MDIO_DEVAD_NONE ,MII_BMSR ); +if (phydat <0 ) +return phydat;if (phydat &BMSR_LSTATUS )break ;if (count >30000 ) {
@@ -264,8 +271,10 @@ static int bfin_miiphy_init(struct eth_device *dev, int *opmode) }/* see what kind of link we have */ -if (bfin_miiphy_read (dev->name,CONFIG_PHY_ADDR ,MII_LPA , &phydat)) -return -1 ; + phydat =bfin_miiphy_read (mdiodev,CONFIG_PHY_ADDR ,MDIO_DEVAD_NONE , +MII_LPA ); +if (phydat <0 ) +return phydat;if (phydat &LPA_DUPLEX ) *opmode =FDMODE ;else
drivers/net/davinci_emac.c +5 -6
@@ -243,11 +243,10 @@ int davinci_eth_phy_read(u_int8_t phy_addr, u_int8_t reg_num, u_int16_t *data)if (tmp &MDIO_USERACCESS0_ACK ) { *data = tmp &0xffff ; -return (1 ); +return 0 ; } - *data =-1 ; -return (0 ); +return -EIO ; }/* Write to a PHY register via MDIO inteface. Blocks until operation is complete. */
@@ -268,7 +267,7 @@ int davinci_eth_phy_write(u_int8_t phy_addr, u_int8_t reg_num, u_int16_t data)while (readl (&adap_mdio->USERACCESS0) &MDIO_USERACCESS0_GO ) ; -return (1 ); +return 0 ; }/* PHY functions for a generic PHY */
@@ -394,7 +393,7 @@ static int davinci_mii_phy_read(struct mii_dev *bus, int addr, int devad, int reg) {unsigned short value =0 ; -int retval = (davinci_eth_phy_read (addr, reg, &value) ?0 :1 ); +int retval =davinci_eth_phy_read (addr, reg, &value);if (retval <0 )return retval;return value;
@@ -403,7 +402,7 @@ static int davinci_mii_phy_read(struct mii_dev *bus, int addr, int devad,static int davinci_mii_phy_write (struct mii_dev *bus,int addr,int devad,int reg,u16 value) { -return (davinci_eth_phy_write (addr, reg, value) ?0 :1 ); +return davinci_eth_phy_write (addr, reg, value); }#endif
drivers/net/ep93xx_eth.c +0 -1
@@ -566,7 +566,6 @@ static int ep93xx_miiphy_read(struct mii_dev *bus, int addr, int devad,BUG_ON (bus->name ==NULL );BUG_ON (addr >MII_ADDRESS_MAX );BUG_ON (reg >MII_REGISTER_MAX ); -BUG_ON (&value ==NULL );/* * Save the current SelfCTL register value. Set MAC to suppress
drivers/net/lpc32xx_eth.c +2 -21
@@ -336,25 +336,6 @@ static int mii_reg_write(struct mii_dev *bus, int phy_adr, int devad, }#endif -#if defined(CONFIG_PHYLIB ) -int lpc32xx_eth_phy_read (struct mii_dev *bus,int phy_addr,int dev_addr, -int reg_addr) -{ -u16 data; -int ret; - ret =mii_reg_read (bus->name, phy_addr, reg_addr, &data); -if (ret) -return ret; -return data; -} - -int lpc32xx_eth_phy_write (struct mii_dev *bus,int phy_addr,int dev_addr, -int reg_addr,u16 data) -{ -return mii_reg_write (bus->name, phy_addr, reg_addr, data); -} -#endif -/* * Provide default Ethernet buffers base address if target did not. * Locate buffers in SRAM at 0x00001000 to avoid cache issues and
@@ -583,8 +564,8 @@ int lpc32xx_eth_phylib_init(struct eth_device *dev, int phyid)printf ("mdio_alloc failed\n" );return -ENOMEM ; } - bus->read = lpc32xx_eth_phy_read; - bus->write = lpc32xx_eth_phy_write; + bus->read = mii_reg_read; + bus->write = mii_reg_write;strcpy (bus->name, dev->name); ret =mdio_register (bus);
drivers/net/smc911x.c +2 -2
@@ -230,7 +230,7 @@ static int smc911x_miiphy_read(struct mii_dev *bus, int phy, int devad,return retval;return val; } -return -1 ; +return -ENODEV ; }/* wrapper for smc911x_eth_phy_write */ static int smc911x_miiphy_write(struct mii_dev *bus, int phy, int devad,
@@ -239,7 +239,7 @@ static int smc911x_miiphy_write(struct mii_dev *bus, int phy, int devad,struct eth_device *dev =eth_get_dev_by_name (bus->name);if (dev)return smc911x_eth_phy_write (dev, phy, reg, val); - return -1; + return -ENODEV; }#endif
drivers/qe/uec.c +1 -1
@@ -628,7 +628,7 @@ static int uec_miiphy_read(struct mii_dev *bus, int addr, int devad, int reg)unsigned short value =0 ;int devindex =0 ; -if (bus->name ==NULL || &value ==NULL ) { +if (bus->name ==NULL ) {debug ("%s: NULL pointer given\n" , __FUNCTION__); }else { devindex =uec_miiphy_find_dev_by_name (bus->name);
Signature · 1 line
1.7.11.5
[U-Boot] net: mii: Fix changes made by spatch
PATCH v2 5/5 net: mii: Clean up legacy glue that is not used
In reply to Joe HershbergerThe cleanup of the legacy mii registration API that's no longer used now that the drivers have been converted to use the (more) modern API.
---
Changes in v2: None
common/miiphyutil.c | 73 ----------------------------------------------------- include/miiphy.h | 13 ---------- 2 files changed, 86 deletions(-)
common/miiphyutil.c +0 -73
@@ -65,79 +65,6 @@ void miiphy_init(void) current_mii =NULL ; } -static int legacy_miiphy_read (struct mii_dev *bus,int addr,int devad,int reg) -{ -unsigned short val; -int ret; -struct legacy_mii_dev *ldev = bus->priv; - - ret = ldev->read (bus->name, addr, reg, &val); - -return ret ?-1 : (int )val; -} - -static int legacy_miiphy_write (struct mii_dev *bus,int addr,int devad, -int reg,u16 val) -{ -struct legacy_mii_dev *ldev = bus->priv; - -return ldev->write (bus->name, addr, reg, val); -} - -/***************************************************************************** -* -* Register read and write MII access routines for the device <name>. -* This API is now deprecated. Please use mdio_alloc and mdio_register, instead. -*/ -void miiphy_register (const char *name, -int (*read)(const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value), -int (*write)(const char *devname,unsigned char addr, -unsigned char reg,unsigned short value)) -{ -struct mii_dev *new_dev; -struct legacy_mii_dev *ldev; - -BUG_ON (strlen (name) >=MDIO_NAME_LEN ); - -/* check if we have unique name */ - new_dev =miiphy_get_dev_by_name (name); -if (new_dev) { -printf ("miiphy_register: non unique device name '%s'\n" , name); -return ; - } - -/* allocate memory */ - new_dev =mdio_alloc (); - ldev =malloc (sizeof (*ldev)); - -if (new_dev ==NULL || ldev ==NULL ) { -printf ("miiphy_register: cannot allocate memory for '%s'\n" , - name); -free (ldev); -mdio_free (new_dev); -return ; - } - -/* initalize mii_dev struct fields */ - new_dev->read = legacy_miiphy_read; - new_dev->write = legacy_miiphy_write; -strncpy (new_dev->name, name,MDIO_NAME_LEN ); - new_dev->name[MDIO_NAME_LEN -1 ] =0 ; - ldev->read = read; - ldev->write = write; - new_dev->priv = ldev; - -debug ("miiphy_register: added '%s', read=0x%08lx, write=0x%08lx\n" , - new_dev->name, ldev->read, ldev->write); - -/* add it to the list */ -list_add_tail (&new_dev->link, &mii_devs); - -if (!current_mii) - current_mii = new_dev; -} -struct mii_dev *mdio_alloc (void ) {struct mii_dev *bus;
include/miiphy.h +0 -13
@@ -21,13 +21,6 @@#include <net.h> #include <phy.h> -struct legacy_mii_dev { -int (*read)(const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value); -int (*write)(const char *devname,unsigned char addr, -unsigned char reg,unsigned short value); -}; -int miiphy_read (const char *devname,unsigned char addr,unsigned char reg,unsigned short *value); int miiphy_write(const char *devname, unsigned char addr, unsigned char reg,
@@ -44,12 +37,6 @@ int miiphy_link(const char *devname, unsigned char addr);void miiphy_init (void ); -void miiphy_register (const char *devname, -int (*read)(const char *devname,unsigned char addr, -unsigned char reg,unsigned short *value), -int (*write)(const char *devname,unsigned char addr, -unsigned char reg,unsigned short value)); -int miiphy_set_current_dev (const char *devname);const char *miiphy_get_current_dev (void );struct mii_dev *mdio_get_current_dev (void );
Signature · 1 line
1.7.11.5
[U-Boot] net: mii: Clean up legacy glue that is not used
v2 cover Remove calls from net drivers to legacy miiphy_register() entry-point
In reply to Joe HershbergerQuoted 6 lines · Joe Hershberger
This is an effort to migrate closer to the phylib approach so that a new DM approach can be developed from a single starting point. The more of this legacy code that can be removed, the easier it will be to move forward.
Hi Joe,
It was nice to see spatch put to work. However davinci_emac crashes U-Boot now. It is an invasive patch so it might take time to check everything is in order, so unless you already have a follow-up series I can send in a trivial patch just now to fix that for davinci_emac.
Karl
Quoted 60 lines
Changes in v2:
- Added a blank line
- Run against the current master which adds one more driver to convert (drivers/net/macb.c)
- Use an updated spatch that does not put closing paren on the next lineJoe Hershberger (5):
scripts: Add a cocci patch formiiphy_register
net: mii: Use spatch to updatemiiphy_register
net: mii: Changes not made by spatch
net: mii: Fix changes made by spatch
net: mii: Clean up legacy glue that is not usedarch/m68k/include/asm/fec.h | 9 +- arch/mips/mach-au1x00/au1x00_eth.c | 25 +++-- arch/powerpc/cpu/mpc8260/ether_fcc.c | 13 ++- arch/powerpc/cpu/mpc85xx/ether_fcc.c | 13 ++- arch/powerpc/cpu/mpc8xx/fec.c | 40 +++++--- arch/powerpc/cpu/ppc4xx/miiphy.c | 11 +-- board/gdsys/405ep/io.c | 13 ++- board/gdsys/405ep/iocon.c | 27 +++++- board/gdsys/405ex/io64.c | 25 ++++- board/gdsys/mpc8308/hrcon.c | 27 +++++- board/gdsys/mpc8308/strider.c | 27 +++++- common/miiphyutil.c | 73 --------------- drivers/net/4xx_enet.c | 20 ++-- drivers/net/armada100_fec.c | 33 ++++--- drivers/net/at91_emac.c | 28 ++++-- drivers/net/bcm-sf2-eth-gmac.c | 18 ++-- drivers/net/bcm-sf2-eth.c | 13 ++- drivers/net/bcm-sf2-eth.h | 8 +- drivers/net/bfin_mac.c | 43 ++++++--- drivers/net/davinci_emac.c | 34 +++++-- drivers/net/eepro100.c | 34 ++++--- drivers/net/enc28j60.c | 26 ++++-- drivers/net/ep93xx_eth.c | 40 +++++--- drivers/net/fsl_mcdmafec.c | 13 ++- drivers/net/ftmac110.c | 35 ++++--- drivers/net/lpc32xx_eth.c | 52 +++++------ drivers/net/macb.c | 46 +++++++--- drivers/net/mcffec.c | 13 ++- drivers/net/mcfmii.c | 19 ++-- drivers/net/mpc512x_fec.c | 30 ++++-- drivers/net/mpc5xxx_fec.c | 30 ++++-- drivers/net/mvgbe.c | 33 +++++-- drivers/net/phy/miiphybb.c | 25 ++--- drivers/net/sh_eth.c | 12 ++- drivers/net/smc911x.c | 35 +++++-- drivers/qe/uec.c | 32 ++++--- include/miiphy.h | 20 +--- scripts/coccinelle/net/mdio_register.cocci | 142 +++++++++++++++++++++++++++++ 38 files changed, 762 insertions(+), 375 deletions(-) create mode 100644 scripts/coccinelle/net/mdio_register.cocciSignature · 6 lines
1.7.11.5 _______________________________________________ U-Boot mailing list U-Boot at lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
v2 cover Remove calls from net drivers to legacy miiphy_register() entry-point
Hi Karl,
Quoted 8 lines · Karl Beldan
Quoted 6 lines · Joe Hershberger
This is an effort to migrate closer to the phylib approach so that a new DM approach can be developed from a single starting point. The more of this legacy code that can be removed, the easier it will be to move forward.
Quoted 6 lines
Hi Joe,
It was nice to see spatch put to work. However
davinci_emaccrashes U-Boot now. It is an invasive patch so it might take time to check everything is in order, so unless you already have a follow-up series I can send in a trivial patch just now to fix that fordavinci_emac.
That's a bummer. Is it a systemic problem that you expect to affect more drivers or is it something that is likely to only affect davinci?
Yes, please sent a patch to fix it up.
Thanks!
-Joe
v2 cover Remove calls from net drivers to legacy miiphy_register() entry-point
Quoted 13 lines · Joe Hershberger
Hi Karl,
Quoted 10 lines · Karl Beldan
Quoted 6 lines · Joe Hershberger
This is an effort to migrate closer to the phylib approach so that a new DM approach can be developed from a single starting point. The more of this legacy code that can be removed, the easier it will be to move forward.
Hi Joe,
Quoted 8 lines
Quoted 4 lines
It was nice to see spatch put to work. However
davinci_emaccrashes U-Boot now. It is an invasive patch so it might take time to check everything is in order, so unless you already have a follow-up series I can send in a trivial patch just now to fix that fordavinci_emac.That's a bummer. Is it a systemic problem that you expect to affect more drivers or is it something that is likely to only affect davinci?
It is likely to only affect davinci, just a mix up of the internal MDIO accessors return code (not in the changes made by spatch proper).
It would be better in the future in the davinci code to just use the same convention as the mdiodev accessors but I chose a non-invasive quick to check follow-up patch.
Rgds,
Karl