diff mbox

[for-next] scsi: qla2xxx: Hide unavailable firmware

Message ID 1432252831-7551-1-git-send-email-julian.calaby@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Julian Calaby May 22, 2015, midnight UTC
Some qla2xxx devices have firmware stored in flash on the device,
however for debugging and triage purposes, Qlogic staff like to
be able to load known-good versions of these firmwares through
request_firmware().

These firmware files were never distributed and are unlikely to ever
be released publically, so to hide these missing firmware files from
scripts which check such things, (e.g. Debian's initramfs-tools) put
them behind a new EXPERT Kconfig option.

Cc: <qla2xxx-upstream@qlogic.com>
Cc: James E.J. Bottomley <JBottomley@odin.com>
Cc: Linux Firmware Maintainers <linux-firmware@kernel.org>
Signed-off-by: Julian Calaby <julian.calaby@gmail.com>
---
 drivers/scsi/qla2xxx/Kconfig  | 25 +++++++++++++++++++++++++
 drivers/scsi/qla2xxx/qla_os.c | 40 +++++++++++++++++++++++++++-------------
 2 files changed, 52 insertions(+), 13 deletions(-)

This is against linux-next @next-20150520 and has been compile
tested only.

Comments

Xose Vazquez Perez Oct. 7, 2015, 3:13 p.m. UTC | #1
On Fri, May 22, 2015 at 10:00 AM, Julian Calaby <julian.calaby@gmail.com> wrote:

> Some qla2xxx devices have firmware stored in flash on the device,
> however for debugging and triage purposes, Qlogic staff like to
> be able to load known-good versions of these firmwares through
> request_firmware().
>
> These firmware files were never distributed and are unlikely to ever
> be released publically, so to hide these missing firmware files from
> scripts which check such things, (e.g. Debian's initramfs-tools) put
> them behind a new EXPERT Kconfig option.


What is state of this patch ?


> Cc: <qla2xxx-upstream@qlogic.com>
> Cc: James E.J. Bottomley <JBottomley@odin.com>
> Cc: Linux Firmware Maintainers <linux-firmware@kernel.org>
> Signed-off-by: Julian Calaby <julian.calaby@gmail.com>
> ---
>  drivers/scsi/qla2xxx/Kconfig  | 25 +++++++++++++++++++++++++
>  drivers/scsi/qla2xxx/qla_os.c | 40 +++++++++++++++++++++++++++-------------
>  2 files changed, 52 insertions(+), 13 deletions(-)
>
> This is against linux-next @next-20150520 and has been compile
> tested only.
>
> diff --git a/drivers/scsi/qla2xxx/Kconfig b/drivers/scsi/qla2xxx/Kconfig
> index 33f60c9..31e9db4 100644
> --- a/drivers/scsi/qla2xxx/Kconfig
> +++ b/drivers/scsi/qla2xxx/Kconfig
> @@ -31,6 +31,31 @@ config SCSI_QLA_FC
>
>         They are also included in the linux-firmware tree as well.
>
> +       This driver also supports some adapters with firmware stored
> +       onboard in flash.
> +
> +config SCSI_QLA_FC_TRIAGE
> +       bool "Firmware loading support for flash based adapters"
> +       depends on SCSI_QLA_FC
> +       depends on EXPERT
> +       default n
> +       ---help---
> +       Add firmware definitions for adapters with firmware stored
> +       onboard in flash.
> +
> +       This requires the following firmware files which are not
> +       distributed:
> +
> +       ISP               Firmware Filename
> +       ----------        -----------------
> +       81xx              ql8100_fw.bin
> +       82xx              ql8200_fw.bin
> +
> +       This option should only be enabled by Qlogic support staff
> +       as these firmware files are not available publically.
> +
> +       If unsure say N.
> +
>  config TCM_QLA2XXX
>         tristate "TCM_QLA2XXX fabric module for Qlogic 2xxx series target mode HBAs"
>         depends on SCSI_QLA_FC && TARGET_CORE
> diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
> index 7462dd7..da98d83 100644
> --- a/drivers/scsi/qla2xxx/qla_os.c
> +++ b/drivers/scsi/qla2xxx/qla_os.c
> @@ -5284,11 +5284,14 @@ qla2x00_timer(scsi_qla_host_t *vha)
>  #define FW_ISP2322     3
>  #define FW_ISP24XX     4
>  #define FW_ISP25XX     5
> -#define FW_ISP81XX     6
> -#define FW_ISP82XX     7
> -#define FW_ISP2031     8
> -#define FW_ISP8031     9
> -#define FW_ISP27XX     10
> +#define FW_ISP2031     6
> +#define FW_ISP8031     7
> +#define FW_ISP27XX     8
> +
> +#ifdef CONFIG_SCSI_QLA_FC_TRIAGE
> +#define FW_ISP81XX     9
> +#define FW_ISP82XX     10
> +#endif
>
>  #define FW_FILE_ISP21XX        "ql2100_fw.bin"
>  #define FW_FILE_ISP22XX        "ql2200_fw.bin"
> @@ -5296,12 +5299,14 @@ qla2x00_timer(scsi_qla_host_t *vha)
>  #define FW_FILE_ISP2322        "ql2322_fw.bin"
>  #define FW_FILE_ISP24XX        "ql2400_fw.bin"
>  #define FW_FILE_ISP25XX        "ql2500_fw.bin"
> -#define FW_FILE_ISP81XX        "ql8100_fw.bin"
> -#define FW_FILE_ISP82XX        "ql8200_fw.bin"
>  #define FW_FILE_ISP2031        "ql2600_fw.bin"
>  #define FW_FILE_ISP8031        "ql8300_fw.bin"
>  #define FW_FILE_ISP27XX        "ql2700_fw.bin"
>
> +#ifdef CONFIG_SCSI_QLA_FC_TRIAGE
> +#define FW_FILE_ISP81XX        "ql8100_fw.bin"
> +#define FW_FILE_ISP82XX        "ql8200_fw.bin"
> +#endif
>
>  static DEFINE_MUTEX(qla_fw_lock);
>
> @@ -5312,11 +5317,13 @@ static struct fw_blob qla_fw_blobs[FW_BLOBS] = {
>         { .name = FW_FILE_ISP2322, .segs = { 0x800, 0x1c000, 0x1e000, 0 }, },
>         { .name = FW_FILE_ISP24XX, },
>         { .name = FW_FILE_ISP25XX, },
> -       { .name = FW_FILE_ISP81XX, },
> -       { .name = FW_FILE_ISP82XX, },
>         { .name = FW_FILE_ISP2031, },
>         { .name = FW_FILE_ISP8031, },
>         { .name = FW_FILE_ISP27XX, },
> +#ifdef CONFIG_SCSI_QLA_FC_TRIAGE
> +       { .name = FW_FILE_ISP81XX, },
> +       { .name = FW_FILE_ISP82XX, },
> +#endif
>  };
>
>  struct fw_blob *
> @@ -5337,16 +5344,18 @@ qla2x00_request_firmware(scsi_qla_host_t *vha)
>                 blob = &qla_fw_blobs[FW_ISP24XX];
>         } else if (IS_QLA25XX(ha)) {
>                 blob = &qla_fw_blobs[FW_ISP25XX];
> -       } else if (IS_QLA81XX(ha)) {
> -               blob = &qla_fw_blobs[FW_ISP81XX];
> -       } else if (IS_QLA82XX(ha)) {
> -               blob = &qla_fw_blobs[FW_ISP82XX];
>         } else if (IS_QLA2031(ha)) {
>                 blob = &qla_fw_blobs[FW_ISP2031];
>         } else if (IS_QLA8031(ha)) {
>                 blob = &qla_fw_blobs[FW_ISP8031];
>         } else if (IS_QLA27XX(ha)) {
>                 blob = &qla_fw_blobs[FW_ISP27XX];
> +#ifdef CONFIG_SCSI_QLA_FC_TRIAGE
> +       } else if (IS_QLA81XX(ha)) {
> +               blob = &qla_fw_blobs[FW_ISP81XX];
> +       } else if (IS_QLA82XX(ha)) {
> +               blob = &qla_fw_blobs[FW_ISP82XX];
> +#endif
>         } else {
>                 return NULL;
>         }
> @@ -5837,3 +5846,8 @@ MODULE_FIRMWARE(FW_FILE_ISP25XX);
>  MODULE_FIRMWARE(FW_FILE_ISP2031);
>  MODULE_FIRMWARE(FW_FILE_ISP8031);
>  MODULE_FIRMWARE(FW_FILE_ISP27XX);
> +
> +#ifdef CONFIG_SCSI_QLA_FC_TRIAGE
> +MODULE_FIRMWARE(FW_FILE_ISP81XX);
> +MODULE_FIRMWARE(FW_FILE_ISP82XX);
> +#endif
> --
> 2.1.4
>
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Julian Calaby Oct. 7, 2015, 11:41 p.m. UTC | #2
Hi Xose,

On Thu, Oct 8, 2015 at 2:13 AM, Xose Vazquez Perez
<xose.vazquez@gmail.com> wrote:
> On Fri, May 22, 2015 at 10:00 AM, Julian Calaby <julian.calaby@gmail.com> wrote:
>
>> Some qla2xxx devices have firmware stored in flash on the device,
>> however for debugging and triage purposes, Qlogic staff like to
>> be able to load known-good versions of these firmwares through
>> request_firmware().
>>
>> These firmware files were never distributed and are unlikely to ever
>> be released publically, so to hide these missing firmware files from
>> scripts which check such things, (e.g. Debian's initramfs-tools) put
>> them behind a new EXPERT Kconfig option.
>
>
> What is state of this patch ?

Apparently nobody cared, either from qLogic or linux-scsi.

I'm not overly fussed whether it goes in or not, it was more a point
in the discussion that proceeded it, however it does solve the
problems in the discussion that preceded it.

Thanks,
Himanshu Madhani Oct. 8, 2015, 3:46 p.m. UTC | #3
On 10/7/15, 4:41 PM, "Julian Calaby" <julian.calaby@gmail.com> wrote:

>Hi Xose,
>
>On Thu, Oct 8, 2015 at 2:13 AM, Xose Vazquez Perez
><xose.vazquez@gmail.com> wrote:
>> On Fri, May 22, 2015 at 10:00 AM, Julian Calaby
>><julian.calaby@gmail.com> wrote:
>>
>>> Some qla2xxx devices have firmware stored in flash on the device,
>>> however for debugging and triage purposes, Qlogic staff like to
>>> be able to load known-good versions of these firmwares through
>>> request_firmware().
>>>
>>> These firmware files were never distributed and are unlikely to ever
>>> be released publically, so to hide these missing firmware files from
>>> scripts which check such things, (e.g. Debian's initramfs-tools) put
>>> them behind a new EXPERT Kconfig option.
>>
>>
>> What is state of this patch ?
>
>Apparently nobody cared, either from qLogic or linux-scsi.
>
>I'm not overly fussed whether it goes in or not, it was more a point
>in the discussion that proceeded it, however it does solve the
>problems in the discussion that preceded it.

This patch Looks good.

Acked-By: Himanshu Madhani <himanshu.madhani@qlogic.com>

>
>Thanks,
>
>-- 
>Julian Calaby
>
>Email: julian.calaby@gmail.com
>Profile: http://www.google.com/profiles/julian.calaby/
>--
>To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html
James Bottomley Oct. 8, 2015, 4:17 p.m. UTC | #4
On Thu, 2015-10-08 at 15:46 +0000, Himanshu Madhani wrote:
> 
> On 10/7/15, 4:41 PM, "Julian Calaby" <julian.calaby@gmail.com> wrote:
> 
> >Hi Xose,
> >
> >On Thu, Oct 8, 2015 at 2:13 AM, Xose Vazquez Perez
> ><xose.vazquez@gmail.com> wrote:
> >> On Fri, May 22, 2015 at 10:00 AM, Julian Calaby
> >><julian.calaby@gmail.com> wrote:
> >>
> >>> Some qla2xxx devices have firmware stored in flash on the device,
> >>> however for debugging and triage purposes, Qlogic staff like to
> >>> be able to load known-good versions of these firmwares through
> >>> request_firmware().
> >>>
> >>> These firmware files were never distributed and are unlikely to ever
> >>> be released publically, so to hide these missing firmware files from
> >>> scripts which check such things, (e.g. Debian's initramfs-tools) put
> >>> them behind a new EXPERT Kconfig option.
> >>
> >>
> >> What is state of this patch ?
> >
> >Apparently nobody cared, either from qLogic or linux-scsi.
> >
> >I'm not overly fussed whether it goes in or not, it was more a point
> >in the discussion that proceeded it, however it does solve the
> >problems in the discussion that preceded it.
> 
> This patch Looks good.
> 
> Acked-By: Himanshu Madhani <himanshu.madhani@qlogic.com>

Actually, this isn't helpful.  You now add another option over which the
distributions have to make a choice.  Is this interface necessary and
useful?  If yes, then it should be compiled in and if not, just remove
it ... don't do death by 1000 Kconfig options.

James


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Himanshu Madhani Oct. 8, 2015, 5:38 p.m. UTC | #5
Hi James,



On 10/8/15, 9:17 AM, "James Bottomley"
<James.Bottomley@HansenPartnership.com> wrote:

>On Thu, 2015-10-08 at 15:46 +0000, Himanshu Madhani wrote:
>> 
>> On 10/7/15, 4:41 PM, "Julian Calaby" <julian.calaby@gmail.com> wrote:
>> 
>> >Hi Xose,
>> >
>> >On Thu, Oct 8, 2015 at 2:13 AM, Xose Vazquez Perez
>> ><xose.vazquez@gmail.com> wrote:
>> >> On Fri, May 22, 2015 at 10:00 AM, Julian Calaby
>> >><julian.calaby@gmail.com> wrote:
>> >>
>> >>> Some qla2xxx devices have firmware stored in flash on the device,
>> >>> however for debugging and triage purposes, Qlogic staff like to
>> >>> be able to load known-good versions of these firmwares through
>> >>> request_firmware().
>> >>>
>> >>> These firmware files were never distributed and are unlikely to ever
>> >>> be released publically, so to hide these missing firmware files from
>> >>> scripts which check such things, (e.g. Debian's initramfs-tools) put
>> >>> them behind a new EXPERT Kconfig option.
>> >>
>> >>
>> >> What is state of this patch ?
>> >
>> >Apparently nobody cared, either from qLogic or linux-scsi.
>> >
>> >I'm not overly fussed whether it goes in or not, it was more a point
>> >in the discussion that proceeded it, however it does solve the
>> >problems in the discussion that preceded it.
>> 
>> This patch Looks good.
>> 
>> Acked-By: Himanshu Madhani <himanshu.madhani@qlogic.com>
>
>Actually, this isn't helpful.  You now add another option over which the
>distributions have to make a choice.  Is this interface necessary and
>useful?  If yes, then it should be compiled in and if not, just remove
>it ... don't do death by 1000 Kconfig options.

I¹ll send out patch to clean up firmware binaries which are not submitted
to linux-firmware.git

>
>James
>
>
Julian Calaby Oct. 8, 2015, 11:10 p.m. UTC | #6
Hi James,

On Fri, Oct 9, 2015 at 3:17 AM, James Bottomley
<James.Bottomley@hansenpartnership.com> wrote:
> On Thu, 2015-10-08 at 15:46 +0000, Himanshu Madhani wrote:
>>
>> On 10/7/15, 4:41 PM, "Julian Calaby" <julian.calaby@gmail.com> wrote:
>>
>> >Hi Xose,
>> >
>> >On Thu, Oct 8, 2015 at 2:13 AM, Xose Vazquez Perez
>> ><xose.vazquez@gmail.com> wrote:
>> >> On Fri, May 22, 2015 at 10:00 AM, Julian Calaby
>> >><julian.calaby@gmail.com> wrote:
>> >>
>> >>> Some qla2xxx devices have firmware stored in flash on the device,
>> >>> however for debugging and triage purposes, Qlogic staff like to
>> >>> be able to load known-good versions of these firmwares through
>> >>> request_firmware().
>> >>>
>> >>> These firmware files were never distributed and are unlikely to ever
>> >>> be released publically, so to hide these missing firmware files from
>> >>> scripts which check such things, (e.g. Debian's initramfs-tools) put
>> >>> them behind a new EXPERT Kconfig option.
>> >>
>> >>
>> >> What is state of this patch ?
>> >
>> >Apparently nobody cared, either from qLogic or linux-scsi.
>> >
>> >I'm not overly fussed whether it goes in or not, it was more a point
>> >in the discussion that proceeded it, however it does solve the
>> >problems in the discussion that preceded it.
>>
>> This patch Looks good.
>>
>> Acked-By: Himanshu Madhani <himanshu.madhani@qlogic.com>
>
> Actually, this isn't helpful.  You now add another option over which the
> distributions have to make a choice.  Is this interface necessary and
> useful?  If yes, then it should be compiled in and if not, just remove
> it ... don't do death by 1000 Kconfig options.

The original issue here was that the qla2xxx driver specifies two
firmware files which are not publicly available.

They aren't publicly available because the hardware that uses them
always stores it's firmware in flash.

The firmware files are specified in the driver because qLogic support
likes to be able to load a known-good firmware file from disk for
debugging faulty hardware.

Some distributions (Debian is a good example) will complain vocally
about missing firmware files when installing kernels or producing
initramfs images.

This patch was intended as an ugly compromise between all of this.

Thanks,
Giridhar Malavali Oct. 9, 2015, 12:26 a.m. UTC | #7
On 10/8/15 4:10 PM, "Julian Calaby" <julian.calaby@gmail.com> wrote:

>Hi James,
>
>On Fri, Oct 9, 2015 at 3:17 AM, James Bottomley
><James.Bottomley@hansenpartnership.com> wrote:
>> On Thu, 2015-10-08 at 15:46 +0000, Himanshu Madhani wrote:
>>>
>>> On 10/7/15, 4:41 PM, "Julian Calaby" <julian.calaby@gmail.com> wrote:
>>>
>>> >Hi Xose,
>>> >
>>> >On Thu, Oct 8, 2015 at 2:13 AM, Xose Vazquez Perez
>>> ><xose.vazquez@gmail.com> wrote:
>>> >> On Fri, May 22, 2015 at 10:00 AM, Julian Calaby
>>> >><julian.calaby@gmail.com> wrote:
>>> >>
>>> >>> Some qla2xxx devices have firmware stored in flash on the device,
>>> >>> however for debugging and triage purposes, Qlogic staff like to
>>> >>> be able to load known-good versions of these firmwares through
>>> >>> request_firmware().
>>> >>>
>>> >>> These firmware files were never distributed and are unlikely to
>>>ever
>>> >>> be released publically, so to hide these missing firmware files
>>>from
>>> >>> scripts which check such things, (e.g. Debian's initramfs-tools)
>>>put
>>> >>> them behind a new EXPERT Kconfig option.
>>> >>
>>> >>
>>> >> What is state of this patch ?
>>> >
>>> >Apparently nobody cared, either from qLogic or linux-scsi.
>>> >
>>> >I'm not overly fussed whether it goes in or not, it was more a point
>>> >in the discussion that proceeded it, however it does solve the
>>> >problems in the discussion that preceded it.
>>>
>>> This patch Looks good.
>>>
>>> Acked-By: Himanshu Madhani <himanshu.madhani@qlogic.com>
>>
>> Actually, this isn't helpful.  You now add another option over which the
>> distributions have to make a choice.  Is this interface necessary and
>> useful?  If yes, then it should be compiled in and if not, just remove
>> it ... don't do death by 1000 Kconfig options.
>
>The original issue here was that the qla2xxx driver specifies two
>firmware files which are not publicly available.
>
>They aren't publicly available because the hardware that uses them
>always stores it's firmware in flash.
>
>The firmware files are specified in the driver because qLogic support
>likes to be able to load a known-good firmware file from disk for
>debugging faulty hardware.
>
>Some distributions (Debian is a good example) will complain vocally
>about missing firmware files when installing kernels or producing
>initramfs images.
>
>This patch was intended as an ugly compromise between all of this.

Julian, James, 

We will send a patch to remove such references in our driver.

-- Giri


>
>Thanks,
>
>-- 
>Julian Calaby
>
>Email: julian.calaby@gmail.com
>Profile: http://www.google.com/profiles/julian.calaby/
Xose Vazquez Perez Oct. 9, 2015, 2:45 p.m. UTC | #8
On 10/09/2015 02:26 AM, Giridhar Malavali wrote:

> We will send a patch to remove such references in our driver.

Could you please send latest(8.01.00 or better) firmware to linux-firmware.git ?
Right now it brings 7.03.00, and some enterprise distributions already have 8.00.00

-thanks-
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/scsi/qla2xxx/Kconfig b/drivers/scsi/qla2xxx/Kconfig
index 33f60c9..31e9db4 100644
--- a/drivers/scsi/qla2xxx/Kconfig
+++ b/drivers/scsi/qla2xxx/Kconfig
@@ -31,6 +31,31 @@  config SCSI_QLA_FC
 
 	They are also included in the linux-firmware tree as well.
 
+	This driver also supports some adapters with firmware stored
+	onboard in flash.
+
+config SCSI_QLA_FC_TRIAGE
+	bool "Firmware loading support for flash based adapters"
+	depends on SCSI_QLA_FC
+	depends on EXPERT
+	default n
+	---help---
+	Add firmware definitions for adapters with firmware stored
+	onboard in flash.
+
+	This requires the following firmware files which are not
+	distributed:
+
+	ISP               Firmware Filename
+	----------        -----------------
+	81xx		  ql8100_fw.bin
+	82xx		  ql8200_fw.bin
+
+	This option should only be enabled by Qlogic support staff
+	as these firmware files are not available publically.
+
+	If unsure say N.
+
 config TCM_QLA2XXX
 	tristate "TCM_QLA2XXX fabric module for Qlogic 2xxx series target mode HBAs"
 	depends on SCSI_QLA_FC && TARGET_CORE
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 7462dd7..da98d83 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -5284,11 +5284,14 @@  qla2x00_timer(scsi_qla_host_t *vha)
 #define FW_ISP2322	3
 #define FW_ISP24XX	4
 #define FW_ISP25XX	5
-#define FW_ISP81XX	6
-#define FW_ISP82XX	7
-#define FW_ISP2031	8
-#define FW_ISP8031	9
-#define FW_ISP27XX	10
+#define FW_ISP2031	6
+#define FW_ISP8031	7
+#define FW_ISP27XX	8
+
+#ifdef CONFIG_SCSI_QLA_FC_TRIAGE
+#define FW_ISP81XX	9
+#define FW_ISP82XX	10
+#endif
 
 #define FW_FILE_ISP21XX	"ql2100_fw.bin"
 #define FW_FILE_ISP22XX	"ql2200_fw.bin"
@@ -5296,12 +5299,14 @@  qla2x00_timer(scsi_qla_host_t *vha)
 #define FW_FILE_ISP2322	"ql2322_fw.bin"
 #define FW_FILE_ISP24XX	"ql2400_fw.bin"
 #define FW_FILE_ISP25XX	"ql2500_fw.bin"
-#define FW_FILE_ISP81XX	"ql8100_fw.bin"
-#define FW_FILE_ISP82XX	"ql8200_fw.bin"
 #define FW_FILE_ISP2031	"ql2600_fw.bin"
 #define FW_FILE_ISP8031	"ql8300_fw.bin"
 #define FW_FILE_ISP27XX	"ql2700_fw.bin"
 
+#ifdef CONFIG_SCSI_QLA_FC_TRIAGE
+#define FW_FILE_ISP81XX	"ql8100_fw.bin"
+#define FW_FILE_ISP82XX	"ql8200_fw.bin"
+#endif
 
 static DEFINE_MUTEX(qla_fw_lock);
 
@@ -5312,11 +5317,13 @@  static struct fw_blob qla_fw_blobs[FW_BLOBS] = {
 	{ .name = FW_FILE_ISP2322, .segs = { 0x800, 0x1c000, 0x1e000, 0 }, },
 	{ .name = FW_FILE_ISP24XX, },
 	{ .name = FW_FILE_ISP25XX, },
-	{ .name = FW_FILE_ISP81XX, },
-	{ .name = FW_FILE_ISP82XX, },
 	{ .name = FW_FILE_ISP2031, },
 	{ .name = FW_FILE_ISP8031, },
 	{ .name = FW_FILE_ISP27XX, },
+#ifdef CONFIG_SCSI_QLA_FC_TRIAGE
+	{ .name = FW_FILE_ISP81XX, },
+	{ .name = FW_FILE_ISP82XX, },
+#endif
 };
 
 struct fw_blob *
@@ -5337,16 +5344,18 @@  qla2x00_request_firmware(scsi_qla_host_t *vha)
 		blob = &qla_fw_blobs[FW_ISP24XX];
 	} else if (IS_QLA25XX(ha)) {
 		blob = &qla_fw_blobs[FW_ISP25XX];
-	} else if (IS_QLA81XX(ha)) {
-		blob = &qla_fw_blobs[FW_ISP81XX];
-	} else if (IS_QLA82XX(ha)) {
-		blob = &qla_fw_blobs[FW_ISP82XX];
 	} else if (IS_QLA2031(ha)) {
 		blob = &qla_fw_blobs[FW_ISP2031];
 	} else if (IS_QLA8031(ha)) {
 		blob = &qla_fw_blobs[FW_ISP8031];
 	} else if (IS_QLA27XX(ha)) {
 		blob = &qla_fw_blobs[FW_ISP27XX];
+#ifdef CONFIG_SCSI_QLA_FC_TRIAGE
+	} else if (IS_QLA81XX(ha)) {
+		blob = &qla_fw_blobs[FW_ISP81XX];
+	} else if (IS_QLA82XX(ha)) {
+		blob = &qla_fw_blobs[FW_ISP82XX];
+#endif
 	} else {
 		return NULL;
 	}
@@ -5837,3 +5846,8 @@  MODULE_FIRMWARE(FW_FILE_ISP25XX);
 MODULE_FIRMWARE(FW_FILE_ISP2031);
 MODULE_FIRMWARE(FW_FILE_ISP8031);
 MODULE_FIRMWARE(FW_FILE_ISP27XX);
+
+#ifdef CONFIG_SCSI_QLA_FC_TRIAGE
+MODULE_FIRMWARE(FW_FILE_ISP81XX);
+MODULE_FIRMWARE(FW_FILE_ISP82XX);
+#endif