Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0db9dec2 authored by Dean Luick's avatar Dean Luick Committed by Doug Ledford
Browse files

IB/hfi1: Move serdes tune inside link start function



All calls to tune_serdes and start_link are paired.  Move
tune_serdes inside start_link.

Reviewed-by: default avatarEaswar Hariharan <easwar.hariharan@intel.com>
Signed-off-by: default avatarDean Luick <dean.luick@intel.com>
Signed-off-by: default avatarDennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 261a4351
Loading
Loading
Loading
Loading
+8 −14
Original line number Diff line number Diff line
@@ -6825,7 +6825,6 @@ void handle_link_up(struct work_struct *work)
		set_link_down_reason(ppd, OPA_LINKDOWN_REASON_SPEED_POLICY, 0,
				     OPA_LINKDOWN_REASON_SPEED_POLICY);
		set_link_state(ppd, HLS_DN_OFFLINE);
		tune_serdes(ppd);
		start_link(ppd);
	}
}
@@ -6998,13 +6997,11 @@ void handle_link_down(struct work_struct *work)
	 * If there is no cable attached, turn the DC off. Otherwise,
	 * start the link bring up.
	 */
	if (ppd->port_type == PORT_TYPE_QSFP && !qsfp_mod_present(ppd)) {
	if (ppd->port_type == PORT_TYPE_QSFP && !qsfp_mod_present(ppd))
		dc_shutdown(ppd->dd);
	} else {
		tune_serdes(ppd);
	else
		start_link(ppd);
}
}

void handle_link_bounce(struct work_struct *work)
{
@@ -7016,7 +7013,6 @@ void handle_link_bounce(struct work_struct *work)
	 */
	if (ppd->host_link_state & HLS_UP) {
		set_link_state(ppd, HLS_DN_OFFLINE);
		tune_serdes(ppd);
		start_link(ppd);
	} else {
		dd_dev_info(ppd->dd, "%s: link not up (%s), nothing to do\n",
@@ -7531,7 +7527,6 @@ void apply_link_downgrade_policy(struct hfi1_pportdata *ppd, int refresh_widths)
		set_link_down_reason(ppd, OPA_LINKDOWN_REASON_WIDTH_POLICY, 0,
				     OPA_LINKDOWN_REASON_WIDTH_POLICY);
		set_link_state(ppd, HLS_DN_OFFLINE);
		tune_serdes(ppd);
		start_link(ppd);
	}
}
@@ -9161,6 +9156,12 @@ static int set_local_link_attributes(struct hfi1_pportdata *ppd)
 */
int start_link(struct hfi1_pportdata *ppd)
{
	/*
	 * Tune the SerDes to a ballpark setting for optimal signal and bit
	 * error rate.  Needs to be done before starting the link.
	 */
	tune_serdes(ppd);

	if (!ppd->link_enabled) {
		dd_dev_info(ppd->dd,
			    "%s: stopping link start because link is disabled\n",
@@ -9401,8 +9402,6 @@ void qsfp_event(struct work_struct *work)
		 */
		set_qsfp_int_n(ppd, 1);

		tune_serdes(ppd);

		start_link(ppd);
	}

@@ -9544,11 +9543,6 @@ static void try_start_link(struct hfi1_pportdata *ppd)
	}
	ppd->qsfp_retry_count = 0;

	/*
	 * Tune the SerDes to a ballpark setting for optimal signal and bit
	 * error rate.  Needs to be done before starting the link.
	 */
	tune_serdes(ppd);
	start_link(ppd);
}

+0 −1
Original line number Diff line number Diff line
@@ -1013,7 +1013,6 @@ static int set_port_states(struct hfi1_pportdata *ppd, struct opa_smp *smp,
			 * offline.
			 */
			set_link_state(ppd, HLS_DN_OFFLINE);
			tune_serdes(ppd);
			start_link(ppd);
		} else {
			set_link_state(ppd, link_state);