From patchwork Thu Jul 2 16:42:12 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matt Carlson X-Patchwork-Id: 29423 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@bilbo.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from ozlabs.org (ozlabs.org [203.10.76.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx.ozlabs.org", Issuer "CA Cert Signing Authority" (verified OK)) by bilbo.ozlabs.org (Postfix) with ESMTPS id 63AC1B70F9 for ; Fri, 3 Jul 2009 02:42:29 +1000 (EST) Received: by ozlabs.org (Postfix) id 4CD8DDDD1B; Fri, 3 Jul 2009 02:42:29 +1000 (EST) Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id C1BDADDD0C for ; Fri, 3 Jul 2009 02:42:28 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752346AbZGBQmT (ORCPT ); Thu, 2 Jul 2009 12:42:19 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752228AbZGBQmS (ORCPT ); Thu, 2 Jul 2009 12:42:18 -0400 Received: from mms2.broadcom.com ([216.31.210.18]:1795 "EHLO mms2.broadcom.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752126AbZGBQmR (ORCPT ); Thu, 2 Jul 2009 12:42:17 -0400 Received: from [10.9.200.133] by mms2.broadcom.com with ESMTP (Broadcom SMTP Relay (Email Firewall v6.3.2)); Thu, 02 Jul 2009 09:42:12 -0700 X-Server-Uuid: D3C04415-6FA8-4F2C-93C1-920E106A2031 Received: from mail-irva-13.broadcom.com (10.11.16.103) by IRVEXCHHUB02.corp.ad.broadcom.com (10.9.200.133) with Microsoft SMTP Server id 8.1.375.2; Thu, 2 Jul 2009 09:43:36 -0700 Received: from xw6200 (mcarlson [10.12.148.101]) by mail-irva-13.broadcom.com (Postfix) with ESMTP id 81DB074D03; Thu, 2 Jul 2009 09:42:12 -0700 (PDT) Date: Thu, 2 Jul 2009 09:42:12 -0700 From: "Matt Carlson" To: "Jean-Louis Dupond" cc: "Matthew Carlson" , "Michael Chan" , "netdev@vger.kernel.org" , "David Christensen" Subject: Re: tg3 driver not advertising 1000mbit Message-ID: <20090702164212.GA8430@xw6200.broadcom.net> References: <1244831838.9225.71.camel@HP1> <4A32CDE9.7020602@dupondje.be> <1244844106.9225.92.camel@HP1> <4A32D3DB.30703@dupondje.be> <20090624173608.GA8985@xw6200.broadcom.net> <4A453E8F.3000405@dupondje.be> <20090627022629.GA27439@xw6200.broadcom.net> <4A45ED40.4090408@dupondje.be> <20090629185038.GA29283@xw6200.broadcom.net> <4A49D8ED.5060109@dupondje.be> MIME-Version: 1.0 In-Reply-To: <4A49D8ED.5060109@dupondje.be> User-Agent: Mutt/1.5.16 (2007-06-09) X-WSS-ID: 66523CEE4CG17815658-01-01 Content-Disposition: inline Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Tue, Jun 30, 2009 at 02:20:45AM -0700, Jean-Louis Dupond wrote: > # ethtool -i eth0 > driver: tg3 > version: 3.97 > firmware-version: 5722-v3.08, ASFIPMI v6.02 > bus-info: 0000:01:00.0 > > Kernel version 2.6.29.4 Rats. I mirrored your setup here, but I still can't reproduce the problem. I still suspect this is a bad driver <=> firmware interaction. Can you apply the following patch and show me the resulting syslog entries? The patch is just making sure the firmware request to shutdown really goes through. --- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 46a3f86..900e28b 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c @@ -1124,6 +1124,9 @@ static void tg3_wait_for_event_ack(struct tg3 *tp) break; udelay(8); } + + if (i == delay_cnt) + printk( KERN_WARNING "Firmware didn't ack driver event!\n" ); } /* tp->lock is held. */ @@ -6330,12 +6333,16 @@ static void tg3_stop_fw(struct tg3 *tp) /* Wait for RX cpu to ACK the previous event. */ tg3_wait_for_event_ack(tp); + printk( KERN_NOTICE "%s: Stopping firmware.\n", tp->dev->name ); + tg3_write_mem(tp, NIC_SRAM_FW_CMD_MBOX, FWCMD_NICDRV_PAUSE_FW); tg3_generate_fw_event(tp); /* Wait for RX cpu to ACK this event. */ tg3_wait_for_event_ack(tp); + + printk( KERN_NOTICE "%s: Operation completed.\n", tp->dev->name ); } } @@ -7537,6 +7544,8 @@ static void tg3_timer(unsigned long __opaque) !(tp->tg3_flags3 & TG3_FLG3_ENABLE_APE)) { tg3_wait_for_event_ack(tp); + printk( KERN_NOTICE "%s: Sending keepalive event.\n", tp->dev->name ); + tg3_write_mem(tp, NIC_SRAM_FW_CMD_MBOX, FWCMD_NICDRV_ALIVE3); tg3_write_mem(tp, NIC_SRAM_FW_CMD_LEN_MBOX, 4);