From: Mitko Haralanov Date: Mon, 7 May 2012 18:02:53 +0000 (-0400) Subject: IB/qib: Fix QLE734X link cycling X-Git-Tag: firefly_0821_release~3680^2~2849^2^9~3 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f665acb3cbc4d7d83bd655d21e4c7edc45029c46;p=firefly-linux-kernel-4.4.55.git IB/qib: Fix QLE734X link cycling The SERDES was using the incorrect Frequency Loop Bandwidth setting causing the link to cycle through the Physical link negotiation state machine. Fixing the Frequency Loop Bandwidth setting in the SERDES helps the link come up faster and more reliably. Signed-off-by: Mitko Haralanov Signed-off-by: Roland Dreier --- diff --git a/drivers/infiniband/hw/qib/qib_iba7322.c b/drivers/infiniband/hw/qib/qib_iba7322.c index e7b9ad34fe2e..c881e744c091 100644 --- a/drivers/infiniband/hw/qib/qib_iba7322.c +++ b/drivers/infiniband/hw/qib/qib_iba7322.c @@ -7709,7 +7709,7 @@ static int serdes_7322_init_new(struct qib_pportdata *ppd) ibsd_wr_allchans(ppd, 5, 0, BMASK(0, 0)); msleep(20); /* Set Frequency Loop Bandwidth */ - ibsd_wr_allchans(ppd, 2, (7 << 5), BMASK(8, 5)); + ibsd_wr_allchans(ppd, 2, (15 << 5), BMASK(8, 5)); /* Enable Frequency Loop */ ibsd_wr_allchans(ppd, 2, (1 << 4), BMASK(4, 4)); /* Set Timing Loop Bandwidth */