From patchwork Fri Jul 29 23:30:28 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anirban Chakraborty X-Patchwork-Id: 107464 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id E087DB6F68 for ; Sat, 30 Jul 2011 09:40:05 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753221Ab1G2Xjx (ORCPT ); Fri, 29 Jul 2011 19:39:53 -0400 Received: from va3ehsobe003.messaging.microsoft.com ([216.32.180.13]:51484 "EHLO VA3EHSOBE003.bigfish.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753146Ab1G2Xjw (ORCPT ); Fri, 29 Jul 2011 19:39:52 -0400 Received: from mail86-va3-R.bigfish.com (10.7.14.237) by VA3EHSOBE003.bigfish.com (10.7.40.23) with Microsoft SMTP Server id 14.1.225.22; Fri, 29 Jul 2011 23:39:51 +0000 Received: from mail86-va3 (localhost.localdomain [127.0.0.1]) by mail86-va3-R.bigfish.com (Postfix) with ESMTP id 48FFB1668086; Fri, 29 Jul 2011 23:39:51 +0000 (UTC) X-SpamScore: 0 X-BigFish: VPS0(zzzz1202hzz8275bhz2fh2a8h668h839h) X-Forefront-Antispam-Report: CIP:198.70.193.61; KIP:(null); UIP:(null); IPVD:NLI; H:avexcashub1.qlogic.com; RD:avexcashub1.qlogic.com; EFVD:NLI Received-SPF: pass (mail86-va3: domain of qlogic.com designates 198.70.193.61 as permitted sender) client-ip=198.70.193.61; envelope-from=anirban.chakraborty@qlogic.com; helo=avexcashub1.qlogic.com ; 1.qlogic.com ; Received: from mail86-va3 (localhost.localdomain [127.0.0.1]) by mail86-va3 (MessageSwitch) id 131198279190991_29241; Fri, 29 Jul 2011 23:39:51 +0000 (UTC) Received: from VA3EHSMHS010.bigfish.com (unknown [10.7.14.236]) by mail86-va3.bigfish.com (Postfix) with ESMTP id 0BD5663004C; Fri, 29 Jul 2011 23:39:51 +0000 (UTC) Received: from avexcashub1.qlogic.com (198.70.193.61) by VA3EHSMHS010.bigfish.com (10.7.99.20) with Microsoft SMTP Server (TLS) id 14.1.225.22; Fri, 29 Jul 2011 23:39:50 +0000 Received: from mx.mv.qlogic.com (10.29.3.18) by avexcashub1.qlc.com (10.1.4.161) with Microsoft SMTP Server id 8.3.192.1; Fri, 29 Jul 2011 16:39:47 -0700 Received: from lnxdev-sm-001.mv.qlogic.com (dut6217.mv.qlogic.com [172.29.56.217]) by mx.mv.qlogic.com (Postfix) with ESMTP id 0FA6D582DE; Fri, 29 Jul 2011 16:39:48 -0700 (PDT) Received: by lnxdev-sm-001.mv.qlogic.com (Postfix, from userid 0) id 0CF0714AC28; Fri, 29 Jul 2011 16:30:31 -0700 (PDT) From: Anirban Chakraborty To: David Miller CC: netdev , Dept_NX_Linux_NIC_Driver , Sritej Velaga Subject: [PATCH net-next 4/5] qlcnic: Move get template from probe to start fw Date: Fri, 29 Jul 2011 16:30:28 -0700 Message-ID: <1311982230-10543-4-git-send-email-anirban.chakraborty@qlogic.com> X-Mailer: git-send-email 1.6.0.2 In-Reply-To: <1311982230-10543-1-git-send-email-anirban.chakraborty@qlogic.com> References: <1311982230-10543-1-git-send-email-anirban.chakraborty@qlogic.com> MIME-Version: 1.0 X-OriginatorOrg: qlogic.com Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Sritej Velaga Place for gathering FW dump template has been moved to the FW restart path so that the driver can check if a newer FW version is available and in that case it replaces the existing FW dump template with the newer template. Signed-off-by: Sritej Velaga Signed-off-by: Anirban Chakraborty --- drivers/net/qlcnic/qlcnic_main.c | 22 +++++++++++++++------- 1 files changed, 15 insertions(+), 7 deletions(-) diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c index 248ebbd..d287a2b 100644 --- a/drivers/net/qlcnic/qlcnic_main.c +++ b/drivers/net/qlcnic/qlcnic_main.c @@ -643,8 +643,11 @@ static void get_brd_name(struct qlcnic_adapter *adapter, char *name) static void qlcnic_check_options(struct qlcnic_adapter *adapter) { - u32 fw_major, fw_minor, fw_build; + u32 fw_major, fw_minor, fw_build, prev_fw_version; struct pci_dev *pdev = adapter->pdev; + struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump; + + prev_fw_version = adapter->fw_version; fw_major = QLCRD32(adapter, QLCNIC_FW_VERSION_MAJOR); fw_minor = QLCRD32(adapter, QLCNIC_FW_VERSION_MINOR); @@ -652,6 +655,17 @@ qlcnic_check_options(struct qlcnic_adapter *adapter) adapter->fw_version = QLCNIC_VERSION_CODE(fw_major, fw_minor, fw_build); + if (adapter->op_mode != QLCNIC_NON_PRIV_FUNC) { + if (fw_dump->tmpl_hdr == NULL || + adapter->fw_version > prev_fw_version) { + if (fw_dump->tmpl_hdr) + vfree(fw_dump->tmpl_hdr); + if (!qlcnic_fw_cmd_get_minidump_temp(adapter)) + dev_info(&pdev->dev, + "Supports FW dump capability\n"); + } + } + dev_info(&pdev->dev, "firmware v%d.%d.%d\n", fw_major, fw_minor, fw_build); if (adapter->ahw->port_type == QLCNIC_XGBE) { @@ -1610,12 +1624,6 @@ qlcnic_probe(struct pci_dev *pdev, const struct pci_device_id *ent) goto err_out_decr_ref; } - /* Get FW dump template and store it */ - if (adapter->op_mode != QLCNIC_NON_PRIV_FUNC) - if (!qlcnic_fw_cmd_get_minidump_temp(adapter)) - dev_info(&pdev->dev, - "Supports FW dump capability\n"); - if (qlcnic_read_mac_addr(adapter)) dev_warn(&pdev->dev, "failed to read mac addr\n");