Message ID | 20250107025135.15167-2-johndale@cisco.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | enic: Set link speed only after link up | expand |
On Mon, Jan 06, 2025 at 06:51:34PM -0800, John Daley wrote: > Move the function used for setting the RX coalescing range to before > the function that checks the link status. It needs to be called from > there instead of from the probe function. > > There is no functional change. > > Co-developed-by: Nelson Escobar <neescoba@cisco.com> > Signed-off-by: Nelson Escobar <neescoba@cisco.com> > Co-developed-by: Satish Kharat <satishkh@cisco.com> > Signed-off-by: Satish Kharat <satishkh@cisco.com> > Signed-off-by: John Daley <johndale@cisco.com> > --- > drivers/net/ethernet/cisco/enic/enic_main.c | 60 ++++++++++----------- > 1 file changed, 30 insertions(+), 30 deletions(-) > > diff --git a/drivers/net/ethernet/cisco/enic/enic_main.c b/drivers/net/ethernet/cisco/enic/enic_main.c > index 9913952ccb42..957efe73e41a 100644 > --- a/drivers/net/ethernet/cisco/enic/enic_main.c > +++ b/drivers/net/ethernet/cisco/enic/enic_main.c > @@ -428,6 +428,36 @@ static void enic_mtu_check(struct enic *enic) > } > } > > +static void enic_set_rx_coal_setting(struct enic *enic) > +{ > + unsigned int speed; > + int index = -1; > + struct enic_rx_coal *rx_coal = &enic->rx_coalesce_setting; > + > + /* 1. Read the link speed from fw > + * 2. Pick the default range for the speed > + * 3. Update it in enic->rx_coalesce_setting > + */ > + speed = vnic_dev_port_speed(enic->vdev); > + if (speed > ENIC_LINK_SPEED_10G) > + index = ENIC_LINK_40G_INDEX; > + else if (speed > ENIC_LINK_SPEED_4G) > + index = ENIC_LINK_10G_INDEX; > + else > + index = ENIC_LINK_4G_INDEX; > + > + rx_coal->small_pkt_range_start = mod_range[index].small_pkt_range_start; > + rx_coal->large_pkt_range_start = mod_range[index].large_pkt_range_start; > + rx_coal->range_end = ENIC_RX_COALESCE_RANGE_END; > + > + /* Start with the value provided by UCSM */ > + for (index = 0; index < enic->rq_count; index++) > + enic->cq[index].cur_rx_coal_timeval = > + enic->config.intr_timer_usec; > + > + rx_coal->use_adaptive_rx_coalesce = 1; > +} > + > static void enic_link_check(struct enic *enic) > { > int link_status = vnic_dev_link_status(enic->vdev); > @@ -1901,36 +1931,6 @@ static void enic_synchronize_irqs(struct enic *enic) > } > } > > -static void enic_set_rx_coal_setting(struct enic *enic) > -{ > - unsigned int speed; > - int index = -1; > - struct enic_rx_coal *rx_coal = &enic->rx_coalesce_setting; > - > - /* 1. Read the link speed from fw > - * 2. Pick the default range for the speed > - * 3. Update it in enic->rx_coalesce_setting > - */ > - speed = vnic_dev_port_speed(enic->vdev); > - if (ENIC_LINK_SPEED_10G < speed) > - index = ENIC_LINK_40G_INDEX; > - else if (ENIC_LINK_SPEED_4G < speed) > - index = ENIC_LINK_10G_INDEX; > - else > - index = ENIC_LINK_4G_INDEX; > - > - rx_coal->small_pkt_range_start = mod_range[index].small_pkt_range_start; > - rx_coal->large_pkt_range_start = mod_range[index].large_pkt_range_start; > - rx_coal->range_end = ENIC_RX_COALESCE_RANGE_END; > - > - /* Start with the value provided by UCSM */ > - for (index = 0; index < enic->rq_count; index++) > - enic->cq[index].cur_rx_coal_timeval = > - enic->config.intr_timer_usec; > - > - rx_coal->use_adaptive_rx_coalesce = 1; > -} > - > static int enic_dev_notify_set(struct enic *enic) > { > int err; > -- > 2.35.2 Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
On Mon, Jan 06, 2025 at 06:51:34PM -0800, John Daley wrote: > Move the function used for setting the RX coalescing range to before > the function that checks the link status. It needs to be called from > there instead of from the probe function. > > There is no functional change. > > Co-developed-by: Nelson Escobar <neescoba@cisco.com> > Signed-off-by: Nelson Escobar <neescoba@cisco.com> > Co-developed-by: Satish Kharat <satishkh@cisco.com> > Signed-off-by: Satish Kharat <satishkh@cisco.com> > Signed-off-by: John Daley <johndale@cisco.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Andrew
diff --git a/drivers/net/ethernet/cisco/enic/enic_main.c b/drivers/net/ethernet/cisco/enic/enic_main.c index 9913952ccb42..957efe73e41a 100644 --- a/drivers/net/ethernet/cisco/enic/enic_main.c +++ b/drivers/net/ethernet/cisco/enic/enic_main.c @@ -428,6 +428,36 @@ static void enic_mtu_check(struct enic *enic) } } +static void enic_set_rx_coal_setting(struct enic *enic) +{ + unsigned int speed; + int index = -1; + struct enic_rx_coal *rx_coal = &enic->rx_coalesce_setting; + + /* 1. Read the link speed from fw + * 2. Pick the default range for the speed + * 3. Update it in enic->rx_coalesce_setting + */ + speed = vnic_dev_port_speed(enic->vdev); + if (speed > ENIC_LINK_SPEED_10G) + index = ENIC_LINK_40G_INDEX; + else if (speed > ENIC_LINK_SPEED_4G) + index = ENIC_LINK_10G_INDEX; + else + index = ENIC_LINK_4G_INDEX; + + rx_coal->small_pkt_range_start = mod_range[index].small_pkt_range_start; + rx_coal->large_pkt_range_start = mod_range[index].large_pkt_range_start; + rx_coal->range_end = ENIC_RX_COALESCE_RANGE_END; + + /* Start with the value provided by UCSM */ + for (index = 0; index < enic->rq_count; index++) + enic->cq[index].cur_rx_coal_timeval = + enic->config.intr_timer_usec; + + rx_coal->use_adaptive_rx_coalesce = 1; +} + static void enic_link_check(struct enic *enic) { int link_status = vnic_dev_link_status(enic->vdev); @@ -1901,36 +1931,6 @@ static void enic_synchronize_irqs(struct enic *enic) } } -static void enic_set_rx_coal_setting(struct enic *enic) -{ - unsigned int speed; - int index = -1; - struct enic_rx_coal *rx_coal = &enic->rx_coalesce_setting; - - /* 1. Read the link speed from fw - * 2. Pick the default range for the speed - * 3. Update it in enic->rx_coalesce_setting - */ - speed = vnic_dev_port_speed(enic->vdev); - if (ENIC_LINK_SPEED_10G < speed) - index = ENIC_LINK_40G_INDEX; - else if (ENIC_LINK_SPEED_4G < speed) - index = ENIC_LINK_10G_INDEX; - else - index = ENIC_LINK_4G_INDEX; - - rx_coal->small_pkt_range_start = mod_range[index].small_pkt_range_start; - rx_coal->large_pkt_range_start = mod_range[index].large_pkt_range_start; - rx_coal->range_end = ENIC_RX_COALESCE_RANGE_END; - - /* Start with the value provided by UCSM */ - for (index = 0; index < enic->rq_count; index++) - enic->cq[index].cur_rx_coal_timeval = - enic->config.intr_timer_usec; - - rx_coal->use_adaptive_rx_coalesce = 1; -} - static int enic_dev_notify_set(struct enic *enic) { int err;