From patchwork Wed Aug 23 22:05:17 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Madhani, Himanshu" X-Patchwork-Id: 9918575 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 B805B603FA for ; Wed, 23 Aug 2017 22:41:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AA4A3288F8 for ; Wed, 23 Aug 2017 22:41:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9F01228AA1; Wed, 23 Aug 2017 22:41:01 +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 044DA28AA0 for ; Wed, 23 Aug 2017 22:41:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751240AbdHWWlA (ORCPT ); Wed, 23 Aug 2017 18:41:00 -0400 Received: from mail-by2nam01on0051.outbound.protection.outlook.com ([104.47.34.51]:63702 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751162AbdHWWk7 (ORCPT ); Wed, 23 Aug 2017 18:40:59 -0400 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=xz75+18duTIaYWJeCOjJLAe26rv2LkpyneUh0Oribjo=; b=BbCKJb/xx1VEK63t4Kec0rCadcPCgQzbT6OSHMAnsHivDbSaUecE84W/1wWIfpyYiQW6fN8f59caMK+fuJ3mgQCUoNl+VS+/dc7itkr2Q1TLUUIT5hss4PIb2cykBhTJE4t/Lt4ldzJoUyvhx0POXfkj9jtOT96bCOxzXNqyYgs= Received: from BY2PR07CA0095.namprd07.prod.outlook.com (2a01:111:e400:7bff::48) by SN2PR07MB2525.namprd07.prod.outlook.com (2603:10b6:804:6::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1385.9; Wed, 23 Aug 2017 22:40:57 +0000 Received: from BN1BFFO11FD027.protection.gbl (2a01:111:f400:7c10::1:104) by BY2PR07CA0095.outlook.office365.com (2a01:111:e400:7bff::48) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1362.18 via Frontend Transport; Wed, 23 Aug 2017 22:40:57 +0000 Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) Received: from CAEXCH02.caveonetworks.com (50.232.66.26) by BN1BFFO11FD027.mail.protection.outlook.com (10.58.144.90) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.1341.15 via Frontend Transport; Wed, 23 Aug 2017 22:40:56 +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; Wed, 23 Aug 2017 15:40:53 -0700 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 v7NM5SXn003242; Wed, 23 Aug 2017 15:05:28 -0700 Received: (from root@localhost) by dut1171.mv.qlogic.com (8.14.7/8.14.7/Submit) id v7NM5SuH003241; Wed, 23 Aug 2017 15:05:28 -0700 From: Himanshu Madhani To: , CC: , Subject: [PATCH 23/31] qla2xxx: Add LR distance support from nvram bit Date: Wed, 23 Aug 2017 15:05:17 -0700 Message-ID: <20170823220525.3115-24-himanshu.madhani@cavium.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20170823220525.3115-1-himanshu.madhani@cavium.com> References: <20170823220525.3115-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)(6009001)(2980300002)(428002)(199003)(189002)(69596002)(50466002)(80596001)(87636003)(5660300001)(478600001)(50226002)(2906002)(50986999)(33646002)(4326008)(8936002)(76176999)(48376002)(81156014)(106466001)(105586002)(54906002)(101416001)(36756003)(72206003)(81166006)(626005)(189998001)(1076002)(47776003)(86362001)(5003940100001)(8676002)(2950100002)(356003)(305945005)(6666003)(42186005); DIR:OUT; SFP:1101; SCL:1; SRVR:SN2PR07MB2525; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; PTR:50-232-66-26-static.hfc.comcastbusiness.net; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD027; 1:apEWKP4Wg3xnlvOUk6Du/O5QY8PAO6T0uMXQyyj44/AeieBKUrTXiolw8whG9wwuM5s8palUlr6buZBZvHyzvdWzo2YD9zoachl2iiL6fCi3PaSwKCt2/Y/r30vX8egV X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 405b297d-e5a8-492a-3618-08d4ea78053d X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(2017030254152)(300000503095)(300135400095)(2017052603190)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:SN2PR07MB2525; X-Microsoft-Exchange-Diagnostics: 1; SN2PR07MB2525; 3:2JeLEy1B7eAbOhluverRjE3XHs15Un3Hu99B5XujCBN1bvz2dQo3coLChAgcfqcgLbwL6jfSGK6b/qY85gpSFV1pZ1bLpnsbS3tyU+27wkDGxc2dl9DHEnLO8vTrvJqdMIsvOFdh+KDq21PvrzB6nyM4aqTLxZepaFkmLrAfPbLx+nO4eHPR52RMTqTTc8AmGfbVT4MVwSkm/Ke5wOkfd6s4EZ2xWIcYIstBllQcriUbg6Vu+VAaBcFaUIA8l/AC5r156EEy8psvuqbtMRp61nwlqCS9zeYR6Kc/+nZktlaRrvJfmeXON82ExoKfL9529tODtxgJS/qlNfaYb6HTYw==; 25:wiVw1r9zQ530hNVE8L937D7nF0RuRrX63dGbWxb8EMk1QBnAFm9obtQU+Ag+RuFyrzF085vLEvmpbQ3ovAHDtvShn+k9PahKqgkrxB5UPKu3cCAJwBK1no1UedaJGwJIeFcRojihk3eW1jBF9Rc9Hiu7zLzuzr3dM91BcuI5PZAq/7baMrmHWvfJCUT4uWCRaH2GK6xhbsiGqFiKjU9T3v6Y8EV4RuulsjwF+/WS9OuNy4LhWWQLZmDYdjsdowWnis7YVUZKcQKlBFzCiogeSekJ1WAiHSqF0plLc9BdFhCJf/MOj1iqJHDLEDB8LUSzbQNq9KCLYyWRpxQ5eBaKdg==; 31:4FiRBiJ8sChtaUKtxTlkb14UtVfd3CmMi3NGSYr/jVRtXqCgyhVSiK9QAPmj9Sapja0WQqktNlQUDorpNiwLxQJc3JFV1OJZQIyGb8HsX0hJ+zECMFJVjQcOqCAwpm2mif19QwwzVumfWma3ejd/cPnvwqhGnsssCRNneoFEhaL++EOUxcrXBakS9HOivTVImAWQFIwsYzLr/7JXkziuACByAyqR5XaEm5EhNdMOuAw= X-MS-TrafficTypeDiagnostic: SN2PR07MB2525: X-Microsoft-Exchange-Diagnostics: 1; SN2PR07MB2525; 20:q1JnR/M6fuFiWk7CuBOj4NQFUjjFxVppn7e77fZKt2p/fkXKAoXmZ2O2+uLRycQAt4CbgxFhzhTLXpurzXiHvU88PzcnezaaJ7CScDeYPE2wvdZ6iB9CsR2ZCiTozO4WCMnerQlc8LmE2uELX9KzzB6jrnhPXHBEbNcg7aLqz14eN3HsGK2joyBAl4eppTX6nNG23HCXlzVzxIiqCm0M0fq0j+gCJplhEJ7So+KfZzWCTmr0jmPmZqdm17IkzJlqeAmmhx2Eo9cU5E11dK3m7yAZeKC4RcfRHrf4cwwjUwSN4PStxo7HWK1YMk/1OJg/V6mComlsg/uk9FMGTLpSGIPkA/9LeIsQ757NCyVPgnF77aJ3wM8cL6QbHeNGc9uhMGZj/629l1MZlkS27+9i6OFAjWyTqY4PDMM9frYbOOlNWSMOOvMSFwx88BR7xLgWcgGFzcD0bVvD44trWqGo099u+Ja63e3dzMc514yubJfePbT+tTJ3/wg55B4sdRXx; 4:8oCuw9kaVVqMR/yWNxumbGq1CdKQbYckD6FTAik7OMLev/7RZbDu4VAM0ZeEMLnK1M2vaZ6kE1d1nNiPtKWeQvfOOQw2R1r8uuvAaWGzscO2smaUfWNWdfnAxxkK+9Qy6u39SMUl/qLbAKpVchhz0srkBvp0d7AmpdK//UqMRE5ywhVMJQjf+MCNlBp3i6FD3UhnOdbhXX/tMBhVX2xLzVwZWKn3ydjM3A2jr0Jn0rkQT+uxc/j8RspcAZPq1EXE X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(13018025)(5005006)(13016025)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6041248)(20161123562025)(20161123555025)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SN2PR07MB2525; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SN2PR07MB2525; X-Forefront-PRVS: 040866B734 X-Microsoft-Exchange-Diagnostics: 1; SN2PR07MB2525; 23:DNqyF7sgTjxlZN9eYh/aF+i7k+hAMpEvWAAIy6n/ZxsojzUFiCwtUG9cO93r9TTx/MB7uJR2ZC0yhzpwijWypTIRnLWU64+B7JJnU1hcDyiKbO5SsGJQVu6dTQtCfq6mT5BeS5KAcI2fKgnxCy3i+4UoAfm/qIxwa5rXlBhOWTT2Zp4BCW3XRyGxinVLrt8K9kezbA1h59ywHbGParprGgf3RQM7DvzfwfCkW/bke3w6/hpDBNUqHR7hwQmJZ3Dkpq+WeARCJJpa6JDsmYrtYRexy8yl4OIrU5zYF8ubQRwjZN2hL5cqoPefjp5v0peW/dW4e3Kw2754wI+8/cDUB/FBNEvNqFuCckGx3qRoD2UUAKKBc9Ie4SUjlRbgjh/ZQLYRCV0Qo5eJ25+HpnhX87yLRVFhoNy4cM7f2WTxfnQp4fXqYhrM8Vcw176yv/sE8ZBWKadYqBigsGUO4fCP7hdclIQOwgfMHs/7NIrbAzDtlHLpMheI91X0ZgFbC0kCeN91pCaGM6UGoVK8AqnVmSgHfoIMzpi34AHDOvJe013NPf45MiUf7bZL2jWLQG3ZsvF3fQfXSe7dX6WkrJsR7IeGQoQxsn6oevKgApveR22K5gIb5WG9twSnHiwMvMW4xX+O+LX3riYo6Zgnyb4V5NztLDc6LBMKG3noN0bucoP5d7c4Gxhw5nXdBb9kkL9R3jYjpbtAvxoGTO2zZgMzcFe+Drcj8PpvYsQ52wvJHHFv7ZkIOg5KUnozB8FBwXDve+3bsp7bQ4MyDh6XD7u+WMl4TVcyPJor5ZjKNsAghwc9bK13RwBB5A3FYZ9d2lN0Y8nDayNkKjUP16gqIfkbhKNtlxNlQ2SYgfeUePH7o4t62aymGOheL8myem5+iFMHqAA5FSqxzzCFjPuWwnhMf03Aoxx36bKuRQOWBmx36 5TI6Yd1BfljoaBaNOL3Xkw3 X-Microsoft-Exchange-Diagnostics: 1; SN2PR07MB2525; 6:hZm6SoHehM2QgDqEtdnRBSJ68Ql6huNKysLUGizCjMOWwUo2zcRwckfXqvUDa+D2/Jmx/kcgZoylqILjnPBKoaqX5MVqgYvMibxQfkSSqiThU+K/w3P+0HlQAZ11rizLRW1uuuqGIpGNBcH9oSl3RilvlnbIN1AyqHqeM/Dx44VDP28Zox4x4pTFYB2EdbO1Doc0EixbRr4oko1hP9gxFIHgDq9mn2rS1gUN4Ox6330aGzh61s6gETVwxTLonjjJMInfFZye8EsHpvO+8mKoFVhP7dWEQxsB/92zxPZI9X6XimVhdJkfiuVVUm8CztExNAkg8+UoXJ6UBbVFlN7cWw==; 5:+ABAlmwUMclaCkXfkm0Z0ELU9f0OBZg7blhvv/saFGsH74ePfoH9N2jeq3B4ml5PWsCyQl/sxslktVJ/sM3T4FwYwuDYH569lDOPD73bTARMrVvApW6yZ9E+ToZ9O0tXTHH08Fy5dBR5nYQHccUe9A==; 24:Xos0L39+4jqbDzvuhdUINcYlPksVBYbNL1uIXoYWDp0aPHUIXfCUHFjo2P0PxhfaJk/q/IoUWZSv2HZRy0SfzAVlCCa17lV0qQGqb4S60q4=; 7:0a8Zm5lqXQB7/yaM4aqR422vr9Thl1K561zG/izLArbB/mU07oR3GErbh/pXqunozr55nzEzeyj5Io5X8GyFjhoTUJ5zyFlaz3NLdvOANBkbZR/GYOEbwbPoVtjQdPBL5gsKG5UwBFn/CC4stgN9lTVjfj8PdtMGy2NOV22IkGgq07h8kxKZJW5fDS7PxEr+zTKv4KoSEcNWuzaE0FjnlW64GHw9D6vYxX6SGnQil04= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Aug 2017 22:40:56.7523 (UTC) 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: SN2PR07MB2525 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: Joe Carnuccio Signed-off-by: Joe Carnuccio Signed-off-by: Himanshu Madhani --- drivers/scsi/qla2xxx/qla_def.h | 9 ++++++- drivers/scsi/qla2xxx/qla_fw.h | 24 +++++++++++------- drivers/scsi/qla2xxx/qla_mbx.c | 56 ++++++++++++++++++++++++++++-------------- 3 files changed, 61 insertions(+), 28 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 0f80b812f4a7..486c075998f6 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h @@ -3471,7 +3471,7 @@ struct qla_hw_data { uint32_t using_lr_setting:1; } flags; - u8 long_range_distance; /* 32G & above */ + uint16_t long_range_distance; /* 32G & above */ #define LR_DISTANCE_5K 1 #define LR_DISTANCE_10K 0 @@ -4027,6 +4027,7 @@ struct qla_hw_data { struct qlt_hw_data tgt; int allow_cna_fw_dump; + uint32_t fw_ability_mask; uint16_t min_link_speed; uint16_t max_speed_sup; @@ -4034,6 +4035,12 @@ struct qla_hw_data { uint16_t nvme_last_rptd_aen; /* Last recorded aen count */ }; +#define FW_ABILITY_MAX_SPEED_MASK 0xFUL +#define FW_ABILITY_MAX_SPEED_16G 0x0 +#define FW_ABILITY_MAX_SPEED_32G 0x1 +#define FW_ABILITY_MAX_SPEED(ha) \ + (ha->fw_ability_mask & FW_ABILITY_MAX_SPEED_MASK) + /* * Qlogic scsi host structure */ diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h index 94eb1694fc3e..bec641aae7b3 100644 --- a/drivers/scsi/qla2xxx/qla_fw.h +++ b/drivers/scsi/qla2xxx/qla_fw.h @@ -1699,6 +1699,15 @@ struct access_chip_rsp_84xx { #define FAC_OPT_CMD_UNLOCK_SEMAPHORE 0x04 #define FAC_OPT_CMD_GET_SECTOR_SIZE 0x05 +/* enhanced features bit definitions */ +#define NEF_LR_DIST_ENABLE BIT_0 + +/* LR Distance bit positions */ +#define LR_DIST_NV_POS 2 +#define LR_DIST_FW_POS 12 +#define LR_DIST_FW_SHIFT (LR_DIST_FW_POS - LR_DIST_NV_POS) +#define LR_DIST_FW_FIELD(x) ((x) << LR_DIST_FW_SHIFT & 0xf000) + struct nvram_81xx { /* NVRAM header. */ uint8_t id[4]; @@ -1841,16 +1850,13 @@ struct nvram_81xx { uint8_t reserved_21[16]; uint16_t reserved_22[3]; - /* - * BIT 0 = Extended BB credits for LR - * BIT 1 = Virtual Fabric Enable - * BIT 2 = Enhanced Features Unused - * BIT 3-7 = Enhanced Features Reserved + /* Offset 406 (0x196) Enhanced Features + * BIT 0 = Extended BB credits for LR + * BIT 1 = Virtual Fabric Enable + * BIT 2-5 = Distance Support if BIT 0 is on + * BIT 6-15 = Unused */ - /* Enhanced Features */ - uint8_t enhanced_features; - - uint8_t reserved_23; + uint16_t enhanced_features; uint16_t reserved_24[4]; /* Offset 416. */ diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 32bbbd50567d..99502fa90810 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c @@ -567,6 +567,28 @@ qla2x00_load_ram(scsi_qla_host_t *vha, dma_addr_t req_dma, uint32_t risc_addr, #define EXTENDED_BB_CREDITS BIT_0 #define NVME_ENABLE_FLAG BIT_3 +static inline uint16_t qla25xx_set_sfp_lr_dist(struct qla_hw_data *ha) +{ + uint16_t mb4 = BIT_0; + + if (IS_QLA83XX(ha) || IS_QLA27XX(ha)) + mb4 |= ha->long_range_distance << LR_DIST_FW_POS; + + return mb4; +} + +static inline uint16_t qla25xx_set_nvr_lr_dist(struct qla_hw_data *ha) +{ + uint16_t mb4 = BIT_0; + + if (IS_QLA83XX(ha) || IS_QLA27XX(ha)) { + struct nvram_81xx *nv = ha->nvram; + + mb4 |= LR_DIST_FW_FIELD(nv->enhanced_features); + } + + return mb4; +} /* * qla2x00_execute_fw @@ -602,27 +624,25 @@ qla2x00_execute_fw(scsi_qla_host_t *vha, uint32_t risc_addr) mcp->mb[2] = LSW(risc_addr); mcp->mb[3] = 0; mcp->mb[4] = 0; + ha->flags.using_lr_setting = 0; if (IS_QLA25XX(ha) || IS_QLA81XX(ha) || IS_QLA83XX(ha) || IS_QLA27XX(ha)) { if (ql2xautodetectsfp) { if (ha->flags.detected_lr_sfp) { - mcp->mb[4] |= EXTENDED_BB_CREDITS; - if (IS_QLA27XX(ha)) - mcp->mb[4] |= - (u16)ha->long_range_distance << 12; + mcp->mb[4] |= + qla25xx_set_sfp_lr_dist(ha); ha->flags.using_lr_setting = 1; } } else { struct nvram_81xx *nv = ha->nvram; - + /* set LR distance if specified in nvram */ if (nv->enhanced_features & - EXTENDED_BB_CREDITS) { - mcp->mb[4] |= EXTENDED_BB_CREDITS; + NEF_LR_DIST_ENABLE) { + mcp->mb[4] |= + qla25xx_set_nvr_lr_dist(ha); ha->flags.using_lr_setting = 1; } } - } else { - ha->flags.using_lr_setting = 0; } if (ql2xnvmeenable && IS_QLA27XX(ha)) @@ -648,7 +668,7 @@ qla2x00_execute_fw(scsi_qla_host_t *vha, uint32_t risc_addr) mcp->mb[4] |= ENABLE_EXCHANGE_OFFLD; mcp->out_mb |= MBX_4|MBX_3|MBX_2|MBX_1; - mcp->in_mb |= MBX_1; + mcp->in_mb |= MBX_3 | MBX_2 | MBX_1; } else { mcp->mb[1] = LSW(risc_addr); mcp->out_mb |= MBX_1; @@ -667,10 +687,13 @@ qla2x00_execute_fw(scsi_qla_host_t *vha, uint32_t risc_addr) "Failed=%x mb[0]=%x.\n", rval, mcp->mb[0]); } else { if (IS_FWI2_CAPABLE(ha)) { + ha->fw_ability_mask = mcp->mb[3] << 16 | mcp->mb[2]; + ql_dbg(ql_dbg_mbx, vha, 0x119a, + "fw_ability_mask=%x.\n", ha->fw_ability_mask); ql_dbg(ql_dbg_mbx, vha, 0x1027, "exchanges=%x.\n", mcp->mb[1]); - if (IS_QLA27XX(ha)) { - ha->max_speed_sup = mcp->mb[2] & 1; + if (IS_QLA83XX(ha) || IS_QLA27XX(ha)) { + ha->max_speed_sup = mcp->mb[2] & BIT_0; ql_dbg(ql_dbg_mbx, vha, 0x119b, "Maximum speed supported=%s.\n", ha->max_speed_sup ? "32Gps" : "16Gps"); @@ -682,15 +705,12 @@ qla2x00_execute_fw(scsi_qla_host_t *vha, uint32_t risc_addr) mcp->mb[5] == 4 ? "16Gps" : mcp->mb[5] == 3 ? "8Gps" : mcp->mb[5] == 2 ? "4Gps" : - "unknown"); + "unknown"); } } - ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1027, - "Done.\n"); - } else { - ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1028, - "Done %s.\n", __func__); } + ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1028, + "Done.\n"); } return rval;