Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Nov 2016 12:56:53 +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: r309287 - head/sys/dev/mrsas
Message-ID:  <201611291256.uATCurmi053524@repo.freebsd.org>

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

Log:
  Update controller properties(read OCR capability bit) when MR_EVT_CTRL_PROP_CHANGED recieved.
  
  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

Modified: head/sys/dev/mrsas/mrsas.c
==============================================================================
--- head/sys/dev/mrsas/mrsas.c	Tue Nov 29 12:55:01 2016	(r309286)
+++ head/sys/dev/mrsas/mrsas.c	Tue Nov 29 12:56:53 2016	(r309287)
@@ -3250,7 +3250,11 @@ mrsas_get_ctrl_info(struct mrsas_softc *
 	dcmd->sgl.sge32[0].phys_addr = sc->ctlr_info_phys_addr;
 	dcmd->sgl.sge32[0].length = sizeof(struct mrsas_ctrl_info);
 
-	retcode = mrsas_issue_polled(sc, cmd);
+	if (!sc->mask_interrupts)
+		retcode = mrsas_issue_blocked_cmd(sc, cmd);
+	else
+		retcode = mrsas_issue_polled(sc, cmd);
+
 	if (retcode == ETIMEDOUT)
 		goto dcmd_timeout;
 	else
@@ -3261,6 +3265,8 @@ mrsas_get_ctrl_info(struct mrsas_softc *
 
 	sc->use_seqnum_jbod_fp =
 	    sc->ctrl_info->adapterOperations3.useSeqNumJbodFP;
+	sc->disableOnlineCtrlReset =
+	    sc->ctrl_info->properties.OnOffProperties.disableOnlineCtrlReset;
 
 dcmd_timeout:
 	mrsas_free_ctlr_info_cmd(sc);
@@ -3268,6 +3274,9 @@ dcmd_timeout:
 	if (do_ocr)
 		sc->do_timedout_reset = MFI_DCMD_TIMEOUT_OCR;
 
+	if (!sc->mask_interrupts)
+		mrsas_release_mfi_cmd(cmd);
+
 	return (retcode);
 }
 
@@ -4379,7 +4388,6 @@ mrsas_aen_handler(struct mrsas_softc *sc
 				mrsas_bus_scan_sim(sc, sc->sim_1);
 			else
 				goto skip_register_aen;
-			doscan = 0;
 			break;
 		case MR_EVT_PD_REMOVED:
 			fail_aen = mrsas_get_pd_list(sc);
@@ -4387,13 +4395,11 @@ mrsas_aen_handler(struct mrsas_softc *sc
 				mrsas_bus_scan_sim(sc, sc->sim_1);
 			else
 				goto skip_register_aen;
-			doscan = 0;
 			break;
 		case MR_EVT_LD_OFFLINE:
 		case MR_EVT_CFG_CLEARED:
 		case MR_EVT_LD_DELETED:
 			mrsas_bus_scan_sim(sc, sc->sim_0);
-			doscan = 0;
 			break;
 		case MR_EVT_LD_CREATED:
 			fail_aen = mrsas_get_ld_list(sc);
@@ -4401,15 +4407,18 @@ mrsas_aen_handler(struct mrsas_softc *sc
 				mrsas_bus_scan_sim(sc, sc->sim_0);
 			else
 				goto skip_register_aen;
-			doscan = 0;
 			break;
 		case MR_EVT_CTRL_HOST_BUS_SCAN_REQUESTED:
 		case MR_EVT_FOREIGN_CFG_IMPORTED:
 		case MR_EVT_LD_STATE_CHANGE:
 			doscan = 1;
 			break;
+		case MR_EVT_CTRL_PROP_CHANGED:
+			fail_aen = mrsas_get_ctrl_info(sc);
+			if (fail_aen)
+				goto skip_register_aen;
+			break;
 		default:
-			doscan = 0;
 			break;
 		}
 	} else {

Modified: head/sys/dev/mrsas/mrsas.h
==============================================================================
--- head/sys/dev/mrsas/mrsas.h	Tue Nov 29 12:55:01 2016	(r309286)
+++ head/sys/dev/mrsas/mrsas.h	Tue Nov 29 12:56:53 2016	(r309287)
@@ -1449,6 +1449,7 @@ enum MR_PD_QUERY_TYPE {
 #define	MR_EVT_LD_DELETED						0x008b
 #define	MR_EVT_FOREIGN_CFG_IMPORTED				0x00db
 #define	MR_EVT_LD_OFFLINE						0x00fc
+#define	MR_EVT_CTRL_PROP_CHANGED				0x012f
 #define	MR_EVT_CTRL_HOST_BUS_SCAN_REQUESTED		0x0152
 
 enum MR_PD_STATE {



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