From patchwork Thu Dec 28 20:33:11 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 10135859 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id B8223605B4 for ; Thu, 28 Dec 2017 20:34:13 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AAB2E2AD58 for ; Thu, 28 Dec 2017 20:34:13 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9B2672C36E; Thu, 28 Dec 2017 20:34:13 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A7FA22AD58 for ; Thu, 28 Dec 2017 20:34:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755222AbdL1UeJ (ORCPT ); Thu, 28 Dec 2017 15:34:09 -0500 Received: from mail-by2nam03on0047.outbound.protection.outlook.com ([104.47.42.47]:25952 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754602AbdL1UeB (ORCPT ); Thu, 28 Dec 2017 15:34:01 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=97EQaimNptFGz9yPoV0K3j8GhtEscIEvjYUf1zqfs64=; b=X5uVN2+axgMqepO/nw8rUE5Ueor1hlWttRcLoi9siEEGaAwbdq9zkFcQb5rrOUxwLv6bdbNcT3LSAd1DihClpxnT1FECvYzL//jiHNUSoWeFWOKLIrDJ2jjdxhVZc3i9iHZiM287+5hAw7BIgW7oxllaJKaIW46TguIJ8QIrqpM= Received: from BY2PR07CA0085.namprd07.prod.outlook.com (2a01:111:e400:7bff::38) by SN4PR0701MB3823.namprd07.prod.outlook.com (2603:10b6:803:4f::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.323.15; Thu, 28 Dec 2017 20:33:59 +0000 Received: from BN1BFFO11FD008.protection.gbl (2a01:111:f400:7c10::1:118) by BY2PR07CA0085.outlook.office365.com (2a01:111:e400:7bff::38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.366.8 via Frontend Transport; Thu, 28 Dec 2017 20:33:59 +0000 Authentication-Results: spf=permerror (sender IP is 50.232.66.26) smtp.mailfrom=cavium.com; vger.kernel.org; dkim=none (message not signed) header.d=none; vger.kernel.org; dmarc=none action=none header.from=cavium.com; Received-SPF: PermError (protection.outlook.com: domain of cavium.com used an invalid SPF mechanism) Received: from CAEXCH02.caveonetworks.com (50.232.66.26) by BN1BFFO11FD008.mail.protection.outlook.com (10.58.144.71) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.20.345.12 via Frontend Transport; Thu, 28 Dec 2017 20:33:38 +0000 Received: from dut1171.mv.qlogic.com (172.29.51.171) by CAEXCH02.caveonetworks.com (10.17.4.29) with Microsoft SMTP Server id 14.2.347.0; Thu, 28 Dec 2017 12:33:49 -0800 Received: from dut1171.mv.qlogic.com (localhost [127.0.0.1]) by dut1171.mv.qlogic.com (8.14.7/8.14.7) with ESMTP id vBSKXkVb002787; Thu, 28 Dec 2017 12:33:46 -0800 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id vBSKXk7U002778; Thu, 28 Dec 2017 12:33:46 -0800 From: Himanshu Madhani To: , CC: , Subject: [PATCH v2 03/37] qla2xxx: Use chip reset to bring down laser on unload. Date: Thu, 28 Dec 2017 12:33:11 -0800 Message-ID: <20171228203345.2702-4-himanshu.madhani@cavium.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20171228203345.2702-1-himanshu.madhani@cavium.com> References: <20171228203345.2702-1-himanshu.madhani@cavium.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:50.232.66.26; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(376002)(346002)(39860400002)(39380400002)(396003)(2980300002)(448002)(189003)(199004)(76176011)(86362001)(478600001)(316002)(51416003)(80596001)(2906002)(8936002)(50466002)(36756003)(48376002)(6666003)(50226002)(59450400001)(305945005)(5660300001)(356003)(106466001)(1076002)(2950100002)(72206003)(110136005)(4326008)(47776003)(69596002)(85326001)(81156014)(87636003)(81166006)(42186006)(8676002)(16586007)(54906003); DIR:OUT; SFP:1101; SCL:1; SRVR:SN4PR0701MB3823; H:CAEXCH02.caveonetworks.com; FPR:; SPF:PermError; PTR:50-232-66-26-static.hfc.comcastbusiness.net; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD008; 1:2/Nx72Vf3fn/xkTIuSMXvm4v4BQoUo+dvErnilg5CQdFmCYZp4pY7R7vK+iBMh5nQH3BgGRqE9ZHvHjSkxYnee9AlysiYBUqHqevutclfkSOHJvfq7R/GguAqhLHDd+R X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 51c03b7a-b4fc-4188-ec3d-08d54e3246f4 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060); SRVR:SN4PR0701MB3823; X-Microsoft-Exchange-Diagnostics: 1; SN4PR0701MB3823; 3:TFIOcnNZstEFEx9ASAo/k4fB0f/Van4cgKkoJy4mXdQUQVWP9ukLjCh7/PAoLWW43vIZI4wiuI32Cs7JHgYjMSkIYR2F1yQNrBPHP94p6lTz83bSSFtBx/Wuwz9hE99lxqGN/O9IPFEjEv5tEvCV4KghqvlZytGTcZa4EfF7z3/famUiLB1ub6bBE4htP7qZ+d65PT7LuXZZoSYcJTUddrxJ/4GjQt6/TBAryXrofqcvKTX9yXTpJ9rx+wBCXM2qQ/VUumHbXYEiuEMrWWE3qmxCE8azA0t1OkJQUQanxK0k6WzbHuKrEtVbA4TpXBvzDkU4+EwnlSR+LMHUn5gMqw==; 25:fZeCz1Ln7wn3XnYbfZ+09meSCAZW/F3xySq99rWpcUwaFkLiBs4uw3v3KgKMCj/spthCYOyo55puJWHjuoO1FwFTOZvXFI1Ab9cck78u1oXqS8nVGUVPEK1Eh+XWSV2Egh2uuu/tJrqSV5gDfC1hDizycNOFXLn+eiZ6dHmpdGDjuXRrMA2t3SLAxfUIkQ6z0uTuFjCruO2T5RnZrzCg6pWJqopJehlU4dZXLqGiVTUU9Ag+YXj8HyIKbUovKhxjQupoasG6rZ5JK57Zh7J85MWbd2QaUR/fbHs1Yik1lLz6M2GzaCTgzEqQTSp9lHttRxmu/pHQs7ac/FXywCMOrA==; 31:twJIN6Z+y72YaFjnWbYlnTb8xxIGMZAiIMRaKRnJZuHhgJk0YxgjrJUroyGS4VnjA1fv1O7qml6jeVKF4NHTn/MHfhjWF4iECB4wdfY5YO0pgaa5VV6lNgnrOzJNMLKY8raz3WpIzoGBhQlEtBw3GoaeAGvVnfNiqZ6tBlbwHhLcvNZDAt67nh5f9i+IJ9tlFs6zUj65SGq/64Zm7BqemQvuxMoEiPrGvq621l6RdFE= X-MS-TrafficTypeDiagnostic: SN4PR0701MB3823: X-Microsoft-Exchange-Diagnostics: 1; SN4PR0701MB3823; 20:cnYKPaFRHOf48bfoFltsgvA0Ndc1oqz3TvLxuW3dRBcslOhmJrIjNf6GtvOnt7NiK1S2S8+dOY1b91WqWYDba8jpPKIZguEhKW1JpQwgFVlRAKO1VGLngJdCMwNApaikTP0s7Z+KUoLpdHiGm9R/VDKbB0yY43QCQhwkP+CMZ2ifzSucnTMC5dWqkrQtrCkQQy3EnUz8cZfJVHn7c7J2zy5/MWl2mblLUL9Fpk6nBLJ3r1GlgeMtT7IzwDkv4Vqq2ELPmcl9VYk7RoELIKrEZ+AqgzglWuuYBt4ZwMoXfYaUWiVl9pSnakC76Mp2Tgk2ZeIcb3NVtDF5mgzShem00AaO0HLN4WktsQKkzW0LsPZLeWjg6mF2qxosBmC61h/sFPxA8BA9Gnyc0MN+bacvfcGFOR7Fe6HGVSHhIsmW+UtyqckjT/IKXx3dizkGCiUNfUCN0TsejWclVMGEPPw/mgtGJZHAyPXuvS6D8qatv7Noib6xaConG70DNmL4saCi; 4:i7AahmKSfDdJhXrUMNbQJrxVBMbHIM6kgJxudF56mEf7/CkZ0Iw67QFJ3VJT0bdhB9cso6GeYPcLoBeMN9hws/3kaa+VnEDuUnSZUPJpDpMQ/StGYRa/sC1uXSEcXjuy6V44B9PX8palTtx2h0b3BsdXJE9fHVAeP8EMiP0EWYIVBJWnywHmQgXxf6cfGtF56lf7XPuRsTWSblhQZAZXA041TVLUmmW2aR5Lji3/lcX3ZXSjz34lgAHlbAabg8HjA50hwwuN00p9a+apxJsWcD/9Pveis5EIE6u9jBrr7VDmLnauDpxjF113/KO52hSQ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(209352067349851); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231023)(944501075)(93006095)(93001095)(6041268)(20161123564045)(20161123558120)(20161123562045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:SN4PR0701MB3823; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:SN4PR0701MB3823; X-Forefront-PRVS: 05352A48BE X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN4PR0701MB3823; 23:zvGHZRi74L5C/anXIKPZg4hs/+LkfmYQex/w61O?= =?us-ascii?Q?DToCgGSXpXay2eAi708Qbvk+UqVa1xfOnkpaq7vS4qD47cZMYu+jQK8cu7sK?= =?us-ascii?Q?dA33uF2Ykni9BTPGzOESVuiuDQDcBo7WsWzPflwENFZXAQdqyblwYUBfvf3i?= =?us-ascii?Q?K34Hefyk+wt5AtQyZScvoGM/1dS8W+bMmGVJ0XGLGMDYJtGW3QRAt+m780tj?= =?us-ascii?Q?rd4QNhp6IGu7kZN/GKE6RENswiaZjjLROFd9uQCTSicKy+UcBS39KB1rzu0D?= =?us-ascii?Q?6k0pAxiDZExrl6uNjLpJyfdURPqqodmQ5/Chv4yc2nkA22aD+NlEVCx3qw+g?= =?us-ascii?Q?VTP7DK0OE2VkDnn3lasfshwgKZWcKL1DYLupFwMHg9v7SJBtZUOcc9o2gXnt?= =?us-ascii?Q?Xptmwi5nfyDLjVrFVfga6XaVC3wjJdocpupjoqhNby6ewBwNcgVRC0dQmgV6?= =?us-ascii?Q?WX1j4CIxc7p8vPCW0mG9sSJkc+2ABx/bHnKaeLxl2rU9lKm5EVllXkj1DLx8?= =?us-ascii?Q?JA1kAG6gwpJZqBziiIVIYHq2n/8CdfjjTXhGm1vCaksOCGJ5pSFvDQXj2SUv?= =?us-ascii?Q?QW+LXKEhcSuP2N5k1TdJRUV1ty4NBXcj5f3yqTqai4ChJt2Cx4jec06Cqqkl?= =?us-ascii?Q?aR624+9ToJCRjI7ebkb3hXmr8IyP0sS7u6UN3XJEqd8RbmL0asAVrp0SnXj0?= =?us-ascii?Q?XB0L/UHCoeRZlXsokdpNYxJux07iA2d9hociOsWFWaQcEDrMWXlhomd1uhHs?= =?us-ascii?Q?3CY1BROW3qXudJzqzuhBAOEZcmF560OD64bvC+P7KoyMFtZcPDftj5uESxS5?= =?us-ascii?Q?j+rOvlS6yp7iX6E/F5Pm/YAftRLOKC3ugMBpeO4l+UnB1H3fc+ngH27pbeKr?= =?us-ascii?Q?iV4t1Ylu8bC82oUAR1Jg/zT5ei70a0WPh33gXhDnEsZTdyEwlHs36iWoVNkA?= =?us-ascii?Q?kc+dpz4AgQTuvMOPfziE9tNrHYA8t+6Ggdq1xALHMOqK9s5rVXGqZ74Fa+DS?= =?us-ascii?Q?rIEJq8OWTzhFxbXG7IacDqUNt?= X-Microsoft-Exchange-Diagnostics: 1; SN4PR0701MB3823; 6:+UDhJGy0S4Tmx2pMWhJAeFqlAJjzv552J6EmmUklvEGOC+VRPtbxfl/dMn+3bvYZTFW7IJo37Rs1jdVuwauxqKR8y4fEFTkEdmMvalS+AhgD50CqILgcEGm0yG4Hw+JDCjAWEJMBInbgRiKPB0Gp0cGkkKYldBgh0/dFGeQo051737PP5lhAu0Xf9UySTaJvpz5HBeAbDnjngowfDLFAlUFX1I9U+v9BIycaekc7CxvpxS9VuNa04c5kV03y4BnXExSZE2C+MnDziCKt0kV9lz2vUWwjmwcR7H43fO9LWQC2pp96RFylSnw/y0zEjvCuLaejpSK3XnwqVZ1zEvakOcw0DSpM9kvp1YJpKDarRko=; 5:clxxyK7GjphjtuKNVxc0jplqzYLp6vYZNvSieMthuemVWc09NbAbZZiWXsFmgdAnIe2r9MMoAr+ONner8q8ZW33SPJnDeryq32yvAywOyRxTDhIvvzixyz1kdVLOaE8RyEQ4QyGAwEsv+ELbh9Wt2oBelFQZdgh0fj5ZQdvmZQ0=; 24:VAcm3VZO3k6ggAjIxogBFtSOnOdzCI1QAhmOKleQx9YdBhZge4+R3Ot8m7w9elcv62zknR9pHipevXVKEImSCJiEa+xPZ4pWuEgW7mLb6Ho=; 7:SwI4TppbCa5lBKtWgpN1zXcZRAdlrY2qMAV7jNShHzZexPrwPqyhs0TnKN+Sn3MwJN+i2Yd2POt64YpnfvFcQ68Z4MDjycuAFNoCDt5J79NVGcCGrfl+6rX3QJF0WKzGaGh1VQ5fDLgBHZ94AlGCE9YJJCQ1ApuUYUxlb36FXkzDTCrAy7MWYZW3laltWHXSMuotDkJ9nNQsujB2SBKhBe2nXRVct44wjx8F932XCOOQw91zPsEuekBpWQjnHbr6 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Dec 2017 20:33:38.4992 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 51c03b7a-b4fc-4188-ec3d-08d54e3246f4 X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=711e4ccf-2e9b-4bcf-a551-4094005b6194; Ip=[50.232.66.26]; Helo=[CAEXCH02.caveonetworks.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN4PR0701MB3823 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Quinn Tran Current code uses Stop Firmware MB cmd to stop the chip before driver unload. This will leave the laser in its current state. This give the illusion of this adapter is still alive. For 8G & newer adapters, use chip reset to stop the chip and bring down the laser. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_os.c | 52 ++++++++++++++----------------------------- 1 file changed, 17 insertions(+), 35 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 789030c9dd26..987bade1c606 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -294,7 +294,6 @@ static int qla2xxx_eh_host_reset(struct scsi_cmnd *); static void qla2x00_clear_drv_active(struct qla_hw_data *); static void qla2x00_free_device(scsi_qla_host_t *); -static void qla83xx_disable_laser(scsi_qla_host_t *vha); static int qla2xxx_map_queues(struct Scsi_Host *shost); static void qla2x00_destroy_deferred_work(struct qla_hw_data *); @@ -3449,8 +3448,13 @@ qla2x00_shutdown(struct pci_dev *pdev) if (ha->eft) qla2x00_disable_eft_trace(vha); - /* Stop currently executing firmware. */ - qla2x00_try_to_stop_firmware(vha); + if (IS_QLA25XX(ha) || IS_QLA2031(ha) || IS_QLA27XX(ha)) { + if (ha->flags.fw_started) + qla2x00_abort_isp_cleanup(vha); + } else { + /* Stop currently executing firmware. */ + qla2x00_try_to_stop_firmware(vha); + } /* Turn adapter off line */ vha->flags.online = 0; @@ -3629,10 +3633,6 @@ qla2x00_remove_one(struct pci_dev *pdev) qla84xx_put_chip(base_vha); - /* Laser should be disabled only for ISP2031 */ - if (IS_QLA2031(ha)) - qla83xx_disable_laser(base_vha); - /* Disable timer */ if (base_vha->timer_active) qla2x00_stop_timer(base_vha); @@ -3693,8 +3693,16 @@ qla2x00_free_device(scsi_qla_host_t *vha) if (ha->eft) qla2x00_disable_eft_trace(vha); - /* Stop currently executing firmware. */ - qla2x00_try_to_stop_firmware(vha); + if (IS_QLA25XX(ha) || IS_QLA2031(ha) || IS_QLA27XX(ha)) { + if (ha->flags.fw_started) + qla2x00_abort_isp_cleanup(vha); + } else { + if (ha->flags.fw_started) { + /* Stop currently executing firmware. */ + qla2x00_try_to_stop_firmware(vha); + ha->flags.fw_started = 0; + } + } vha->flags.online = 0; @@ -6617,32 +6625,6 @@ qla2xxx_pci_resume(struct pci_dev *pdev) ha->flags.eeh_busy = 0; } -static void -qla83xx_disable_laser(scsi_qla_host_t *vha) -{ - uint32_t reg, data, fn; - struct qla_hw_data *ha = vha->hw; - struct device_reg_24xx __iomem *isp_reg = &ha->iobase->isp24; - - /* pci func #/port # */ - ql_dbg(ql_dbg_init, vha, 0x004b, - "Disabling Laser for hba: %p\n", vha); - - fn = (RD_REG_DWORD(&isp_reg->ctrl_status) & - (BIT_15|BIT_14|BIT_13|BIT_12)); - - fn = (fn >> 12); - - if (fn & 1) - reg = PORT_1_2031; - else - reg = PORT_0_2031; - - data = LASER_OFF_2031; - - qla83xx_wr_reg(vha, reg, data); -} - static int qla2xxx_map_queues(struct Scsi_Host *shost) { int rc;