Merge tag 'sound-4.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
[firefly-linux-kernel-4.4.55.git] / drivers / scsi / qla2xxx / qla_init.c
index 11f2f3279eab2984fe131510cc669b329f149bae..16a1935cc9c1131359e514befb04b6a7bb155f9b 100644 (file)
@@ -1132,7 +1132,7 @@ qla24xx_reset_risc(scsi_qla_host_t *vha)
        unsigned long flags = 0;
        struct qla_hw_data *ha = vha->hw;
        struct device_reg_24xx __iomem *reg = &ha->iobase->isp24;
-       uint32_t cnt, d2;
+       uint32_t cnt;
        uint16_t wd;
        static int abts_cnt; /* ISP abort retry counts */
        int rval = QLA_SUCCESS;
@@ -1164,7 +1164,7 @@ qla24xx_reset_risc(scsi_qla_host_t *vha)
        udelay(100);
 
        /* Wait for firmware to complete NVRAM accesses. */
-       d2 = (uint32_t) RD_REG_WORD(&reg->mailbox0);
+       RD_REG_WORD(&reg->mailbox0);
        for (cnt = 10000; RD_REG_WORD(&reg->mailbox0) != 0 &&
            rval == QLA_SUCCESS; cnt--) {
                barrier();
@@ -1183,7 +1183,7 @@ qla24xx_reset_risc(scsi_qla_host_t *vha)
            RD_REG_DWORD(&reg->mailbox0));
 
        /* Wait for soft-reset to complete. */
-       d2 = RD_REG_DWORD(&reg->ctrl_status);
+       RD_REG_DWORD(&reg->ctrl_status);
        for (cnt = 0; cnt < 6000000; cnt++) {
                barrier();
                if ((RD_REG_DWORD(&reg->ctrl_status) &
@@ -1226,7 +1226,7 @@ qla24xx_reset_risc(scsi_qla_host_t *vha)
        WRT_REG_DWORD(&reg->hccr, HCCRX_CLR_RISC_RESET);
        RD_REG_DWORD(&reg->hccr);
 
-       d2 = (uint32_t) RD_REG_WORD(&reg->mailbox0);
+       RD_REG_WORD(&reg->mailbox0);
        for (cnt = 6000000; RD_REG_WORD(&reg->mailbox0) != 0 &&
            rval == QLA_SUCCESS; cnt--) {
                barrier();
@@ -1277,16 +1277,19 @@ qla25xx_write_risc_sema_reg(scsi_qla_host_t *vha, uint32_t data)
 static void
 qla25xx_manipulate_risc_semaphore(scsi_qla_host_t *vha)
 {
-       struct qla_hw_data *ha = vha->hw;
        uint32_t wd32 = 0;
        uint delta_msec = 100;
        uint elapsed_msec = 0;
        uint timeout_msec;
        ulong n;
 
-       if (!IS_QLA25XX(ha) && !IS_QLA2031(ha))
+       if (vha->hw->pdev->subsystem_device != 0x0175 &&
+           vha->hw->pdev->subsystem_device != 0x0240)
                return;
 
+       WRT_REG_DWORD(&vha->hw->iobase->isp24.hccr, HCCRX_SET_RISC_PAUSE);
+       udelay(100);
+
 attempt:
        timeout_msec = TIMEOUT_SEMAPHORE;
        n = timeout_msec / delta_msec;
@@ -1690,7 +1693,7 @@ allocate:
        ha->fw_dump->signature[1] = 'L';
        ha->fw_dump->signature[2] = 'G';
        ha->fw_dump->signature[3] = 'C';
-       ha->fw_dump->version = __constant_htonl(1);
+       ha->fw_dump->version = htonl(1);
 
        ha->fw_dump->fixed_size = htonl(fixed_size);
        ha->fw_dump->mem_size = htonl(mem_size);
@@ -2070,8 +2073,8 @@ qla2x00_config_rings(struct scsi_qla_host *vha)
        struct rsp_que *rsp = ha->rsp_q_map[0];
 
        /* Setup ring parameters in initialization control block. */
-       ha->init_cb->request_q_outpointer = __constant_cpu_to_le16(0);
-       ha->init_cb->response_q_inpointer = __constant_cpu_to_le16(0);
+       ha->init_cb->request_q_outpointer = cpu_to_le16(0);
+       ha->init_cb->response_q_inpointer = cpu_to_le16(0);
        ha->init_cb->request_q_length = cpu_to_le16(req->length);
        ha->init_cb->response_q_length = cpu_to_le16(rsp->length);
        ha->init_cb->request_q_address[0] = cpu_to_le32(LSD(req->dma));
@@ -2090,7 +2093,7 @@ void
 qla24xx_config_rings(struct scsi_qla_host *vha)
 {
        struct qla_hw_data *ha = vha->hw;
-       device_reg_t __iomem *reg = ISP_QUE_REG(ha, 0);
+       device_reg_t *reg = ISP_QUE_REG(ha, 0);
        struct device_reg_2xxx __iomem *ioreg = &ha->iobase->isp;
        struct qla_msix_entry *msix;
        struct init_cb_24xx *icb;
@@ -2100,8 +2103,8 @@ qla24xx_config_rings(struct scsi_qla_host *vha)
 
        /* Setup ring parameters in initialization control block. */
        icb = (struct init_cb_24xx *)ha->init_cb;
-       icb->request_q_outpointer = __constant_cpu_to_le16(0);
-       icb->response_q_inpointer = __constant_cpu_to_le16(0);
+       icb->request_q_outpointer = cpu_to_le16(0);
+       icb->response_q_inpointer = cpu_to_le16(0);
        icb->request_q_length = cpu_to_le16(req->length);
        icb->response_q_length = cpu_to_le16(rsp->length);
        icb->request_q_address[0] = cpu_to_le32(LSD(req->dma));
@@ -2110,18 +2113,17 @@ qla24xx_config_rings(struct scsi_qla_host *vha)
        icb->response_q_address[1] = cpu_to_le32(MSD(rsp->dma));
 
        /* Setup ATIO queue dma pointers for target mode */
-       icb->atio_q_inpointer = __constant_cpu_to_le16(0);
+       icb->atio_q_inpointer = cpu_to_le16(0);
        icb->atio_q_length = cpu_to_le16(ha->tgt.atio_q_length);
        icb->atio_q_address[0] = cpu_to_le32(LSD(ha->tgt.atio_dma));
        icb->atio_q_address[1] = cpu_to_le32(MSD(ha->tgt.atio_dma));
 
        if (IS_SHADOW_REG_CAPABLE(ha))
-               icb->firmware_options_2 |=
-                   __constant_cpu_to_le32(BIT_30|BIT_29);
+               icb->firmware_options_2 |= cpu_to_le32(BIT_30|BIT_29);
 
        if (ha->mqenable || IS_QLA83XX(ha) || IS_QLA27XX(ha)) {
-               icb->qos = __constant_cpu_to_le16(QLA_DEFAULT_QUE_QOS);
-               icb->rid = __constant_cpu_to_le16(rid);
+               icb->qos = cpu_to_le16(QLA_DEFAULT_QUE_QOS);
+               icb->rid = cpu_to_le16(rid);
                if (ha->flags.msix_enabled) {
                        msix = &ha->msix_entries[1];
                        ql_dbg(ql_dbg_init, vha, 0x00fd,
@@ -2131,26 +2133,22 @@ qla24xx_config_rings(struct scsi_qla_host *vha)
                }
                /* Use alternate PCI bus number */
                if (MSB(rid))
-                       icb->firmware_options_2 |=
-                               __constant_cpu_to_le32(BIT_19);
+                       icb->firmware_options_2 |= cpu_to_le32(BIT_19);
                /* Use alternate PCI devfn */
                if (LSB(rid))
-                       icb->firmware_options_2 |=
-                               __constant_cpu_to_le32(BIT_18);
+                       icb->firmware_options_2 |= cpu_to_le32(BIT_18);
 
                /* Use Disable MSIX Handshake mode for capable adapters */
                if ((ha->fw_attributes & BIT_6) && (IS_MSIX_NACK_CAPABLE(ha)) &&
                    (ha->flags.msix_enabled)) {
-                       icb->firmware_options_2 &=
-                               __constant_cpu_to_le32(~BIT_22);
+                       icb->firmware_options_2 &= cpu_to_le32(~BIT_22);
                        ha->flags.disable_msix_handshake = 1;
                        ql_dbg(ql_dbg_init, vha, 0x00fe,
                            "MSIX Handshake Disable Mode turned on.\n");
                } else {
-                       icb->firmware_options_2 |=
-                               __constant_cpu_to_le32(BIT_22);
+                       icb->firmware_options_2 |= cpu_to_le32(BIT_22);
                }
-               icb->firmware_options_2 |= __constant_cpu_to_le32(BIT_23);
+               icb->firmware_options_2 |= cpu_to_le32(BIT_23);
 
                WRT_REG_DWORD(&reg->isp25mq.req_q_in, 0);
                WRT_REG_DWORD(&reg->isp25mq.req_q_out, 0);
@@ -2248,7 +2246,7 @@ qla2x00_init_rings(scsi_qla_host_t *vha)
        }
 
        if (IS_FWI2_CAPABLE(ha)) {
-               mid_init_cb->options = __constant_cpu_to_le16(BIT_1);
+               mid_init_cb->options = cpu_to_le16(BIT_1);
                mid_init_cb->init_cb.execution_throttle =
                    cpu_to_le16(ha->fw_xcb_count);
                /* D-Port Status */
@@ -2677,8 +2675,8 @@ qla2x00_nvram_config(scsi_qla_host_t *vha)
                        nv->frame_payload_size = 1024;
                }
 
-               nv->max_iocb_allocation = __constant_cpu_to_le16(256);
-               nv->execution_throttle = __constant_cpu_to_le16(16);
+               nv->max_iocb_allocation = cpu_to_le16(256);
+               nv->execution_throttle = cpu_to_le16(16);
                nv->retry_count = 8;
                nv->retry_delay = 1;
 
@@ -2696,7 +2694,7 @@ qla2x00_nvram_config(scsi_qla_host_t *vha)
                nv->host_p[1] = BIT_2;
                nv->reset_delay = 5;
                nv->port_down_retry_count = 8;
-               nv->max_luns_per_target = __constant_cpu_to_le16(8);
+               nv->max_luns_per_target = cpu_to_le16(8);
                nv->link_down_timeout = 60;
 
                rval = 1;
@@ -2824,7 +2822,7 @@ qla2x00_nvram_config(scsi_qla_host_t *vha)
        memcpy(vha->node_name, icb->node_name, WWN_SIZE);
        memcpy(vha->port_name, icb->port_name, WWN_SIZE);
 
-       icb->execution_throttle = __constant_cpu_to_le16(0xFFFF);
+       icb->execution_throttle = cpu_to_le16(0xFFFF);
 
        ha->retry_count = nv->retry_count;
 
@@ -2876,10 +2874,10 @@ qla2x00_nvram_config(scsi_qla_host_t *vha)
        if (ql2xloginretrycount)
                ha->login_retry_count = ql2xloginretrycount;
 
-       icb->lun_enables = __constant_cpu_to_le16(0);
+       icb->lun_enables = cpu_to_le16(0);
        icb->command_resource_count = 0;
        icb->immediate_notify_resource_count = 0;
-       icb->timeout = __constant_cpu_to_le16(0);
+       icb->timeout = cpu_to_le16(0);
 
        if (IS_QLA2100(ha) || IS_QLA2200(ha)) {
                /* Enable RIO */
@@ -3958,12 +3956,10 @@ qla2x00_fabric_dev_login(scsi_qla_host_t *vha, fc_port_t *fcport,
     uint16_t *next_loopid)
 {
        int     rval;
-       int     retry;
        uint8_t opts;
        struct qla_hw_data *ha = vha->hw;
 
        rval = QLA_SUCCESS;
-       retry = 0;
 
        if (IS_ALOGIO_CAPABLE(ha)) {
                if (fcport->flags & FCF_ASYNC_SENT)
@@ -5117,7 +5113,7 @@ qla24xx_nvram_config(scsi_qla_host_t *vha)
        /* Bad NVRAM data, set defaults parameters. */
        if (chksum || nv->id[0] != 'I' || nv->id[1] != 'S' || nv->id[2] != 'P'
            || nv->id[3] != ' ' ||
-           nv->nvram_version < __constant_cpu_to_le16(ICB_VERSION)) {
+           nv->nvram_version < cpu_to_le16(ICB_VERSION)) {
                /* Reset NVRAM data. */
                ql_log(ql_log_warn, vha, 0x006b,
                    "Inconsistent NVRAM detected: checksum=0x%x id=%c "
@@ -5130,12 +5126,12 @@ qla24xx_nvram_config(scsi_qla_host_t *vha)
                 * Set default initialization control block.
                 */
                memset(nv, 0, ha->nvram_size);
-               nv->nvram_version = __constant_cpu_to_le16(ICB_VERSION);
-               nv->version = __constant_cpu_to_le16(ICB_VERSION);
+               nv->nvram_version = cpu_to_le16(ICB_VERSION);
+               nv->version = cpu_to_le16(ICB_VERSION);
                nv->frame_payload_size = 2048;
-               nv->execution_throttle = __constant_cpu_to_le16(0xFFFF);
-               nv->exchange_count = __constant_cpu_to_le16(0);
-               nv->hard_address = __constant_cpu_to_le16(124);
+               nv->execution_throttle = cpu_to_le16(0xFFFF);
+               nv->exchange_count = cpu_to_le16(0);
+               nv->hard_address = cpu_to_le16(124);
                nv->port_name[0] = 0x21;
                nv->port_name[1] = 0x00 + ha->port_no + 1;
                nv->port_name[2] = 0x00;
@@ -5153,29 +5149,29 @@ qla24xx_nvram_config(scsi_qla_host_t *vha)
                nv->node_name[6] = 0x55;
                nv->node_name[7] = 0x86;
                qla24xx_nvram_wwn_from_ofw(vha, nv);
-               nv->login_retry_count = __constant_cpu_to_le16(8);
-               nv->interrupt_delay_timer = __constant_cpu_to_le16(0);
-               nv->login_timeout = __constant_cpu_to_le16(0);
+               nv->login_retry_count = cpu_to_le16(8);
+               nv->interrupt_delay_timer = cpu_to_le16(0);
+               nv->login_timeout = cpu_to_le16(0);
                nv->firmware_options_1 =
-                   __constant_cpu_to_le32(BIT_14|BIT_13|BIT_2|BIT_1);
-               nv->firmware_options_2 = __constant_cpu_to_le32(2 << 4);
-               nv->firmware_options_2 |= __constant_cpu_to_le32(BIT_12);
-               nv->firmware_options_3 = __constant_cpu_to_le32(2 << 13);
-               nv->host_p = __constant_cpu_to_le32(BIT_11|BIT_10);
-               nv->efi_parameters = __constant_cpu_to_le32(0);
+                   cpu_to_le32(BIT_14|BIT_13|BIT_2|BIT_1);
+               nv->firmware_options_2 = cpu_to_le32(2 << 4);
+               nv->firmware_options_2 |= cpu_to_le32(BIT_12);
+               nv->firmware_options_3 = cpu_to_le32(2 << 13);
+               nv->host_p = cpu_to_le32(BIT_11|BIT_10);
+               nv->efi_parameters = cpu_to_le32(0);
                nv->reset_delay = 5;
-               nv->max_luns_per_target = __constant_cpu_to_le16(128);
-               nv->port_down_retry_count = __constant_cpu_to_le16(30);
-               nv->link_down_timeout = __constant_cpu_to_le16(30);
+               nv->max_luns_per_target = cpu_to_le16(128);
+               nv->port_down_retry_count = cpu_to_le16(30);
+               nv->link_down_timeout = cpu_to_le16(30);
 
                rval = 1;
        }
 
        if (!qla_ini_mode_enabled(vha)) {
                /* Don't enable full login after initial LIP */
-               nv->firmware_options_1 &= __constant_cpu_to_le32(~BIT_13);
+               nv->firmware_options_1 &= cpu_to_le32(~BIT_13);
                /* Don't enable LIP full login for initiator */
-               nv->host_p &= __constant_cpu_to_le32(~BIT_10);
+               nv->host_p &= cpu_to_le32(~BIT_10);
        }
 
        qlt_24xx_config_nvram_stage1(vha, nv);
@@ -5209,14 +5205,14 @@ qla24xx_nvram_config(scsi_qla_host_t *vha)
 
        qlt_24xx_config_nvram_stage2(vha, icb);
 
-       if (nv->host_p & __constant_cpu_to_le32(BIT_15)) {
+       if (nv->host_p & cpu_to_le32(BIT_15)) {
                /* Use alternate WWN? */
                memcpy(icb->node_name, nv->alternate_node_name, WWN_SIZE);
                memcpy(icb->port_name, nv->alternate_port_name, WWN_SIZE);
        }
 
        /* Prepare nodename */
-       if ((icb->firmware_options_1 & __constant_cpu_to_le32(BIT_14)) == 0) {
+       if ((icb->firmware_options_1 & cpu_to_le32(BIT_14)) == 0) {
                /*
                 * Firmware will apply the following mask if the nodename was
                 * not provided.
@@ -5248,7 +5244,7 @@ qla24xx_nvram_config(scsi_qla_host_t *vha)
        memcpy(vha->node_name, icb->node_name, WWN_SIZE);
        memcpy(vha->port_name, icb->port_name, WWN_SIZE);
 
-       icb->execution_throttle = __constant_cpu_to_le16(0xFFFF);
+       icb->execution_throttle = cpu_to_le16(0xFFFF);
 
        ha->retry_count = le16_to_cpu(nv->login_retry_count);
 
@@ -5256,7 +5252,7 @@ qla24xx_nvram_config(scsi_qla_host_t *vha)
        if (le16_to_cpu(nv->login_timeout) < ql2xlogintimeout)
                nv->login_timeout = cpu_to_le16(ql2xlogintimeout);
        if (le16_to_cpu(nv->login_timeout) < 4)
-               nv->login_timeout = __constant_cpu_to_le16(4);
+               nv->login_timeout = cpu_to_le16(4);
        ha->login_timeout = le16_to_cpu(nv->login_timeout);
        icb->login_timeout = nv->login_timeout;
 
@@ -5307,7 +5303,7 @@ qla24xx_nvram_config(scsi_qla_host_t *vha)
                ha->zio_timer = le16_to_cpu(icb->interrupt_delay_timer) ?
                    le16_to_cpu(icb->interrupt_delay_timer): 2;
        }
-       icb->firmware_options_2 &= __constant_cpu_to_le32(
+       icb->firmware_options_2 &= cpu_to_le32(
            ~(BIT_3 | BIT_2 | BIT_1 | BIT_0));
        vha->flags.process_response_queue = 0;
        if (ha->zio_mode != QLA_ZIO_DISABLED) {
@@ -6063,7 +6059,7 @@ qla81xx_nvram_config(scsi_qla_host_t *vha)
        /* Bad NVRAM data, set defaults parameters. */
        if (chksum || nv->id[0] != 'I' || nv->id[1] != 'S' || nv->id[2] != 'P'
            || nv->id[3] != ' ' ||
-           nv->nvram_version < __constant_cpu_to_le16(ICB_VERSION)) {
+           nv->nvram_version < cpu_to_le16(ICB_VERSION)) {
                /* Reset NVRAM data. */
                ql_log(ql_log_info, vha, 0x0073,
                    "Inconsistent NVRAM detected: checksum=0x%x id=%c "
@@ -6077,11 +6073,11 @@ qla81xx_nvram_config(scsi_qla_host_t *vha)
                 * Set default initialization control block.
                 */
                memset(nv, 0, ha->nvram_size);
-               nv->nvram_version = __constant_cpu_to_le16(ICB_VERSION);
-               nv->version = __constant_cpu_to_le16(ICB_VERSION);
+               nv->nvram_version = cpu_to_le16(ICB_VERSION);
+               nv->version = cpu_to_le16(ICB_VERSION);
                nv->frame_payload_size = 2048;
-               nv->execution_throttle = __constant_cpu_to_le16(0xFFFF);
-               nv->exchange_count = __constant_cpu_to_le16(0);
+               nv->execution_throttle = cpu_to_le16(0xFFFF);
+               nv->exchange_count = cpu_to_le16(0);
                nv->port_name[0] = 0x21;
                nv->port_name[1] = 0x00 + ha->port_no + 1;
                nv->port_name[2] = 0x00;
@@ -6098,20 +6094,20 @@ qla81xx_nvram_config(scsi_qla_host_t *vha)
                nv->node_name[5] = 0x1c;
                nv->node_name[6] = 0x55;
                nv->node_name[7] = 0x86;
-               nv->login_retry_count = __constant_cpu_to_le16(8);
-               nv->interrupt_delay_timer = __constant_cpu_to_le16(0);
-               nv->login_timeout = __constant_cpu_to_le16(0);
+               nv->login_retry_count = cpu_to_le16(8);
+               nv->interrupt_delay_timer = cpu_to_le16(0);
+               nv->login_timeout = cpu_to_le16(0);
                nv->firmware_options_1 =
-                   __constant_cpu_to_le32(BIT_14|BIT_13|BIT_2|BIT_1);
-               nv->firmware_options_2 = __constant_cpu_to_le32(2 << 4);
-               nv->firmware_options_2 |= __constant_cpu_to_le32(BIT_12);
-               nv->firmware_options_3 = __constant_cpu_to_le32(2 << 13);
-               nv->host_p = __constant_cpu_to_le32(BIT_11|BIT_10);
-               nv->efi_parameters = __constant_cpu_to_le32(0);
+                   cpu_to_le32(BIT_14|BIT_13|BIT_2|BIT_1);
+               nv->firmware_options_2 = cpu_to_le32(2 << 4);
+               nv->firmware_options_2 |= cpu_to_le32(BIT_12);
+               nv->firmware_options_3 = cpu_to_le32(2 << 13);
+               nv->host_p = cpu_to_le32(BIT_11|BIT_10);
+               nv->efi_parameters = cpu_to_le32(0);
                nv->reset_delay = 5;
-               nv->max_luns_per_target = __constant_cpu_to_le16(128);
-               nv->port_down_retry_count = __constant_cpu_to_le16(30);
-               nv->link_down_timeout = __constant_cpu_to_le16(180);
+               nv->max_luns_per_target = cpu_to_le16(128);
+               nv->port_down_retry_count = cpu_to_le16(30);
+               nv->link_down_timeout = cpu_to_le16(180);
                nv->enode_mac[0] = 0x00;
                nv->enode_mac[1] = 0xC0;
                nv->enode_mac[2] = 0xDD;
@@ -6170,13 +6166,13 @@ qla81xx_nvram_config(scsi_qla_host_t *vha)
        qlt_81xx_config_nvram_stage2(vha, icb);
 
        /* Use alternate WWN? */
-       if (nv->host_p & __constant_cpu_to_le32(BIT_15)) {
+       if (nv->host_p & cpu_to_le32(BIT_15)) {
                memcpy(icb->node_name, nv->alternate_node_name, WWN_SIZE);
                memcpy(icb->port_name, nv->alternate_port_name, WWN_SIZE);
        }
 
        /* Prepare nodename */
-       if ((icb->firmware_options_1 & __constant_cpu_to_le32(BIT_14)) == 0) {
+       if ((icb->firmware_options_1 & cpu_to_le32(BIT_14)) == 0) {
                /*
                 * Firmware will apply the following mask if the nodename was
                 * not provided.
@@ -6205,7 +6201,7 @@ qla81xx_nvram_config(scsi_qla_host_t *vha)
        memcpy(vha->node_name, icb->node_name, WWN_SIZE);
        memcpy(vha->port_name, icb->port_name, WWN_SIZE);
 
-       icb->execution_throttle = __constant_cpu_to_le16(0xFFFF);
+       icb->execution_throttle = cpu_to_le16(0xFFFF);
 
        ha->retry_count = le16_to_cpu(nv->login_retry_count);
 
@@ -6213,7 +6209,7 @@ qla81xx_nvram_config(scsi_qla_host_t *vha)
        if (le16_to_cpu(nv->login_timeout) < ql2xlogintimeout)
                nv->login_timeout = cpu_to_le16(ql2xlogintimeout);
        if (le16_to_cpu(nv->login_timeout) < 4)
-               nv->login_timeout = __constant_cpu_to_le16(4);
+               nv->login_timeout = cpu_to_le16(4);
        ha->login_timeout = le16_to_cpu(nv->login_timeout);
        icb->login_timeout = nv->login_timeout;
 
@@ -6259,7 +6255,7 @@ qla81xx_nvram_config(scsi_qla_host_t *vha)
 
        /* if not running MSI-X we need handshaking on interrupts */
        if (!vha->hw->flags.msix_enabled && (IS_QLA83XX(ha) || IS_QLA27XX(ha)))
-               icb->firmware_options_2 |= __constant_cpu_to_le32(BIT_22);
+               icb->firmware_options_2 |= cpu_to_le32(BIT_22);
 
        /* Enable ZIO. */
        if (!vha->flags.init_done) {
@@ -6268,7 +6264,7 @@ qla81xx_nvram_config(scsi_qla_host_t *vha)
                ha->zio_timer = le16_to_cpu(icb->interrupt_delay_timer) ?
                    le16_to_cpu(icb->interrupt_delay_timer): 2;
        }
-       icb->firmware_options_2 &= __constant_cpu_to_le32(
+       icb->firmware_options_2 &= cpu_to_le32(
            ~(BIT_3 | BIT_2 | BIT_1 | BIT_0));
        vha->flags.process_response_queue = 0;
        if (ha->zio_mode != QLA_ZIO_DISABLED) {