Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Nov 2016 12:53:06 +0000 (UTC)
From:      Kashyap D Desai <kadesai@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r309285 - head/sys/dev/mrsas
Message-ID:  <201611291253.uATCr6pJ053301@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kadesai
Date: Tue Nov 29 12:53:05 2016
New Revision: 309285
URL: https://svnweb.freebsd.org/changeset/base/309285

Log:
  Use a variable to indicate Gen3 controllers and remove all PCI ids based
  checks used for gen3 controllers.
  
  Submitted by:   Sumit Saxena <sumit.saxena@broadcom.com>
  Reviewed by:    Kashyap Desai <Kashyap.Desai@broadcom.com>
  MFC after:  3 days
  Sponsored by:   Broadcom Limited/AVAGO Technologies

Modified:
  head/sys/dev/mrsas/mrsas.c
  head/sys/dev/mrsas/mrsas.h
  head/sys/dev/mrsas/mrsas_cam.c
  head/sys/dev/mrsas/mrsas_fp.c

Modified: head/sys/dev/mrsas/mrsas.c
==============================================================================
--- head/sys/dev/mrsas/mrsas.c	Tue Nov 29 12:49:20 2016	(r309284)
+++ head/sys/dev/mrsas/mrsas.c	Tue Nov 29 12:53:05 2016	(r309285)
@@ -832,6 +832,15 @@ mrsas_attach(device_t dev)
 	sc->mrsas_dev = dev;
 	sc->device_id = pci_get_device(dev);
 
+	if ((sc->device_id == MRSAS_INVADER) ||
+	    (sc->device_id == MRSAS_FURY) ||
+	    (sc->device_id == MRSAS_INTRUDER) ||
+	    (sc->device_id == MRSAS_INTRUDER_24) ||
+	    (sc->device_id == MRSAS_CUTLASS_52) ||
+	    (sc->device_id == MRSAS_CUTLASS_53)) {
+		sc->mrsas_gen3_ctrl = 1;
+    }
+
 	mrsas_get_tunables(sc);
 
 	/*
@@ -1632,12 +1641,7 @@ mrsas_complete_cmd(struct mrsas_softc *s
 		 */
 		if (threshold_reply_count >= THRESHOLD_REPLY_COUNT) {
 			if (sc->msix_enable) {
-				if ((sc->device_id == MRSAS_INVADER) ||
-				    (sc->device_id == MRSAS_FURY) ||
-				    (sc->device_id == MRSAS_INTRUDER) ||
-				    (sc->device_id == MRSAS_INTRUDER_24) ||
-				    (sc->device_id == MRSAS_CUTLASS_52) ||
-				    (sc->device_id == MRSAS_CUTLASS_53))
+				if (sc->mrsas_gen3_ctrl)
 					mrsas_write_reg(sc, sc->msix_reg_offset[MSIxIndex / 8],
 					    ((MSIxIndex & 0x7) << 24) |
 					    sc->last_reply_idx[MSIxIndex]);
@@ -1658,12 +1662,7 @@ mrsas_complete_cmd(struct mrsas_softc *s
 
 	/* Clear response interrupt */
 	if (sc->msix_enable) {
-		if ((sc->device_id == MRSAS_INVADER) ||
-		    (sc->device_id == MRSAS_FURY) ||
-		    (sc->device_id == MRSAS_INTRUDER) ||
-		    (sc->device_id == MRSAS_INTRUDER_24) ||
-		    (sc->device_id == MRSAS_CUTLASS_52) ||
-		    (sc->device_id == MRSAS_CUTLASS_53)) {
+			if (sc->mrsas_gen3_ctrl) {
 			mrsas_write_reg(sc, sc->msix_reg_offset[MSIxIndex / 8],
 			    ((MSIxIndex & 0x7) << 24) |
 			    sc->last_reply_idx[MSIxIndex]);
@@ -2461,12 +2460,7 @@ mrsas_ioc_init(struct mrsas_softc *sc)
 	init_frame->flags |= MFI_FRAME_DONT_POST_IN_REPLY_QUEUE;
 
 	/* driver support Extended MSIX */
-	if ((sc->device_id == MRSAS_INVADER) ||
-	    (sc->device_id == MRSAS_FURY) ||
-	    (sc->device_id == MRSAS_INTRUDER) ||
-	    (sc->device_id == MRSAS_INTRUDER_24) ||
-	    (sc->device_id == MRSAS_CUTLASS_52) ||
-	    (sc->device_id == MRSAS_CUTLASS_53)) {
+		if (sc->mrsas_gen3_ctrl) {
 		init_frame->driver_operations.
 		    mfi_capabilities.support_additional_msix = 1;
 	}
@@ -3512,12 +3506,7 @@ mrsas_build_mptmfi_passthru(struct mrsas
 
 	io_req = mpt_cmd->io_request;
 
-	if ((sc->device_id == MRSAS_INVADER) ||
-	    (sc->device_id == MRSAS_FURY) ||
-	    (sc->device_id == MRSAS_INTRUDER) ||
-	    (sc->device_id == MRSAS_INTRUDER_24) ||
-	    (sc->device_id == MRSAS_CUTLASS_52) ||
-	    (sc->device_id == MRSAS_CUTLASS_53)) {
+		if (sc->mrsas_gen3_ctrl) {
 		pMpi25IeeeSgeChain64_t sgl_ptr_end = (pMpi25IeeeSgeChain64_t)&io_req->SGL;
 
 		sgl_ptr_end += sc->max_sge_in_main_msg - 1;

Modified: head/sys/dev/mrsas/mrsas.h
==============================================================================
--- head/sys/dev/mrsas/mrsas.h	Tue Nov 29 12:49:20 2016	(r309284)
+++ head/sys/dev/mrsas/mrsas.h	Tue Nov 29 12:53:05 2016	(r309285)
@@ -2795,6 +2795,7 @@ struct mrsas_softc {
 	LD_LOAD_BALANCE_INFO load_balance_info[MAX_LOGICAL_DRIVES_EXT];
 	LD_SPAN_INFO log_to_span[MAX_LOGICAL_DRIVES_EXT];
 
+	u_int8_t mrsas_gen3_ctrl;
 	u_int8_t secure_jbod_support;
 	u_int8_t use_seqnum_jbod_fp;
 	u_int8_t max256vdSupport;

Modified: head/sys/dev/mrsas/mrsas_cam.c
==============================================================================
--- head/sys/dev/mrsas/mrsas_cam.c	Tue Nov 29 12:49:20 2016	(r309284)
+++ head/sys/dev/mrsas/mrsas_cam.c	Tue Nov 29 12:53:05 2016	(r309285)
@@ -877,12 +877,7 @@ mrsas_setup_io(struct mrsas_softc *sc, s
 		cmd->request_desc->SCSIIO.RequestFlags =
 		    (MPI2_REQ_DESCRIPT_FLAGS_HIGH_PRIORITY <<
 		    MRSAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT);
-		if ((sc->device_id == MRSAS_INVADER) ||
-		    (sc->device_id == MRSAS_FURY) ||
-		    (sc->device_id == MRSAS_INTRUDER) ||
-		    (sc->device_id == MRSAS_INTRUDER_24) ||
-		    (sc->device_id == MRSAS_CUTLASS_52) ||
-		    (sc->device_id == MRSAS_CUTLASS_53)) {
+		if (sc->mrsas_gen3_ctrl) {
 			if (io_request->RaidContext.regLockFlags == REGION_TYPE_UNUSED)
 				cmd->request_desc->SCSIIO.RequestFlags =
 				    (MRSAS_REQ_DESCRIPT_FLAGS_NO_LOCK <<
@@ -911,12 +906,7 @@ mrsas_setup_io(struct mrsas_softc *sc, s
 		cmd->request_desc->SCSIIO.RequestFlags =
 		    (MRSAS_REQ_DESCRIPT_FLAGS_LD_IO <<
 		    MRSAS_REQ_DESCRIPT_FLAGS_TYPE_SHIFT);
-		if ((sc->device_id == MRSAS_INVADER) ||
-		    (sc->device_id == MRSAS_FURY) ||
-		    (sc->device_id == MRSAS_INTRUDER) ||
-		    (sc->device_id == MRSAS_INTRUDER_24) ||
-		    (sc->device_id == MRSAS_CUTLASS_52) ||
-		    (sc->device_id == MRSAS_CUTLASS_53)) {
+		if (sc->mrsas_gen3_ctrl) {
 			if (io_request->RaidContext.regLockFlags == REGION_TYPE_UNUSED)
 				cmd->request_desc->SCSIIO.RequestFlags =
 				    (MRSAS_REQ_DESCRIPT_FLAGS_NO_LOCK <<
@@ -1192,12 +1182,7 @@ mrsas_data_load_cb(void *arg, bus_dma_se
 	io_request = cmd->io_request;
 	sgl_ptr = (pMpi25IeeeSgeChain64_t)&io_request->SGL;
 
-	if ((sc->device_id == MRSAS_INVADER) ||
-	    (sc->device_id == MRSAS_FURY) ||
-	    (sc->device_id == MRSAS_INTRUDER) ||
-	    (sc->device_id == MRSAS_INTRUDER_24) ||
-	    (sc->device_id == MRSAS_CUTLASS_52) ||
-	    (sc->device_id == MRSAS_CUTLASS_53)) {
+	if (sc->mrsas_gen3_ctrl) {
 		pMpi25IeeeSgeChain64_t sgl_ptr_end = sgl_ptr;
 
 		sgl_ptr_end += sc->max_sge_in_main_msg - 1;
@@ -1208,12 +1193,7 @@ mrsas_data_load_cb(void *arg, bus_dma_se
 			sgl_ptr->Address = segs[i].ds_addr;
 			sgl_ptr->Length = segs[i].ds_len;
 			sgl_ptr->Flags = 0;
-			if ((sc->device_id == MRSAS_INVADER) ||
-			    (sc->device_id == MRSAS_FURY) ||
-			    (sc->device_id == MRSAS_INTRUDER) ||
-			    (sc->device_id == MRSAS_INTRUDER_24) ||
-			    (sc->device_id == MRSAS_CUTLASS_52) ||
-			    (sc->device_id == MRSAS_CUTLASS_53)) {
+			if (sc->mrsas_gen3_ctrl) {
 				if (i == nseg - 1)
 					sgl_ptr->Flags = IEEE_SGE_FLAGS_END_OF_LIST;
 			}
@@ -1223,12 +1203,7 @@ mrsas_data_load_cb(void *arg, bus_dma_se
 			    (nseg > sc->max_sge_in_main_msg)) {
 				pMpi25IeeeSgeChain64_t sg_chain;
 
-				if ((sc->device_id == MRSAS_INVADER) ||
-				    (sc->device_id == MRSAS_FURY) ||
-				    (sc->device_id == MRSAS_INTRUDER) ||
-				    (sc->device_id == MRSAS_INTRUDER_24) ||
-				    (sc->device_id == MRSAS_CUTLASS_52) ||
-				    (sc->device_id == MRSAS_CUTLASS_53)) {
+				if (sc->mrsas_gen3_ctrl) {
 					if ((cmd->io_request->IoFlags & MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH)
 					    != MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH)
 						cmd->io_request->ChainOffset = sc->chain_offset_io_request;
@@ -1237,12 +1212,7 @@ mrsas_data_load_cb(void *arg, bus_dma_se
 				} else
 					cmd->io_request->ChainOffset = sc->chain_offset_io_request;
 				sg_chain = sgl_ptr;
-				if ((sc->device_id == MRSAS_INVADER) ||
-				    (sc->device_id == MRSAS_FURY) ||
-				    (sc->device_id == MRSAS_INTRUDER) ||
-				    (sc->device_id == MRSAS_INTRUDER_24) ||
-				    (sc->device_id == MRSAS_CUTLASS_52) ||
-				    (sc->device_id == MRSAS_CUTLASS_53))
+				if (sc->mrsas_gen3_ctrl)
 					sg_chain->Flags = IEEE_SGE_FLAGS_CHAIN_ELEMENT;
 				else
 					sg_chain->Flags = (IEEE_SGE_FLAGS_CHAIN_ELEMENT | MPI2_IEEE_SGE_FLAGS_IOCPLBNTA_ADDR);

Modified: head/sys/dev/mrsas/mrsas_fp.c
==============================================================================
--- head/sys/dev/mrsas/mrsas_fp.c	Tue Nov 29 12:49:20 2016	(r309284)
+++ head/sys/dev/mrsas/mrsas_fp.c	Tue Nov 29 12:53:05 2016	(r309285)
@@ -747,15 +747,6 @@ mr_spanset_get_phy_params(struct mrsas_s
 	u_int64_t *pdBlock = &io_info->pdBlock;
 	u_int16_t *pDevHandle = &io_info->devHandle;
 	u_int32_t logArm, rowMod, armQ, arm;
-	u_int8_t do_invader = 0;
-
-	if ((sc->device_id == MRSAS_INVADER) ||
-	    (sc->device_id == MRSAS_FURY) ||
-	    (sc->device_id == MRSAS_INTRUDER) ||
-	    (sc->device_id == MRSAS_INTRUDER_24) ||
-	    (sc->device_id == MRSAS_CUTLASS_52) ||
-	    (sc->device_id == MRSAS_CUTLASS_53))
-		do_invader = 1;
 
 	/* Get row and span from io_info for Uneven Span IO. */
 	row = io_info->start_row;
@@ -782,7 +773,7 @@ mr_spanset_get_phy_params(struct mrsas_s
 		*pDevHandle = MR_PdDevHandleGet(pd, map);
 	else {
 		*pDevHandle = MR_PD_INVALID;
-		if ((raid->level >= 5) && ((!do_invader) || (do_invader &&
+		if ((raid->level >= 5) && ((!sc->mrsas_gen3_ctrl) || (sc->mrsas_gen3_ctrl &&
 		    raid->regTypeReqOnRead != REGION_TYPE_UNUSED)))
 			pRAID_Context->regLockFlags = REGION_TYPE_EXCLUSIVE;
 		else if (raid->level == 1) {
@@ -965,12 +956,7 @@ MR_BuildRaidContext(struct mrsas_softc *
 			regSize += stripSize;
 	}
 	pRAID_Context->timeoutValue = map->raidMap.fpPdIoTimeoutSec;
-	if ((sc->device_id == MRSAS_INVADER) ||
-	    (sc->device_id == MRSAS_FURY) ||
-	    (sc->device_id == MRSAS_INTRUDER) ||
-	    (sc->device_id == MRSAS_INTRUDER_24) ||
-	    (sc->device_id == MRSAS_CUTLASS_52) ||
-	    (sc->device_id == MRSAS_CUTLASS_53))
+	if (sc->mrsas_gen3_ctrl)
 		pRAID_Context->regLockFlags = (isRead) ? raid->regTypeReqOnRead : raid->regTypeReqOnWrite;
 	else
 		pRAID_Context->regLockFlags = (isRead) ? REGION_TYPE_SHARED_READ : raid->regTypeReqOnWrite;
@@ -1453,15 +1439,6 @@ MR_GetPhyParams(struct mrsas_softc *sc, 
 	u_int64_t *pdBlock = &io_info->pdBlock;
 	u_int16_t *pDevHandle = &io_info->devHandle;
 	u_int32_t rowMod, armQ, arm, logArm;
-	u_int8_t do_invader = 0;
-
-	if ((sc->device_id == MRSAS_INVADER) ||
-	    (sc->device_id == MRSAS_FURY) ||
-	    (sc->device_id == MRSAS_INTRUDER) ||
-	    (sc->device_id == MRSAS_INTRUDER_24) ||
-	    (sc->device_id == MRSAS_CUTLASS_52) ||
-	    (sc->device_id == MRSAS_CUTLASS_53))
-		do_invader = 1;
 
 	row = mega_div64_32(stripRow, raid->rowDataSize);
 
@@ -1501,7 +1478,7 @@ MR_GetPhyParams(struct mrsas_softc *sc, 
 		*pDevHandle = MR_PdDevHandleGet(pd, map);
 	else {
 		*pDevHandle = MR_PD_INVALID;	/* set dev handle as invalid. */
-		if ((raid->level >= 5) && ((!do_invader) || (do_invader &&
+		if ((raid->level >= 5) && ((!sc->mrsas_gen3_ctrl) || (sc->mrsas_gen3_ctrl &&
 		    raid->regTypeReqOnRead != REGION_TYPE_UNUSED)))
 			pRAID_Context->regLockFlags = REGION_TYPE_EXCLUSIVE;
 		else if (raid->level == 1) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201611291253.uATCr6pJ053301>