Re: [PATCH stable 3.4.y, 3.8.y] tg3: 5715 does not link up when autoneg off

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 20, 2013 at 09:04:30AM -0700, Nithin Nayak Sujir wrote:
> From: Nithin Sujir <nsujir@xxxxxxxxxxxx>
> 
> Hi Greg,
> Resubmitting this patch for the stable 3.4.y and 3.8.y trees.
> It is now in Linus's tree.
> 
> Upstream commit id: 7c6cdead7cc9a99650d15497aae47d7472217eb1
> 
> The upstream patch has been modified to compile on 3.4 and 3.8.
> Specifically tg3_asic_rev() has been changed to GET_ASIC_REV().

I'm queuing this for 3.5 kernel as well.

Cheers,
--
Luis

> 
> =========================
> 
> Commit d13ba512cbba7de5d55d7a3b2aae7d83c8921457 ("tg3: Remove
> SPEED_UNKNOWN checks") cleaned up the autoneg advertisement by
> removing some dead code. One effect of this change was that the
> advertisement register would not be updated if autoneg is turned off.
> 
> This exposed a bug on the 5715 device w.r.t linking. The 5715 defaults
> to advertise only 10Mb Full duplex. But with autoneg disabled, it needs
> the configured speed enabled in the advertisement register to link up.
> 
> This patch adds the work around to advertise all speeds on the 5715 when
> autoneg is disabled.
> 
> Reported-by: Marcin Miotk <marcinmiotk81@xxxxxxxxx>
> Reviewed-by: Benjamin Li <benli@xxxxxxxxxxxx>
> Signed-off-by: Nithin Nayak Sujir <nsujir@xxxxxxxxxxxx>
> Signed-off-by: Michael Chan <mchan@xxxxxxxxxxxx>
> Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
> ---
>  drivers/net/ethernet/broadcom/tg3.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
> index bdb0869..054e5ee 100644
> --- a/drivers/net/ethernet/broadcom/tg3.c
> +++ b/drivers/net/ethernet/broadcom/tg3.c
> @@ -4097,6 +4097,14 @@ static void tg3_phy_copper_begin(struct tg3 *tp)
>  		tp->link_config.active_speed = tp->link_config.speed;
>  		tp->link_config.active_duplex = tp->link_config.duplex;
>  
> +		if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5714) {
> +			/* With autoneg disabled, 5715 only links up when the
> +			 * advertisement register has the configured speed
> +			 * enabled.
> +			 */
> +			tg3_writephy(tp, MII_ADVERTISE, ADVERTISE_ALL);
> +		}
> +
>  		bmcr = 0;
>  		switch (tp->link_config.speed) {
>  		default:
> -- 
> 1.8.1.4
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe stable" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]