@@ -528,6 +528,10 @@ static int be_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
528
528
u8 link_status ;
529
529
u16 link_speed = 0 ;
530
530
int status ;
531
+ u32 auto_speeds ;
532
+ u32 fixed_speeds ;
533
+ u32 dac_cable_len ;
534
+ u16 interface_type ;
531
535
532
536
if (adapter -> phy .link_speed < 0 ) {
533
537
status = be_cmd_link_status_query (adapter , & link_speed ,
@@ -537,39 +541,46 @@ static int be_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
537
541
ethtool_cmd_speed_set (ecmd , link_speed );
538
542
539
543
status = be_cmd_get_phy_info (adapter );
540
- if (status )
541
- return status ;
542
-
543
- ecmd -> supported =
544
- convert_to_et_setting (adapter -> phy .interface_type ,
545
- adapter -> phy .auto_speeds_supported |
546
- adapter -> phy .fixed_speeds_supported );
547
- ecmd -> advertising =
548
- convert_to_et_setting (adapter -> phy .interface_type ,
549
- adapter -> phy .auto_speeds_supported );
550
-
551
- ecmd -> port = be_get_port_type (adapter -> phy .interface_type ,
552
- adapter -> phy .dac_cable_len );
553
-
554
- if (adapter -> phy .auto_speeds_supported ) {
555
- ecmd -> supported |= SUPPORTED_Autoneg ;
556
- ecmd -> autoneg = AUTONEG_ENABLE ;
557
- ecmd -> advertising |= ADVERTISED_Autoneg ;
558
- }
544
+ if (!status ) {
545
+ interface_type = adapter -> phy .interface_type ;
546
+ auto_speeds = adapter -> phy .auto_speeds_supported ;
547
+ fixed_speeds = adapter -> phy .fixed_speeds_supported ;
548
+ dac_cable_len = adapter -> phy .dac_cable_len ;
549
+
550
+ ecmd -> supported =
551
+ convert_to_et_setting (interface_type ,
552
+ auto_speeds |
553
+ fixed_speeds );
554
+ ecmd -> advertising =
555
+ convert_to_et_setting (interface_type ,
556
+ auto_speeds );
557
+
558
+ ecmd -> port = be_get_port_type (interface_type ,
559
+ dac_cable_len );
560
+
561
+ if (adapter -> phy .auto_speeds_supported ) {
562
+ ecmd -> supported |= SUPPORTED_Autoneg ;
563
+ ecmd -> autoneg = AUTONEG_ENABLE ;
564
+ ecmd -> advertising |= ADVERTISED_Autoneg ;
565
+ }
559
566
560
- if (be_pause_supported (adapter )) {
561
567
ecmd -> supported |= SUPPORTED_Pause ;
562
- ecmd -> advertising |= ADVERTISED_Pause ;
563
- }
564
-
565
- switch (adapter -> phy .interface_type ) {
566
- case PHY_TYPE_KR_10GB :
567
- case PHY_TYPE_KX4_10GB :
568
- ecmd -> transceiver = XCVR_INTERNAL ;
569
- break ;
570
- default :
571
- ecmd -> transceiver = XCVR_EXTERNAL ;
572
- break ;
568
+ if (be_pause_supported (adapter ))
569
+ ecmd -> advertising |= ADVERTISED_Pause ;
570
+
571
+ switch (adapter -> phy .interface_type ) {
572
+ case PHY_TYPE_KR_10GB :
573
+ case PHY_TYPE_KX4_10GB :
574
+ ecmd -> transceiver = XCVR_INTERNAL ;
575
+ break ;
576
+ default :
577
+ ecmd -> transceiver = XCVR_EXTERNAL ;
578
+ break ;
579
+ }
580
+ } else {
581
+ ecmd -> port = PORT_OTHER ;
582
+ ecmd -> autoneg = AUTONEG_DISABLE ;
583
+ ecmd -> transceiver = XCVR_DUMMY1 ;
573
584
}
574
585
575
586
/* Save for future use */
0 commit comments