Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ea5b6382 authored by Andrew Vasquez's avatar Andrew Vasquez Committed by James Bottomley
Browse files

[SCSI] qla2xxx: Convert IS_QLA*() defines to bit-operations.

parent 93f56089
Loading
Loading
Loading
Loading
+39 −76
Original line number Diff line number Diff line
@@ -31,82 +31,6 @@
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_transport_fc.h>

#if defined(CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE)
#if defined(CONFIG_SCSI_QLA21XX) || defined(CONFIG_SCSI_QLA21XX_MODULE)
#define IS_QLA2100(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2100)
#else
#define IS_QLA2100(ha)	0
#endif

#if defined(CONFIG_SCSI_QLA22XX) || defined(CONFIG_SCSI_QLA22XX_MODULE)
#define IS_QLA2200(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2200)
#else
#define IS_QLA2200(ha)	0
#endif

#if defined(CONFIG_SCSI_QLA2300) || defined(CONFIG_SCSI_QLA2300_MODULE)
#define IS_QLA2300(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2300)
#define IS_QLA2312(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2312)
#else
#define IS_QLA2300(ha)	0
#define IS_QLA2312(ha)	0
#endif

#if defined(CONFIG_SCSI_QLA2322) || defined(CONFIG_SCSI_QLA2322_MODULE)
#define IS_QLA2322(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2322)
#else
#define IS_QLA2322(ha)	0
#endif

#if defined(CONFIG_SCSI_QLA6312) || defined(CONFIG_SCSI_QLA6312_MODULE)
#define IS_QLA6312(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP6312)
#define IS_QLA6322(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP6322)
#else
#define IS_QLA6312(ha)	0
#define IS_QLA6322(ha)	0
#endif

#if defined(CONFIG_SCSI_QLA24XX) || defined(CONFIG_SCSI_QLA24XX_MODULE)
#define IS_QLA2422(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2422)
#define IS_QLA2432(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2432)
#else
#define IS_QLA2422(ha)	0
#define IS_QLA2432(ha)	0
#endif

#if defined(CONFIG_SCSI_QLA25XX) || defined(CONFIG_SCSI_QLA25XX_MODULE)
#define IS_QLA2512(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2512)
#define IS_QLA2522(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2522)
#else
#define IS_QLA2512(ha)	0
#define IS_QLA2522(ha)	0
#endif

#else	/* !defined(CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE) */

#define IS_QLA2100(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2100)
#define IS_QLA2200(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2200)
#define IS_QLA2300(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2300)
#define IS_QLA2312(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2312)
#define IS_QLA2322(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2322)
#define IS_QLA6312(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP6312)
#define IS_QLA6322(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP6322)
#define IS_QLA2422(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2422)
#define IS_QLA2432(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2432)
#define IS_QLA2512(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2512)
#define IS_QLA2522(ha)	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2522)
#endif

#define IS_QLA23XX(ha)	(IS_QLA2300(ha) || IS_QLA2312(ha) || IS_QLA2322(ha) || \
    			 IS_QLA6312(ha) || IS_QLA6322(ha))
#define IS_QLA24XX(ha)	(IS_QLA2422(ha) || IS_QLA2432(ha))
#define IS_QLA25XX(ha)	(IS_QLA2512(ha) || IS_QLA2522(ha))

/*
 * Only non-ISP2[12]00 have extended addressing support in the firmware.
 */
#define HAS_EXTENDED_IDS(ha)	(!IS_QLA2100(ha) && !IS_QLA2200(ha))

/*
 * We have MAILBOX_REGISTER_COUNT sized arrays in a few places,
 * but that's fine as we don't look at the last 24 ones for
@@ -2300,6 +2224,45 @@ typedef struct scsi_qla_host {
#define	SWITCH_FOUND			BIT_3
#define	DFLG_NO_CABLE			BIT_4

	uint32_t	device_type;
#define DT_ISP2100			BIT_0
#define DT_ISP2200			BIT_1
#define DT_ISP2300			BIT_2
#define DT_ISP2312			BIT_3
#define DT_ISP2322			BIT_4
#define DT_ISP6312			BIT_5
#define DT_ISP6322			BIT_6
#define DT_ISP2422			BIT_7
#define DT_ISP2432			BIT_8
#define DT_ISP2512			BIT_9
#define DT_ISP2522			BIT_10
#define DT_ISP_LAST			(DT_ISP2522 << 1)

#define DT_OEM_001			BIT_29
#define DT_ISP2200A			BIT_30
#define DT_EXTENDED_IDS			BIT_31

#define DT_MASK(ha)	((ha)->device_type & (DT_ISP_LAST - 1))
#define IS_QLA2100(ha)	(DT_MASK(ha) & DT_ISP2100)
#define IS_QLA2200(ha)	(DT_MASK(ha) & DT_ISP2200)
#define IS_QLA2300(ha)	(DT_MASK(ha) & DT_ISP2300)
#define IS_QLA2312(ha)	(DT_MASK(ha) & DT_ISP2312)
#define IS_QLA2322(ha)	(DT_MASK(ha) & DT_ISP2322)
#define IS_QLA6312(ha)	(DT_MASK(ha) & DT_ISP6312)
#define IS_QLA6322(ha)	(DT_MASK(ha) & DT_ISP6322)
#define IS_QLA2422(ha)	(DT_MASK(ha) & DT_ISP2422)
#define IS_QLA2432(ha)	(DT_MASK(ha) & DT_ISP2432)
#define IS_QLA2512(ha)	(DT_MASK(ha) & DT_ISP2512)
#define IS_QLA2522(ha)	(DT_MASK(ha) & DT_ISP2522)

#define IS_QLA23XX(ha)	(IS_QLA2300(ha) || IS_QLA2312(ha) || IS_QLA2322(ha) || \
    			 IS_QLA6312(ha) || IS_QLA6322(ha))
#define IS_QLA24XX(ha)	(IS_QLA2422(ha) || IS_QLA2432(ha))
#define IS_QLA25XX(ha)	(IS_QLA2512(ha) || IS_QLA2522(ha))

#define IS_OEM_001(ha)		((ha)->device_type & DT_OEM_001)
#define HAS_EXTENDED_IDS(ha)	((ha)->device_type & DT_EXTENDED_IDS)

	/* SRB cache. */
#define SRB_MIN_REQ	128
	mempool_t	*srb_mempool;
+1 −0
Original line number Diff line number Diff line
@@ -727,6 +727,7 @@ qla2x00_chip_diag(scsi_qla_host_t *ha)
		DEBUG3(printk("scsi(%ld): Found QLA2200A chip.\n",
		    ha->host_no));

		ha->device_type |= DT_ISP2200A;
		ha->fw_transfer_size = 128;
	}

+49 −0
Original line number Diff line number Diff line
@@ -1146,6 +1146,52 @@ qla2x00_config_dma_addressing(scsi_qla_host_t *ha)
	pci_set_consistent_dma_mask(ha->pdev, DMA_32BIT_MASK);
}

static inline void
qla2x00_set_isp_flags(scsi_qla_host_t *ha)
{
	ha->device_type = DT_EXTENDED_IDS;
	switch (ha->pdev->device) {
	case PCI_DEVICE_ID_QLOGIC_ISP2100:
		ha->device_type |= DT_ISP2100;
		ha->device_type &= ~DT_EXTENDED_IDS;
		break;
	case PCI_DEVICE_ID_QLOGIC_ISP2200:
		ha->device_type |= DT_ISP2200;
		ha->device_type &= ~DT_EXTENDED_IDS;
		break;
	case PCI_DEVICE_ID_QLOGIC_ISP2300:
		ha->device_type |= DT_ISP2300;
		break;
	case PCI_DEVICE_ID_QLOGIC_ISP2312:
		ha->device_type |= DT_ISP2312;
		break;
	case PCI_DEVICE_ID_QLOGIC_ISP2322:
		ha->device_type |= DT_ISP2322;
		if (ha->pdev->subsystem_vendor == 0x1028 &&
		    ha->pdev->subsystem_device == 0x0170)
			ha->device_type |= DT_OEM_001;
		break;
	case PCI_DEVICE_ID_QLOGIC_ISP6312:
		ha->device_type |= DT_ISP6312;
		break;
	case PCI_DEVICE_ID_QLOGIC_ISP6322:
		ha->device_type |= DT_ISP6322;
		break;
	case PCI_DEVICE_ID_QLOGIC_ISP2422:
		ha->device_type |= DT_ISP2422;
		break;
	case PCI_DEVICE_ID_QLOGIC_ISP2432:
		ha->device_type |= DT_ISP2432;
		break;
	case PCI_DEVICE_ID_QLOGIC_ISP2512:
		ha->device_type |= DT_ISP2512;
		break;
	case PCI_DEVICE_ID_QLOGIC_ISP2522:
		ha->device_type |= DT_ISP2522;
		break;
	}
}

static int
qla2x00_iospace_config(scsi_qla_host_t *ha)
{
@@ -1307,6 +1353,9 @@ int qla2x00_probe_one(struct pci_dev *pdev, struct qla_board_info *brd_info)
	ha->brd_info = brd_info;
	sprintf(ha->host_str, "%s_%ld", ha->brd_info->drv_name, ha->host_no);

	/* Set ISP-type information. */
	qla2x00_set_isp_flags(ha);

	/* Configure PCI I/O space */
	ret = qla2x00_iospace_config(ha);
	if (ret)
+0 −5
Original line number Diff line number Diff line
@@ -1191,11 +1191,6 @@ qla2x00_poll_flash(scsi_qla_host_t *ha, uint32_t addr, uint8_t poll_data,
	return status;
}

#define IS_OEM_001(ha) \
	((ha)->pdev->device == PCI_DEVICE_ID_QLOGIC_ISP2322 && \
	 (ha)->pdev->subsystem_vendor == 0x1028 && \
	 (ha)->pdev->subsystem_device == 0x0170)

/**
 * qla2x00_program_flash_address() - Programs a flash address
 * @ha: HA context