Author: jimharris
Date: Mon Mar 17 22:32:54 2014
New Revision: 263276
URL: http://svnweb.freebsd.org/changeset/base/263276

Log:
  Base the max number of SG elements on MAXPHYS.
  
  Sponsored by: Intel
  Discussed with:       scottl, emax
  MFC after:    3 days

Modified:
  head/sys/dev/isci/scil/sati_util.h
  head/sys/dev/isci/scil/sci_controller_constants.h
  head/sys/dev/isci/scil/sci_util.h
  head/sys/dev/isci/scil/scic_sds_request.h

Modified: head/sys/dev/isci/scil/sati_util.h
==============================================================================
--- head/sys/dev/isci/scil/sati_util.h  Mon Mar 17 22:30:54 2014        
(r263275)
+++ head/sys/dev/isci/scil/sati_util.h  Mon Mar 17 22:32:54 2014        
(r263276)
@@ -62,6 +62,8 @@
  *        structure data, fill in sense data, etc.
  */
 
+#include <sys/param.h>
+
 #include <dev/isci/scil/sati_types.h>
 #include <dev/isci/scil/sati_translator_sequence.h>
 
@@ -144,15 +146,6 @@
 #define ATA_MICROCODE_OFFSET_DOWNLOAD        0x03
 #define ATA_MICROCODE_DOWNLOAD_SAVE          0x07
 
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x) : (y))
-#endif
-
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x) : (y))
-#endif
-
-
 void sati_ata_non_data_command(
    void                        * ata_io,
    SATI_TRANSLATOR_SEQUENCE_T  * sequence

Modified: head/sys/dev/isci/scil/sci_controller_constants.h
==============================================================================
--- head/sys/dev/isci/scil/sci_controller_constants.h   Mon Mar 17 22:30:54 
2014        (r263275)
+++ head/sys/dev/isci/scil/sci_controller_constants.h   Mon Mar 17 22:32:54 
2014        (r263276)
@@ -54,6 +54,8 @@
 #ifndef _SCI_CONTROLLER_CONSTANTS_H_
 #define _SCI_CONTROLLER_CONSTANTS_H_
 
+#include <sys/param.h>
+
 /**
  * @file
  *
@@ -148,8 +150,13 @@ extern "C" {
 /**
  * This constant defines the maximum number of Scatter-Gather Elements
  * to be used by any SCI component.
+ *
+ * Note: number of elements must be an even number, since descriptors
+ * posted to hardware always contain pairs of elements (with second
+ * element set to zeroes if not needed).
  */
-#define SCI_MAX_SCATTER_GATHER_ELEMENTS 130
+#define __MAXPHYS_ELEMENTS ((MAXPHYS / PAGE_SIZE) + 1)
+#define SCI_MAX_SCATTER_GATHER_ELEMENTS  ((__MAXPHYS_ELEMENTS + 1) & ~0x1)
 #endif
 
 #ifndef SCI_MIN_SCATTER_GATHER_ELEMENTS

Modified: head/sys/dev/isci/scil/sci_util.h
==============================================================================
--- head/sys/dev/isci/scil/sci_util.h   Mon Mar 17 22:30:54 2014        
(r263275)
+++ head/sys/dev/isci/scil/sci_util.h   Mon Mar 17 22:32:54 2014        
(r263276)
@@ -54,20 +54,14 @@
 #ifndef _SCI_UTIL_H_
 #define _SCI_UTIL_H_
 
+#include <sys/param.h>
+
 #include <dev/isci/scil/sci_types.h>
 
 #ifndef ARRAY_SIZE
 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
 #endif
 
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x) : (y))
-#endif
-
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x) : (y))
-#endif
-
 /**
  * Normal byte swap macro
  */

Modified: head/sys/dev/isci/scil/scic_sds_request.h
==============================================================================
--- head/sys/dev/isci/scil/scic_sds_request.h   Mon Mar 17 22:30:54 2014        
(r263275)
+++ head/sys/dev/isci/scil/scic_sds_request.h   Mon Mar 17 22:32:54 2014        
(r263276)
@@ -65,6 +65,8 @@
 extern "C" {
 #endif // __cplusplus
 
+#include <sys/param.h>
+
 #include <dev/isci/scil/scic_io_request.h>
 
 #include <dev/isci/scil/sci_base_request.h>
@@ -331,7 +333,6 @@ extern SCIC_SDS_IO_REQUEST_STATE_HANDLER
 #define scic_sds_request_get_task_context(request) \
    ((request)->task_context_buffer)
 
-#define CACHE_LINE_SIZE (64)
 #define scic_sds_request_align_task_context_buffer(address) \
    ((SCU_TASK_CONTEXT_T *)( \
        (((POINTER_UINT)(address)) + (CACHE_LINE_SIZE - 1)) \
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to