Go to the documentation of this file.
60 #include <linux/types.h>
62 #define DRV_NAME "isci"
63 #define SCI_PCI_BAR_COUNT 2
64 #define SCI_NUM_MSI_X_INT 2
66 #define SCI_SMU_BAR_SIZE (16*1024)
68 #define SCI_SCU_BAR_SIZE (4*1024*1024)
69 #define SCI_IO_SPACE_BAR0 2
70 #define SCI_IO_SPACE_BAR1 3
71 #define ISCI_CAN_QUEUE_VAL 250
72 #define SCIC_CONTROLLER_STOP_TIMEOUT 5000
74 #define SCI_CONTROLLER_INVALID_IO_TAG 0xFFFF
76 #define SCI_MAX_PHYS (4UL)
77 #define SCI_MAX_PORTS SCI_MAX_PHYS
78 #define SCI_MAX_SMP_PHYS (384)
79 #define SCI_MAX_REMOTE_DEVICES (256UL)
80 #define SCI_MAX_IO_REQUESTS (256UL)
81 #define SCI_MAX_SEQ (16)
82 #define SCI_MAX_MSIX_MESSAGES (2)
83 #define SCI_MAX_SCATTER_GATHER_ELEMENTS 130
84 #define SCI_MAX_CONTROLLERS 2
85 #define SCI_MAX_DOMAINS SCI_MAX_PORTS
87 #define SCU_MAX_CRITICAL_NOTIFICATIONS (384)
88 #define SCU_MAX_EVENTS_SHIFT (7)
89 #define SCU_MAX_EVENTS (1 << SCU_MAX_EVENTS_SHIFT)
90 #define SCU_MAX_UNSOLICITED_FRAMES (128)
91 #define SCU_MAX_COMPLETION_QUEUE_SCRATCH (128)
92 #define SCU_MAX_COMPLETION_QUEUE_ENTRIES (SCU_MAX_CRITICAL_NOTIFICATIONS \
94 + SCU_MAX_UNSOLICITED_FRAMES \
95 + SCI_MAX_IO_REQUESTS \
96 + SCU_MAX_COMPLETION_QUEUE_SCRATCH)
97 #define SCU_MAX_COMPLETION_QUEUE_SHIFT (ilog2(SCU_MAX_COMPLETION_QUEUE_ENTRIES))
99 #define SCU_ABSOLUTE_MAX_UNSOLICITED_FRAMES (4096)
100 #define SCU_UNSOLICITED_FRAME_BUFFER_SIZE (1024U)
101 #define SCU_INVALID_FRAME_INDEX (0xFFFF)
103 #define SCU_IO_REQUEST_MAX_SGE_SIZE (0x00FFFFFF)
104 #define SCU_IO_REQUEST_MAX_TRANSFER_LENGTH (0x00FFFFFF)
106 static inline void check_sizes(
void)
468 static inline void sci_swab32_cpy(
void *_dest,
void *_src,
ssize_t word_cnt)
472 while (--word_cnt >= 0)
473 dest[word_cnt] =
swab32(src[word_cnt]);
501 void sci_init_timer(
struct sci_timer *
tmr,
void (*
fn)(
unsigned long))
509 static inline void sci_mod_timer(
struct sci_timer *tmr,
unsigned long msec)
515 static inline void sci_del_timer(
struct sci_timer *tmr)