Base the max number of SG elements on MAXPHYS.

Sponsored by:	Intel
Discussed with:	scottl, emax
MFC after:	3 days
This commit is contained in:
Jim Harris 2014-03-17 22:32:54 +00:00
parent 5c300060a8
commit 5d16b89793
4 changed files with 14 additions and 19 deletions

View File

@ -62,6 +62,8 @@
* structure data, fill in sense data, etc. * structure data, fill in sense data, etc.
*/ */
#include <sys/param.h>
#include <dev/isci/scil/sati_types.h> #include <dev/isci/scil/sati_types.h>
#include <dev/isci/scil/sati_translator_sequence.h> #include <dev/isci/scil/sati_translator_sequence.h>
@ -144,15 +146,6 @@
#define ATA_MICROCODE_OFFSET_DOWNLOAD 0x03 #define ATA_MICROCODE_OFFSET_DOWNLOAD 0x03
#define ATA_MICROCODE_DOWNLOAD_SAVE 0x07 #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 sati_ata_non_data_command(
void * ata_io, void * ata_io,
SATI_TRANSLATOR_SEQUENCE_T * sequence SATI_TRANSLATOR_SEQUENCE_T * sequence

View File

@ -54,6 +54,8 @@
#ifndef _SCI_CONTROLLER_CONSTANTS_H_ #ifndef _SCI_CONTROLLER_CONSTANTS_H_
#define _SCI_CONTROLLER_CONSTANTS_H_ #define _SCI_CONTROLLER_CONSTANTS_H_
#include <sys/param.h>
/** /**
* @file * @file
* *
@ -148,8 +150,13 @@ extern "C" {
/** /**
* This constant defines the maximum number of Scatter-Gather Elements * This constant defines the maximum number of Scatter-Gather Elements
* to be used by any SCI component. * 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 #endif
#ifndef SCI_MIN_SCATTER_GATHER_ELEMENTS #ifndef SCI_MIN_SCATTER_GATHER_ELEMENTS

View File

@ -54,20 +54,14 @@
#ifndef _SCI_UTIL_H_ #ifndef _SCI_UTIL_H_
#define _SCI_UTIL_H_ #define _SCI_UTIL_H_
#include <sys/param.h>
#include <dev/isci/scil/sci_types.h> #include <dev/isci/scil/sci_types.h>
#ifndef ARRAY_SIZE #ifndef ARRAY_SIZE
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
#endif #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 * Normal byte swap macro
*/ */

View File

@ -65,6 +65,8 @@
extern "C" { extern "C" {
#endif // __cplusplus #endif // __cplusplus
#include <sys/param.h>
#include <dev/isci/scil/scic_io_request.h> #include <dev/isci/scil/scic_io_request.h>
#include <dev/isci/scil/sci_base_request.h> #include <dev/isci/scil/sci_base_request.h>
@ -331,7 +333,6 @@ extern SCIC_SDS_IO_REQUEST_STATE_HANDLER_T
#define scic_sds_request_get_task_context(request) \ #define scic_sds_request_get_task_context(request) \
((request)->task_context_buffer) ((request)->task_context_buffer)
#define CACHE_LINE_SIZE (64)
#define scic_sds_request_align_task_context_buffer(address) \ #define scic_sds_request_align_task_context_buffer(address) \
((SCU_TASK_CONTEXT_T *)( \ ((SCU_TASK_CONTEXT_T *)( \
(((POINTER_UINT)(address)) + (CACHE_LINE_SIZE - 1)) \ (((POINTER_UINT)(address)) + (CACHE_LINE_SIZE - 1)) \