Fix Ethernet init() return codes
Subsystems (2)
PATCH v3 1/1 Fix Ethernet init() return codes
Change return values of init() functions in all Ethernet drivers to conform to the following:
Quoted 1 line
=0: Success
<0: Failure
All drivers going forward should return 0 on success. Current drivers that return 1 on success were left as-is to minimize changes.
Signed-off-by Ben Warren <[email protected]>
Acked-by Stefan Roese <[email protected]>
Acked-by Kim Phillips <[email protected]>
Acked-by Timur Tabi <[email protected]>
---
Rebased against current repo.
cpu/ixp/npe/npe.c | 8 ++++---- cpu/mpc8xx/fec.c | 4 ++-- drivers/net/dc2114x.c | 4 ++-- drivers/net/eepro100.c | 4 ++-- drivers/net/macb.c | 4 ++-- drivers/net/pcnet.c | 4 ++-- drivers/net/rtl8139.c | 4 ++-- drivers/net/rtl8169.c | 3 ++- drivers/net/tsec.c | 2 +- drivers/net/tsi108_eth.c | 4 ++-- drivers/net/uli526x.c | 6 +++--- drivers/qe/uec.c | 6 +++--- net/eth.c | 2 +- 13 files changed, 28 insertions(+), 27 deletions(-)
cpu/ixp/npe/npe.c +4 -4
@@ -408,25 +408,25 @@ static int npe_init(struct eth_device *dev, bd_t * bis)if (ixEthAccPortRxCallbackRegister (p_npe->eth_id, npe_rx_callback, (u32 )p_npe) !=IX_ETH_ACC_SUCCESS ) {printf ("can't register RX callback!\n" ); -return 0 ; +return -1 ; }if (ixEthAccPortTxDoneCallbackRegister (p_npe->eth_id, npe_tx_callback, (u32 )p_npe) !=IX_ETH_ACC_SUCCESS ) {printf ("can't register TX callback!\n" ); -return 0 ; +return -1 ; }npe_set_mac_address (dev);if (ixEthAccPortEnable (p_npe->eth_id) !=IX_ETH_ACC_SUCCESS ) {printf ("can't enable port!\n" ); -return 0 ; +return -1 ; } p_npe->active =1 ; -return 1 ; +return 0 ; }#if 0 /* test-only: probably have to deal with it when booting linux (for a clean state) */
cpu/mpc8xx/fec.c +2 -2
@@ -727,7 +727,7 @@ static int fec_init (struct eth_device *dev, bd_t * bd)if (efis->actual_phy_addr ==-1 ) {printf ("Unable to discover phy!\n" ); -return 0 ; +return -1 ; }#else efis->actual_phy_addr =-1 ;
@@ -763,7 +763,7 @@ static int fec_init (struct eth_device *dev, bd_t * bd) efis->initialized =1 ; -return 1 ; +return 0 ; }
drivers/net/dc2114x.c +2 -2
@@ -332,7 +332,7 @@ static int dc21x4x_init(struct eth_device* dev, bd_t* bis)if ((INL (dev,DE4X5_STS ) & (STS_TS |STS_RS )) !=0 ) {printf ("Error: Cannot reset ethernet controller.\n" ); -return 0 ; +return -1 ; }#ifdef CONFIG_TULIP_SELECT_MEDIA
@@ -382,7 +382,7 @@ static int dc21x4x_init(struct eth_device* dev, bd_t* bis)send_setup_frame (dev, bis); -return 1 ; +return 0 ; }static int dc21x4x_send (struct eth_device * dev,volatile void *packet,int length)
drivers/net/eepro100.c +2 -2
@@ -485,7 +485,7 @@ int eepro100_initialize (bd_t * bis)static int eepro100_init (struct eth_device *dev,bd_t * bis) { -int i, status =0 ; +int i, status =-1 ;int tx_cur;struct descriptor *ias_cmd, *cfg_cmd;
@@ -598,7 +598,7 @@ static int eepro100_init (struct eth_device *dev, bd_t * bis) goto Done; } - status =1 ; + status =0 ; Done:return status;
drivers/net/macb.c +2 -2
@@ -423,12 +423,12 @@ static int macb_init(struct eth_device *netdev, bd_t *bd)#endif if (!macb_phy_init (macb)) -return 0 ; +return -1 ;/* Enable TX and RX */ macb_writel (macb,NCR ,MACB_BIT (TE ) |MACB_BIT (RE )); -return 1 ; +return 0 ; }static void macb_halt (struct eth_device *netdev)
drivers/net/pcnet.c +2 -2
@@ -402,7 +402,7 @@ static int pcnet_init(struct eth_device* dev, bd_t *bis)if (i <=0 ) {printf ("%s: TIMEOUT: controller init failed\n" , dev->name);pcnet_reset (dev); -return 0 ; +return -1 ; }/*
@@ -410,7 +410,7 @@ static int pcnet_init(struct eth_device* dev, bd_t *bis)*/ pcnet_write_csr (dev,0 ,0x0002 ); -return 1 ; +return 0 ; }static int pcnet_send (struct eth_device * dev,volatile void *packet,int pkt_len)
drivers/net/rtl8139.c +2 -2
@@ -273,10 +273,10 @@ static int rtl8139_probe(struct eth_device *dev, bd_t *bis)if (inb (ioaddr + MediaStatus) & MSRLinkFail) {printf ("Cable not connected or other link failure\n" ); -return (0 ); +return -1 ; } -return 1 ; +return 0 ; }/* Serial EEPROM section. */
drivers/net/rtl8169.c +2 -1
@@ -624,7 +624,7 @@ static void rtl8169_init_ring(struct eth_device *dev)/************************************************************************** RESET - Finish setting up the ethernet interface ***************************************************************************/ -static void rtl_reset (struct eth_device *dev,bd_t *bis) +static int rtl_reset (struct eth_device *dev,bd_t *bis) {int i;
@@ -660,6 +660,7 @@ static void rtl_reset(struct eth_device *dev, bd_t *bis)#ifdef DEBUG_RTL8169 printf ("%s elapsed time : %d\n" , __FUNCTION__,currticks ()-stime);#endif +return 0 ; }/**************************************************************************
drivers/net/tsec.c +1 -1
@@ -232,7 +232,7 @@ int tsec_init(struct eth_device *dev, bd_t * bd)startup_tsec (dev);/* If there's no link, fail */ -return priv->link; +return (priv->link ?0 :-1 ); }
drivers/net/tsi108_eth.c +2 -2
@@ -792,7 +792,7 @@ static int tsi108_eth_probe (struct eth_device *dev, bd_t * bis) (dev->enetaddr[0 ] <<16 );if (marvell_88e_phy_config (dev, &speed, &duplex) ==0 ) -return 0 ; +return -1 ; value = MAC_CONFIG_2_PREAMBLE_LENGTH(7) | MAC_CONFIG_2_PAD_CRC |
@@ -864,7 +864,7 @@ static int tsi108_eth_probe (struct eth_device *dev, bd_t * bis)/* enable TX queue */ reg_TX_CONTROL (base) =TX_CONTROL_GO |0x01 ; -return 1 ; +return 0 ; }/*
drivers/net/uli526x.c +3 -3
@@ -279,12 +279,12 @@ static int uli526x_init_one(struct eth_device *dev, bd_t *bis) db->desc_pool_ptr = (uchar *)&desc_pool_array[0 ]; db->desc_pool_dma_ptr = (dma_addr_t)&desc_pool_array[0 ];if (db->desc_pool_ptr ==NULL ) -return 0 ; +return -1 ; db->buf_pool_ptr = &buf_pool[0 ]; db->buf_pool_dma_ptr = (dma_addr_t)&buf_pool[0 ];if (db->buf_pool_ptr ==NULL ) -return 0 ; +return -1 ; db->first_tx_desc = (struct tx_desc *) db->desc_pool_ptr; db->first_tx_desc_dma = db->desc_pool_dma_ptr;
@@ -331,7 +331,7 @@ static int uli526x_init_one(struct eth_device *dev, bd_t *bis) db->cr6_data |=ULI526X_TXTH_256 ; db->cr0_data =CR0_DEFAULT ;uli526x_init (dev); -return 1 ; +return 0 ; }static void uli526x_disable (struct eth_device *dev)
drivers/qe/uec.c +3 -3
@@ -1129,7 +1129,7 @@ static int uec_init(struct eth_device* dev, bd_t *bd)if (dev->enetaddr[0 ] &0x01 ) {printf ("%s: MacAddress is multcast address\n" , __FUNCTION__); -return 0 ; +return -1 ; }uec_set_mac_address (uec, dev->enetaddr); uec->the_first_run =1 ;
@@ -1138,10 +1138,10 @@ static int uec_init(struct eth_device* dev, bd_t *bd) err =uec_open (uec,COMM_DIR_RX_AND_TX );if (err) {printf ("%s: cannot enable UEC device\n" , dev->name); -return 0 ; +return -1 ; } -return uec->mii_info->link; +return (uec->mii_info->link ?0 :-1 ); }static void uec_halt (struct eth_device * dev)
net/eth.c +1 -1
@@ -433,7 +433,7 @@ int eth_init(bd_t *bis) do { debug ("Trying %s\n", eth_current->name); - if (!eth_current->init(eth_current,bis)) { + if (eth_current->init(eth_current,bis) >= 0) { eth_current->state = ETH_STATE_ACTIVE; return 0;
Signature · 1 line
1.5.2.5
Wolfgang Denk
AppliedPATCH v3 1/1 Fix Ethernet init() return codes
Quoted 9 lines · In message <[email protected]> you wrote:
Change return values of
init()functions in all Ethernet drivers to conform to the following:Quoted 1 line
=0: Success
<0: Failure
All drivers going forward should return 0 on success. Current drivers that return 1 on success were left as-is to minimize changes.
Quoted 6 lines
Signed-off-by Ben Warren <[email protected]>Acked-by Stefan Roese <[email protected]>Acked-by Kim Phillips <[email protected]>Acked-by Timur Tabi <[email protected]>
Applied, thanks.
Best regards,
Wolfgang Denk
Signature · 7 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de We're all sorry for the other guy when he loses his job to a machine. But when it comes to your job -- that's different. And it always will be different. -- McCoy, "The Ultimate Computer", stardate 4729.4