@@ -1573,14 +1573,14 @@ static int mcp251xfd_init(const struct device *dev)
15731573 ret = mcp251xfd_reset (dev );
15741574 if (ret < 0 ) {
15751575 LOG_ERR ("Failed to reset the device [%d]" , ret );
1576- goto done ;
1576+ return ret ;
15771577 }
15781578
15791579 ret = can_calc_timing (dev , & timing , dev_cfg -> common .bitrate ,
15801580 dev_cfg -> common .sample_point );
15811581 if (ret < 0 ) {
15821582 LOG_ERR ("Can't find timing for given param" );
1583- goto done ;
1583+ return ret ;
15841584 }
15851585
15861586 LOG_DBG ("Presc: %d, BS1: %d, BS2: %d" , timing .prescaler , timing .phase_seg1 ,
@@ -1592,7 +1592,7 @@ static int mcp251xfd_init(const struct device *dev)
15921592 dev_cfg -> common .sample_point_data );
15931593 if (ret < 0 ) {
15941594 LOG_ERR ("Can't find data timing for given param" );
1595- goto done ;
1595+ return ret ;
15961596 }
15971597
15981598 LOG_DBG ("Data phase Presc: %d, BS1: %d, BS2: %d" , timing_data .prescaler ,
@@ -1602,8 +1602,7 @@ static int mcp251xfd_init(const struct device *dev)
16021602
16031603 reg = mcp251xfd_read_crc (dev , MCP251XFD_REG_CON , MCP251XFD_REG_SIZE );
16041604 if (!reg ) {
1605- ret = - EINVAL ;
1606- goto done ;
1605+ return - EIO ;
16071606 }
16081607
16091608 * reg = sys_le32_to_cpu (* reg );
@@ -1612,57 +1611,57 @@ static int mcp251xfd_init(const struct device *dev)
16121611
16131612 if (opmod != MCP251XFD_REG_CON_MODE_CONFIG ) {
16141613 LOG_ERR ("Device did not reset into configuration mode [%d]" , opmod );
1615- ret = - EIO ;
1616- goto done ;
1614+ return - EIO ;
16171615 }
16181616
16191617 dev_data -> current_mcp251xfd_mode = MCP251XFD_REG_CON_MODE_CONFIG ;
16201618
16211619 ret = mcp251xfd_init_con_reg (dev );
16221620 if (ret < 0 ) {
1623- goto done ;
1621+ return ret ;
16241622 }
16251623
16261624 ret = mcp251xfd_init_osc_reg (dev );
16271625 if (ret < 0 ) {
1628- goto done ;
1626+ LOG_ERR ("Error initializing OSC register [%d]" , ret );
1627+ return ret ;
16291628 }
16301629
16311630 ret = mcp251xfd_init_iocon_reg (dev );
16321631 if (ret < 0 ) {
1633- goto done ;
1632+ return ret ;
16341633 }
16351634
16361635 ret = mcp251xfd_init_int_reg (dev );
16371636 if (ret < 0 ) {
1638- goto done ;
1637+ return ret ;
16391638 }
16401639
16411640 ret = mcp251xfd_set_tdc (dev , false);
16421641 if (ret < 0 ) {
1643- goto done ;
1642+ return ret ;
16441643 }
16451644
16461645#if defined(CONFIG_CAN_RX_TIMESTAMP )
16471646 ret = mcp251xfd_init_tscon (dev );
16481647 if (ret < 0 ) {
1649- goto done ;
1648+ return ret ;
16501649 }
16511650#endif
16521651
16531652 ret = mcp251xfd_init_tef_fifo (dev );
16541653 if (ret < 0 ) {
1655- goto done ;
1654+ return ret ;
16561655 }
16571656
16581657 ret = mcp251xfd_init_tx_queue (dev );
16591658 if (ret < 0 ) {
1660- goto done ;
1659+ return ret ;
16611660 }
16621661
16631662 ret = mcp251xfd_init_rx_fifo (dev );
16641663 if (ret < 0 ) {
1665- goto done ;
1664+ return ret ;
16661665 }
16671666
16681667 LOG_DBG ("%d TX FIFOS: 1 element" , MCP251XFD_TX_QUEUE_ITEMS );
@@ -1671,17 +1670,13 @@ static int mcp251xfd_init(const struct device *dev)
16711670 MCP251XFD_TEF_FIFO_SIZE + MCP251XFD_TX_QUEUE_SIZE + MCP251XFD_RX_FIFO_SIZE ,
16721671 MCP251XFD_RAM_SIZE );
16731672
1674- done :
16751673 ret = can_set_timing (dev , & timing );
16761674 if (ret < 0 ) {
16771675 return ret ;
16781676 }
16791677
16801678#if defined(CONFIG_CAN_FD_MODE )
16811679 ret = can_set_timing_data (dev , & timing_data );
1682- if (ret < 0 ) {
1683- return ret ;
1684- }
16851680#endif
16861681
16871682 return ret ;
0 commit comments