Lines Matching defs:mpt

83 static int mptsas_ioc_do_get_facts(mptsas_t *mpt, caddr_t memp, int var,
85 static int mptsas_ioc_do_get_facts_reply(mptsas_t *mpt, caddr_t memp, int var,
87 static int mptsas_ioc_do_get_port_facts(mptsas_t *mpt, caddr_t memp, int var,
89 static int mptsas_ioc_do_get_port_facts_reply(mptsas_t *mpt, caddr_t memp,
91 static int mptsas_ioc_do_enable_port(mptsas_t *mpt, caddr_t memp, int var,
93 static int mptsas_ioc_do_enable_port_reply(mptsas_t *mpt, caddr_t memp, int var,
95 static int mptsas_ioc_do_enable_event_notification(mptsas_t *mpt, caddr_t memp,
97 static int mptsas_ioc_do_enable_event_notification_reply(mptsas_t *mpt,
99 static int mptsas_do_ioc_init(mptsas_t *mpt, caddr_t memp, int var,
101 static int mptsas_do_ioc_init_reply(mptsas_t *mpt, caddr_t memp, int var,
105 mptsas_devid_type_string(mptsas_t *mpt)
107 switch (mpt->m_devid) {
145 mptsas_ioc_get_facts(mptsas_t *mpt)
150 if (mptsas_do_dma(mpt, sizeof (MPI2_IOC_FACTS_REQUEST), NULL,
158 if (mptsas_do_dma(mpt, sizeof (MPI2_IOC_FACTS_REPLY), NULL,
167 mptsas_ioc_do_get_facts(mptsas_t *mpt, caddr_t memp, int var,
184 if (mptsas_send_handshake_msg(mpt, memp, numbytes, accessp)) {
192 mptsas_ioc_do_get_facts_reply(mptsas_t *mpt, caddr_t memp, int var,
217 if (mptsas_get_handshake_msg(mpt, memp, numbytes, accessp)) {
222 mptsas_log(mpt, CE_WARN, "mptsas_ioc_do_get_facts_reply: "
229 * store key values from reply to mpt structure
231 mpt->m_fwversion = ddi_get32(accessp, &factsreply->FWVersion.Word);
232 mpt->m_productid = ddi_get16(accessp, &factsreply->ProductID);
240 mptsas_log(mpt, CE_NOTE, "?MPT Firmware version v%s (%s)\n",
241 buf, mptsas_devid_type_string(mpt));
242 (void) ddi_prop_update_string(DDI_DEV_T_NONE, mpt->m_dip,
248 mpt->m_max_requests = ddi_get16(accessp,
250 mpt->m_req_frame_size = ddi_get16(accessp,
259 mpt->m_reply_frame_size = ddi_get8(accessp,
261 numReplyFrames = mpt->m_max_requests + 32;
265 mpt->m_max_replies = numReplyFrames;
268 mpt->m_free_queue_depth = queueSize;
279 queueSize = mpt->m_max_requests + numReplyFrames + 1;
283 mpt->m_post_queue_depth = ddi_get16(accessp,
285 if (queueSize > mpt->m_post_queue_depth) {
286 queueDiff = queueSize - mpt->m_post_queue_depth;
290 mpt->m_max_requests -= queueDiff;
291 mpt->m_max_replies -= queueDiff;
292 mpt->m_free_queue_depth -= queueDiff;
295 mpt->m_post_queue_depth = queueSize;
300 mpt->m_max_chain_depth = ddi_get8(accessp,
302 mpt->m_ioc_capabilities = ddi_get32(accessp,
310 mptsas_log(mpt, CE_NOTE, "?mpt_sas%d SAS 3 Supported\n",
311 mpt->m_instance);
312 mpt->m_MPI25 = TRUE;
314 mptsas_log(mpt, CE_NOTE, "?mpt_sas%d MPI Version 0x%x\n",
315 mpt->m_instance, msgversion);
321 simple_sge_main = MPTSAS_MAX_FRAME_SGES64(mpt) - 1;
322 simple_sge_next = mpt->m_req_frame_size / MPTSAS_SGE_SIZE(mpt) - 1;
324 mpt->m_max_request_frames = (MPTSAS_MAX_DMA_SEGS -
328 mpt->m_max_request_frames++;
337 mpt->m_fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_TRACE].enabled =
341 mpt->m_fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_SNAPSHOT].
345 mpt->m_fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_EXTENDED].
354 mpt->m_event_replay = TRUE;
361 mpt->m_ir_capable = TRUE;
368 mptsas_ioc_get_port_facts(mptsas_t *mpt, int port)
373 if (mptsas_do_dma(mpt, sizeof (MPI2_PORT_FACTS_REQUEST), port,
381 if (mptsas_do_dma(mpt, sizeof (MPI2_PORT_FACTS_REPLY), port,
390 mptsas_ioc_do_get_port_facts(mptsas_t *mpt, caddr_t memp, int var,
405 if (mptsas_send_handshake_msg(mpt, memp, numbytes, accessp)) {
413 mptsas_ioc_do_get_port_facts_reply(mptsas_t *mpt, caddr_t memp, int var,
430 if (mptsas_get_handshake_msg(mpt, memp, numbytes, accessp)) {
435 mptsas_log(mpt, CE_WARN, "mptsas_ioc_do_get_port_facts_reply: "
445 mptsas_ioc_enable_port(mptsas_t *mpt)
450 if (mptsas_do_dma(mpt, sizeof (MPI2_PORT_ENABLE_REQUEST), 0,
458 if (mptsas_do_dma(mpt, sizeof (MPI2_PORT_ENABLE_REPLY), 0,
467 mptsas_ioc_do_enable_port(mptsas_t *mpt, caddr_t memp, int var,
484 if (mptsas_send_handshake_msg(mpt, memp, numbytes, accessp)) {
492 mptsas_ioc_do_enable_port_reply(mptsas_t *mpt, caddr_t memp, int var,
510 if (mptsas_get_handshake_msg(mpt, memp, numbytes, accessp)) {
515 mptsas_log(mpt, CE_WARN, "mptsas_ioc_do_enable_port_reply: "
525 mptsas_ioc_enable_event_notification(mptsas_t *mpt)
527 ASSERT(mutex_owned(&mpt->m_mutex));
532 if (mptsas_do_dma(mpt, sizeof (MPI2_EVENT_NOTIFICATION_REQUEST), NULL,
540 if (mptsas_do_dma(mpt, sizeof (MPI2_EVENT_NOTIFICATION_REPLY), NULL,
549 mptsas_ioc_do_enable_event_notification(mptsas_t *mpt, caddr_t memp, int var,
567 if (mptsas_send_handshake_msg(mpt, memp, numbytes, accessp)) {
575 mptsas_ioc_do_enable_event_notification_reply(mptsas_t *mpt, caddr_t memp,
592 if (mptsas_get_handshake_msg(mpt, memp, numbytes, accessp)) {
597 mptsas_log(mpt, CE_WARN,
608 mptsas_ioc_init(mptsas_t *mpt)
613 if (mptsas_do_dma(mpt, sizeof (MPI2_IOC_INIT_REQUEST), NULL,
621 if (mptsas_do_dma(mpt, sizeof (MPI2_IOC_INIT_REPLY), NULL,
630 mptsas_do_ioc_init(mptsas_t *mpt, caddr_t memp, int var,
649 mpt->m_req_frame_size / 4);
651 mpt->m_post_queue_depth);
653 mpt->m_free_queue_depth);
660 (uint32_t)(mpt->m_req_sense_dma_addr >> 32));
662 (uint32_t)(mpt->m_reply_frame_dma_addr >> 32));
664 (uint32_t)(mpt->m_req_frame_dma_addr >> 32));
666 (uint32_t)mpt->m_req_frame_dma_addr);
668 (uint32_t)(mpt->m_post_queue_dma_addr >> 32));
670 (uint32_t)mpt->m_post_queue_dma_addr);
672 (uint32_t)(mpt->m_free_queue_dma_addr >> 32));
674 (uint32_t)mpt->m_free_queue_dma_addr);
693 if (mptsas_send_handshake_msg(mpt, memp, numbytes, accessp)) {
701 mptsas_do_ioc_init_reply(mptsas_t *mpt, caddr_t memp, int var,
719 if (mptsas_get_handshake_msg(mpt, memp, numbytes, accessp)) {
724 mptsas_log(mpt, CE_WARN, "mptsas_do_ioc_init_reply: "
730 if ((ddi_get32(mpt->m_datap, &mpt->m_reg->Doorbell)) &
732 mptsas_log(mpt, CE_NOTE,
733 "?mpt%d: IOC Operational.\n", mpt->m_instance);