scsi: qla2xxx: Add devids and conditionals for 28xx
commit 0d6a536cb1fcabb6c3e9c94871c8d0b29bb5813b upstream.
This is an update to the original 28xx adapter enablement. Add a bunch of
conditionals that are applicable for 28xx.
Link: https://lore.kernel.org/r/20220110050218.3958-16-njavali@marvell.com
Fixes: ecc89f25e2
("scsi: qla2xxx: Add Device ID for ISP28XX")
Cc: stable@vger.kernel.org
Signed-off-by: Joe Carnuccio <joe.carnuccio@cavium.com>
Signed-off-by: Nilesh Javali <njavali@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
08d04784cc
commit
96391480ab
@ -527,7 +527,7 @@ qla2x00_sysfs_read_vpd(struct file *filp, struct kobject *kobj,
|
||||
if (!capable(CAP_SYS_ADMIN))
|
||||
return -EINVAL;
|
||||
|
||||
if (IS_NOCACHE_VPD_TYPE(ha))
|
||||
if (!IS_NOCACHE_VPD_TYPE(ha))
|
||||
goto skip;
|
||||
|
||||
faddr = ha->flt_region_vpd << 2;
|
||||
@ -710,7 +710,7 @@ qla2x00_sysfs_write_reset(struct file *filp, struct kobject *kobj,
|
||||
ql_log(ql_log_info, vha, 0x706f,
|
||||
"Issuing MPI reset.\n");
|
||||
|
||||
if (IS_QLA83XX(ha) || IS_QLA27XX(ha) || IS_QLA28XX(ha)) {
|
||||
if (IS_QLA83XX(ha)) {
|
||||
uint32_t idc_control;
|
||||
|
||||
qla83xx_idc_lock(vha, 0);
|
||||
@ -1020,9 +1020,6 @@ qla2x00_free_sysfs_attr(scsi_qla_host_t *vha, bool stop_beacon)
|
||||
continue;
|
||||
if (iter->type == 3 && !(IS_CNA_CAPABLE(ha)))
|
||||
continue;
|
||||
if (iter->type == 0x27 &&
|
||||
(!IS_QLA27XX(ha) || !IS_QLA28XX(ha)))
|
||||
continue;
|
||||
|
||||
sysfs_remove_bin_file(&host->shost_gendev.kobj,
|
||||
iter->attr);
|
||||
|
@ -3241,7 +3241,7 @@ qla2x00_alloc_fw_dump(scsi_qla_host_t *vha)
|
||||
mem_size = (ha->fw_memory_size - 0x11000 + 1) *
|
||||
sizeof(uint16_t);
|
||||
} else if (IS_FWI2_CAPABLE(ha)) {
|
||||
if (IS_QLA83XX(ha) || IS_QLA27XX(ha) || IS_QLA28XX(ha))
|
||||
if (IS_QLA83XX(ha))
|
||||
fixed_size = offsetof(struct qla83xx_fw_dump, ext_mem);
|
||||
else if (IS_QLA81XX(ha))
|
||||
fixed_size = offsetof(struct qla81xx_fw_dump, ext_mem);
|
||||
@ -3253,8 +3253,7 @@ qla2x00_alloc_fw_dump(scsi_qla_host_t *vha)
|
||||
mem_size = (ha->fw_memory_size - 0x100000 + 1) *
|
||||
sizeof(uint32_t);
|
||||
if (ha->mqenable) {
|
||||
if (!IS_QLA83XX(ha) && !IS_QLA27XX(ha) &&
|
||||
!IS_QLA28XX(ha))
|
||||
if (!IS_QLA83XX(ha))
|
||||
mq_size = sizeof(struct qla2xxx_mq_chain);
|
||||
/*
|
||||
* Allocate maximum buffer size for all queues - Q0.
|
||||
@ -3751,8 +3750,7 @@ enable_82xx_npiv:
|
||||
ha->fw_major_version, ha->fw_minor_version,
|
||||
ha->fw_subminor_version);
|
||||
|
||||
if (IS_QLA83XX(ha) || IS_QLA27XX(ha) ||
|
||||
IS_QLA28XX(ha)) {
|
||||
if (IS_QLA83XX(ha)) {
|
||||
ha->flags.fac_supported = 0;
|
||||
rval = QLA_SUCCESS;
|
||||
}
|
||||
|
@ -10,6 +10,12 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/gfp.h>
|
||||
|
||||
#ifdef CONFIG_PPC
|
||||
#define IS_PPCARCH true
|
||||
#else
|
||||
#define IS_PPCARCH false
|
||||
#endif
|
||||
|
||||
static struct mb_cmd_name {
|
||||
uint16_t cmd;
|
||||
const char *str;
|
||||
@ -731,6 +737,9 @@ qla2x00_execute_fw(scsi_qla_host_t *vha, uint32_t risc_addr)
|
||||
vha->min_supported_speed =
|
||||
nv->min_supported_speed;
|
||||
}
|
||||
|
||||
if (IS_PPCARCH)
|
||||
mcp->mb[11] |= BIT_4;
|
||||
}
|
||||
|
||||
if (ha->flags.exlogins_enabled)
|
||||
@ -2897,8 +2906,7 @@ qla2x00_get_resource_cnts(scsi_qla_host_t *vha)
|
||||
ha->orig_fw_iocb_count = mcp->mb[10];
|
||||
if (ha->flags.npiv_supported)
|
||||
ha->max_npiv_vports = mcp->mb[11];
|
||||
if (IS_QLA81XX(ha) || IS_QLA83XX(ha) || IS_QLA27XX(ha) ||
|
||||
IS_QLA28XX(ha))
|
||||
if (IS_QLA81XX(ha) || IS_QLA83XX(ha))
|
||||
ha->fw_max_fcf_count = mcp->mb[12];
|
||||
}
|
||||
|
||||
@ -5391,7 +5399,7 @@ qla2x00_get_data_rate(scsi_qla_host_t *vha)
|
||||
mcp->out_mb = MBX_1|MBX_0;
|
||||
mcp->in_mb = MBX_2|MBX_1|MBX_0;
|
||||
if (IS_QLA83XX(ha) || IS_QLA27XX(ha) || IS_QLA28XX(ha))
|
||||
mcp->in_mb |= MBX_3;
|
||||
mcp->in_mb |= MBX_4|MBX_3;
|
||||
mcp->tov = MBX_TOV_SECONDS;
|
||||
mcp->flags = 0;
|
||||
rval = qla2x00_mailbox_command(vha, mcp);
|
||||
|
@ -3627,8 +3627,7 @@ qla2x00_unmap_iobases(struct qla_hw_data *ha)
|
||||
if (ha->mqiobase)
|
||||
iounmap(ha->mqiobase);
|
||||
|
||||
if ((IS_QLA83XX(ha) || IS_QLA27XX(ha) || IS_QLA28XX(ha)) &&
|
||||
ha->msixbase)
|
||||
if (ha->msixbase)
|
||||
iounmap(ha->msixbase);
|
||||
}
|
||||
}
|
||||
|
@ -843,7 +843,7 @@ qla2xxx_get_flt_info(scsi_qla_host_t *vha, uint32_t flt_addr)
|
||||
ha->flt_region_nvram = start;
|
||||
break;
|
||||
case FLT_REG_IMG_PRI_27XX:
|
||||
if (IS_QLA27XX(ha) && !IS_QLA28XX(ha))
|
||||
if (IS_QLA27XX(ha) || IS_QLA28XX(ha))
|
||||
ha->flt_region_img_status_pri = start;
|
||||
break;
|
||||
case FLT_REG_IMG_SEC_27XX:
|
||||
@ -1355,7 +1355,7 @@ next:
|
||||
flash_data_addr(ha, faddr), cpu_to_le32(*dwptr));
|
||||
if (ret) {
|
||||
ql_dbg(ql_dbg_user, vha, 0x7006,
|
||||
"Failed slopw write %x (%x)\n", faddr, *dwptr);
|
||||
"Failed slow write %x (%x)\n", faddr, *dwptr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -7084,8 +7084,7 @@ qlt_probe_one_stage1(struct scsi_qla_host *base_vha, struct qla_hw_data *ha)
|
||||
if (!QLA_TGT_MODE_ENABLED())
|
||||
return;
|
||||
|
||||
if ((ql2xenablemsix == 0) || IS_QLA83XX(ha) || IS_QLA27XX(ha) ||
|
||||
IS_QLA28XX(ha)) {
|
||||
if (ha->mqenable || IS_QLA83XX(ha) || IS_QLA27XX(ha) || IS_QLA28XX(ha)) {
|
||||
ISP_ATIO_Q_IN(base_vha) = &ha->mqiobase->isp25mq.atio_q_in;
|
||||
ISP_ATIO_Q_OUT(base_vha) = &ha->mqiobase->isp25mq.atio_q_out;
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user