Lines Matching defs:ioc

129 		struct buflist **blp, dma_addr_t *sglbuf_dma, MPT_ADAPTER *ioc);
131 struct buflist *buflist, MPT_ADAPTER *ioc);
136 static int mptctl_ioc_reset(MPT_ADAPTER *ioc, int reset_phase);
141 static int mptctl_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply);
170 * @ioc: Pointer to MPT adapter
179 mptctl_syscall_down(MPT_ADAPTER *ioc, int nonblock)
184 if (!mutex_trylock(&ioc->ioctl_cmds.mutex))
187 if (mutex_lock_interruptible(&ioc->ioctl_cmds.mutex))
201 mptctl_reply(MPT_ADAPTER *ioc, MPT_FRAME_HDR *req, MPT_FRAME_HDR *reply)
210 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "completing mpi function "
211 "(0x%02X), req=%p, reply=%p\n", ioc->name, req->u.hdr.Function,
218 if (ioc->ioctl_cmds.msg_context != req->u.hdr.MsgContext)
221 ioc->ioctl_cmds.status |= MPT_MGMT_STATUS_COMMAND_GOOD;
226 ioc->ioctl_cmds.status |= MPT_MGMT_STATUS_RF_VALID;
227 sz = min(ioc->reply_sz, 4*reply->u.reply.MsgLength);
228 memcpy(ioc->ioctl_cmds.reply, reply, sz);
231 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
232 "iocstatus (0x%04X), loginfo (0x%08X)\n", ioc->name,
241 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
243 "tag = (0x%04x), transfer_count (0x%08x)\n", ioc->name,
254 sense_data = ((u8 *)ioc->sense_buf_pool +
256 memcpy(ioc->ioctl_cmds.sense, sense_data, sz);
257 ioc->ioctl_cmds.status |= MPT_MGMT_STATUS_SENSE_VALID;
264 if (ioc->ioctl_cmds.status & MPT_MGMT_STATUS_PENDING) {
266 mpt_clear_taskmgmt_in_progress_flag(ioc);
267 ioc->ioctl_cmds.status &= ~MPT_MGMT_STATUS_PENDING;
268 complete(&ioc->ioctl_cmds.done);
269 if (ioc->bus_type == SAS)
270 ioc->schedule_target_reset(ioc);
272 ioc->ioctl_cmds.status &= ~MPT_MGMT_STATUS_PENDING;
273 complete(&ioc->ioctl_cmds.done);
286 mptctl_taskmgmt_reply(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr)
291 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
293 ioc->name, mf, mr));
295 ioc->taskmgmt_cmds.status |= MPT_MGMT_STATUS_COMMAND_GOOD;
300 ioc->taskmgmt_cmds.status |= MPT_MGMT_STATUS_RF_VALID;
301 memcpy(ioc->taskmgmt_cmds.reply, mr,
304 if (ioc->taskmgmt_cmds.status & MPT_MGMT_STATUS_PENDING) {
305 mpt_clear_taskmgmt_in_progress_flag(ioc);
306 ioc->taskmgmt_cmds.status &= ~MPT_MGMT_STATUS_PENDING;
307 complete(&ioc->taskmgmt_cmds.done);
308 if (ioc->bus_type == SAS)
309 ioc->schedule_target_reset(ioc);
316 mptctl_do_taskmgmt(MPT_ADAPTER *ioc, u8 tm_type, u8 bus_id, u8 target_id)
327 mutex_lock(&ioc->taskmgmt_cmds.mutex);
328 if (mpt_set_taskmgmt_in_progress_flag(ioc) != 0) {
329 mutex_unlock(&ioc->taskmgmt_cmds.mutex);
335 mf = mpt_get_msg_frame(mptctl_taskmgmt_id, ioc);
337 dtmprintk(ioc,
339 ioc->name));
340 mpt_clear_taskmgmt_in_progress_flag(ioc);
345 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "TaskMgmt request (mf=%p)\n",
346 ioc->name, mf));
353 (ioc->bus_type == FC))
367 switch (ioc->bus_type) {
380 dtmprintk(ioc,
382 ioc->name, tm_type, timeout));
384 INITIALIZE_MGMT_STATUS(ioc->taskmgmt_cmds.status)
385 if ((ioc->facts.IOCCapabilities & MPI_IOCFACTS_CAPABILITY_HIGH_PRI_Q) &&
386 (ioc->facts.MsgVersion >= MPI_VERSION_01_05))
387 mpt_put_msg_frame_hi_pri(mptctl_taskmgmt_id, ioc, mf);
389 retval = mpt_send_handshake_request(mptctl_taskmgmt_id, ioc,
392 dfailprintk(ioc,
395 " (ioc %p, mf %p, rc=%d) \n", ioc->name,
396 ioc, mf, retval));
397 mpt_free_msg_frame(ioc, mf);
398 mpt_clear_taskmgmt_in_progress_flag(ioc);
404 ii = wait_for_completion_timeout(&ioc->taskmgmt_cmds.done, timeout*HZ);
406 if (!(ioc->taskmgmt_cmds.status & MPT_MGMT_STATUS_COMMAND_GOOD)) {
407 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
408 "TaskMgmt failed\n", ioc->name));
409 mpt_free_msg_frame(ioc, mf);
410 mpt_clear_taskmgmt_in_progress_flag(ioc);
411 if (ioc->taskmgmt_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET)
418 if (!(ioc->taskmgmt_cmds.status & MPT_MGMT_STATUS_RF_VALID)) {
419 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
420 "TaskMgmt failed\n", ioc->name));
425 pScsiTmReply = (SCSITaskMgmtReply_t *) ioc->taskmgmt_cmds.reply;
426 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
429 "term_cmnds=%d\n", ioc->name, pScsiTmReply->Bus,
443 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
444 "TaskMgmt failed\n", ioc->name));
449 mutex_unlock(&ioc->taskmgmt_cmds.mutex);
450 CLEAR_MGMT_STATUS(ioc->taskmgmt_cmds.status)
461 mptctl_timeout_expired(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf)
468 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT ": %s\n",
469 ioc->name, __func__));
472 mpt_halt_firmware(ioc);
474 spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
475 if (ioc->ioc_reset_in_progress) {
476 spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
477 CLEAR_MGMT_PENDING_STATUS(ioc->ioctl_cmds.status)
478 mpt_free_msg_frame(ioc, mf);
481 spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
484 CLEAR_MGMT_PENDING_STATUS(ioc->ioctl_cmds.status)
486 if (ioc->bus_type == SAS) {
488 ret_val = mptctl_do_taskmgmt(ioc,
492 ret_val = mptctl_do_taskmgmt(ioc,
500 ret_val = mptctl_do_taskmgmt(ioc,
507 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Calling Reset! \n",
508 ioc->name));
509 mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
510 mpt_free_msg_frame(ioc, mf);
522 mptctl_ioc_reset(MPT_ADAPTER *ioc, int reset_phase)
526 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
527 "%s: MPT_IOC_SETUP_RESET\n", ioc->name, __func__));
530 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
531 "%s: MPT_IOC_PRE_RESET\n", ioc->name, __func__));
534 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
535 "%s: MPT_IOC_POST_RESET\n", ioc->name, __func__));
536 if (ioc->ioctl_cmds.status & MPT_MGMT_STATUS_PENDING) {
537 ioc->ioctl_cmds.status |= MPT_MGMT_STATUS_DID_IOCRESET;
538 complete(&ioc->ioctl_cmds.done);
551 mptctl_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply)
557 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "%s() called\n",
558 ioc->name, __func__));
567 ioc->aen_event_read_flag=1;
568 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Raised SIGIO to application\n",
569 ioc->name));
570 devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT
571 "Raised SIGIO to application\n", ioc->name));
580 if(ioc->aen_event_read_flag)
586 if (ioc->events && (ioc->eventTypes & ( 1 << event))) {
587 ioc->aen_event_read_flag=1;
588 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
589 "Raised SIGIO to application\n", ioc->name));
590 devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT
591 "Raised SIGIO to application\n", ioc->name));
600 MPT_ADAPTER *ioc;
604 list_for_each_entry(ioc, &ioc_list, list)
605 ioc->aen_event_read_flag=0;
996 * ioc - pointer to the mptadapter
1005 struct buflist **blp, dma_addr_t *sglbuf_dma, MPT_ADAPTER *ioc)
1042 sglbuf = dma_alloc_coherent(&ioc->pcidev->dev, MAX_SGL_BYTES,
1060 sg_spill = ((ioc->req_sz - sge_offset)/ioc->SGE_size) - 1;
1064 buflist[buflist_ent].kptr = dma_alloc_coherent(&ioc->pcidev->dev,
1071 "not enough memory! :-(\n", ioc->name);
1073 ioc->name, numfrags);
1082 dma_addr = dma_map_single(&ioc->pcidev->dev,
1099 "-SG: No can do - " "Chain required! :-(\n", ioc->name);
1100 printk(MYIOC_s_WARN_FMT "(freeing %d frags)\n", ioc->name, numfrags);
1108 "too many SG frags! :-(\n", ioc->name);
1110 ioc->name, numfrags);
1121 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "-SG: kbuf_alloc_2_sgl() - "
1122 "%d SG frags generated!\n", ioc->name, numfrags));
1124 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "-SG: kbuf_alloc_2_sgl() - "
1125 "last (big) alloc_sz=%d\n", ioc->name, alloc_sz));
1143 dma_free_coherent(&ioc->pcidev->dev, len, kptr,
1146 dma_free_coherent(&ioc->pcidev->dev, MAX_SGL_BYTES, sglbuf,
1158 kfree_sgl(MptSge_t *sgl, dma_addr_t sgl_dma, struct buflist *buflist, MPT_ADAPTER *ioc)
1184 dma_unmap_single(&ioc->pcidev->dev, dma_addr, len,
1186 dma_free_coherent(&ioc->pcidev->dev, len, kptr,
1204 dma_unmap_single(&ioc->pcidev->dev, dma_addr, len, dir);
1205 dma_free_coherent(&ioc->pcidev->dev, len, kptr, dma_addr);
1209 dma_free_coherent(&ioc->pcidev->dev, MAX_SGL_BYTES, sgl, sgl_dma);
1211 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "-SG: Free'd 1 SGL buf + %d kbufs!\n",
1212 ioc->name, n));
1226 mptctl_getiocinfo (MPT_ADAPTER *ioc, unsigned long arg, unsigned int data_size)
1262 ioc->name, __FILE__, __LINE__);
1267 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_getiocinfo called.\n",
1268 ioc->name));
1273 if (ioc->bus_type == SAS)
1275 else if (ioc->bus_type == FC)
1287 pdev = (struct pci_dev *) ioc->pcidev;
1312 if (ioc->sh) {
1313 shost_for_each_device(sdev, ioc->sh) {
1326 karg->FWVersion = ioc->facts.FWVersion.Word;
1327 karg->BIOSVersion = ioc->biosVersion;
1335 karg->hostId = ioc->pfacts[port].PortSCSIID;
1343 ioc->name, __FILE__, __LINE__, uarg);
1363 mptctl_gettargetinfo (MPT_ADAPTER *ioc, unsigned long arg)
1383 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_gettargetinfo called.\n",
1384 ioc->name));
1390 ioc->name, __FILE__, __LINE__);
1411 ioc->name, __FILE__, __LINE__);
1418 if (ioc->sh){
1419 shost_for_each_device(sdev, ioc->sh) {
1444 ioc->name, __FILE__, __LINE__, uarg);
1454 ioc->name, __FILE__, __LINE__, pdata);
1473 mptctl_readtest (MPT_ADAPTER *ioc, unsigned long arg)
1485 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_readtest called.\n",
1486 ioc->name));
1492 karg.chip_type = ioc->mfcnt;
1494 karg.chip_type = ioc->pcidev->device;
1496 strscpy_pad(karg.name, ioc->name, sizeof(karg.name));
1497 strscpy_pad(karg.product, ioc->prod_name, sizeof(karg.product));
1504 ioc->name, __FILE__, __LINE__, uarg);
1523 mptctl_eventquery (MPT_ADAPTER *ioc, unsigned long arg)
1535 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_eventquery called.\n",
1536 ioc->name));
1538 karg.eventTypes = ioc->eventTypes;
1545 ioc->name, __FILE__, __LINE__, uarg);
1553 mptctl_eventenable (MPT_ADAPTER *ioc, unsigned long arg)
1565 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_eventenable called.\n",
1566 ioc->name));
1567 if (ioc->events == NULL) {
1571 ioc->events = kzalloc(sz, GFP_KERNEL);
1572 if (!ioc->events) {
1575 ioc->name);
1578 ioc->alloc_total += sz;
1580 ioc->eventContext = 0;
1585 ioc->eventTypes = karg.eventTypes;
1592 mptctl_eventreport (MPT_ADAPTER *ioc, unsigned long arg)
1605 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_eventreport called.\n",
1606 ioc->name));
1617 if ((max < 1) || !ioc->events)
1621 ioc->aen_event_read_flag=0;
1626 if (copy_to_user(uarg->eventData, ioc->events, numBytes)) {
1629 ioc->name, __FILE__, __LINE__, ioc->events);
1638 mptctl_replace_fw (MPT_ADAPTER *ioc, unsigned long arg)
1651 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_replace_fw called.\n",
1652 ioc->name));
1655 if (ioc->cached_fw == NULL)
1658 mpt_free_fw_memory(ioc);
1664 mpt_alloc_fw_memory(ioc, newFwSize);
1665 if (ioc->cached_fw == NULL)
1670 if (copy_from_user(ioc->cached_fw, uarg->newImage, newFwSize)) {
1673 "@ %p\n", ioc->name, __FILE__, __LINE__, uarg);
1674 mpt_free_fw_memory(ioc);
1680 ioc->facts.FWImageSize = newFwSize;
1697 mptctl_mpt_command (MPT_ADAPTER *ioc, unsigned long arg)
1711 rc = mptctl_do_mpt_command (ioc, karg, &uarg->MF);
1729 mptctl_do_mpt_command (MPT_ADAPTER *ioc, struct mpt_ioctl_command karg, void __user *mfPtr)
1754 spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
1755 if (ioc->ioc_reset_in_progress) {
1756 spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
1761 spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
1769 karg.dataSgeOffset > ioc->req_sz / 4)
1776 sz += ioc->SGE_size;
1778 sz += ioc->SGE_size;
1780 if (sz > ioc->req_sz) {
1783 ioc->name, __FILE__, __LINE__, sz, ioc->req_sz);
1789 if ((mf = mpt_get_msg_frame(mptctl_id, ioc)) == NULL)
1803 ioc->name, __FILE__, __LINE__, mfPtr);
1814 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "sending mpi function (0x%02X), req=%p\n",
1815 ioc->name, hdr->Function, mf));
1827 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "\ttype=0x%02x ext_type=0x%02x "
1828 "number=0x%02x action=0x%02x\n", ioc->name,
1847 if (ioc->sh) {
1854 id = (ioc->devices_per_bus == 0) ? 256 : ioc->devices_per_bus;
1858 ioc->name, __FILE__, __LINE__);
1863 if (pScsiReq->Bus >= ioc->number_of_buses) {
1866 ioc->name, __FILE__, __LINE__);
1872 pScsiReq->MsgFlags |= mpt_msg_flags(ioc);
1887 cpu_to_le32(ioc->sense_buf_low_dma
1890 shost_for_each_device(sdev, ioc->sh) {
1921 ioc->name, __FILE__, __LINE__);
1937 if (!ioc->sh) {
1940 ioc->name, __FILE__, __LINE__);
1952 if (ioc->sh) {
1959 pScsiReq->MsgFlags |= mpt_msg_flags(ioc);
1974 cpu_to_le32(ioc->sense_buf_low_dma
1997 ioc->name, __FILE__, __LINE__);
2007 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
2010 ioc->name, pScsiTm->TaskType, le32_to_cpu
2025 high_addr = cpu_to_le32((u32)((u64)ioc->req_frames_dma >> 32));
2026 sense_high= cpu_to_le32((u32)((u64)ioc->sense_buf_pool_dma >> 32));
2032 if ((pInit->Flags != 0) || (pInit->MaxDevices != ioc->facts.MaxDevices) ||
2033 (pInit->MaxBuses != ioc->facts.MaxBuses) ||
2034 (pInit->ReplyFrameSize != cpu_to_le16(ioc->reply_sz)) ||
2039 ioc->name, __FILE__, __LINE__);
2072 ioc->name, __FILE__, __LINE__, hdr->Function);
2105 bufOut.kptr = dma_alloc_coherent(&ioc->pcidev->dev,
2116 ioc->add_sge(psge, flagsLength, dma_addr_out);
2117 psge += ioc->SGE_size;
2128 ioc->name, __FILE__, __LINE__,karg.dataOutBufPtr);
2140 bufIn.kptr = dma_alloc_coherent(&ioc->pcidev->dev,
2151 ioc->add_sge(psge, flagsLength, dma_addr_in);
2157 ioc->add_sge(psge, flagsLength, (dma_addr_t) -1);
2160 SET_MGMT_MSG_CONTEXT(ioc->ioctl_cmds.msg_context, hdr->MsgContext);
2161 INITIALIZE_MGMT_STATUS(ioc->ioctl_cmds.status)
2164 mutex_lock(&ioc->taskmgmt_cmds.mutex);
2165 if (mpt_set_taskmgmt_in_progress_flag(ioc) != 0) {
2166 mutex_unlock(&ioc->taskmgmt_cmds.mutex);
2170 DBG_DUMP_TM_REQUEST_FRAME(ioc, (u32 *)mf);
2172 if ((ioc->facts.IOCCapabilities & MPI_IOCFACTS_CAPABILITY_HIGH_PRI_Q) &&
2173 (ioc->facts.MsgVersion >= MPI_VERSION_01_05))
2174 mpt_put_msg_frame_hi_pri(mptctl_id, ioc, mf);
2176 rc =mpt_send_handshake_request(mptctl_id, ioc,
2179 dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
2180 "send_handshake FAILED! (ioc %p, mf %p)\n",
2181 ioc->name, ioc, mf));
2182 mpt_clear_taskmgmt_in_progress_flag(ioc);
2184 mutex_unlock(&ioc->taskmgmt_cmds.mutex);
2190 mpt_put_msg_frame(mptctl_id, ioc, mf);
2195 timeleft = wait_for_completion_timeout(&ioc->ioctl_cmds.done,
2197 if (!(ioc->ioctl_cmds.status & MPT_MGMT_STATUS_COMMAND_GOOD)) {
2199 dfailprintk(ioc, printk(MYIOC_s_ERR_FMT "%s: TIMED OUT!\n",
2200 ioc->name, __func__));
2201 if (ioc->ioctl_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET) {
2203 mutex_unlock(&ioc->taskmgmt_cmds.mutex);
2210 ioc->name, mpt_GetIocState(ioc, 0), function);
2212 mutex_unlock(&ioc->taskmgmt_cmds.mutex);
2213 mptctl_timeout_expired(ioc, mf);
2221 mutex_unlock(&ioc->taskmgmt_cmds.mutex);
2229 if (ioc->ioctl_cmds.status & MPT_MGMT_STATUS_RF_VALID) {
2230 if (karg.maxReplyBytes < ioc->reply_sz) {
2232 4*ioc->ioctl_cmds.reply[2]);
2234 sz = min(ioc->reply_sz, 4*ioc->ioctl_cmds.reply[2]);
2238 ioc->ioctl_cmds.reply, sz)){
2242 ioc->name, __FILE__, __LINE__, karg.replyFrameBufPtr);
2251 if (ioc->ioctl_cmds.status & MPT_MGMT_STATUS_SENSE_VALID) {
2255 ioc->ioctl_cmds.sense, sz)) {
2258 ioc->name, __FILE__, __LINE__,
2269 if ((ioc->ioctl_cmds.status & MPT_MGMT_STATUS_COMMAND_GOOD) &&
2276 ioc->name, __FILE__, __LINE__,
2284 CLEAR_MGMT_STATUS(ioc->ioctl_cmds.status)
2285 SET_MGMT_MSG_CONTEXT(ioc->ioctl_cmds.msg_context, 0);
2290 dma_free_coherent(&ioc->pcidev->dev, bufOut.len,
2295 dma_free_coherent(&ioc->pcidev->dev, bufIn.len,
2303 mpt_free_msg_frame(ioc, mf);
2320 mptctl_hp_hostinfo(MPT_ADAPTER *ioc, unsigned long arg, unsigned int data_size)
2351 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT ": mptctl_hp_hostinfo called.\n",
2352 ioc->name));
2357 pdev = (struct pci_dev *) ioc->pcidev;
2369 if (ioc->sh != NULL)
2370 karg.host_no = ioc->sh->host_no;
2377 ioc->facts.FWVersion.Struct.Major,
2378 ioc->facts.FWVersion.Struct.Minor,
2379 ioc->facts.FWVersion.Struct.Unit,
2380 ioc->facts.FWVersion.Struct.Dev);
2396 if (mpt_config(ioc, &cfg) == 0) {
2401 pbuf = dma_alloc_coherent(&ioc->pcidev->dev,
2406 if (mpt_config(ioc, &cfg) == 0) {
2414 dma_free_coherent(&ioc->pcidev->dev,
2421 rc = mpt_GetIocState(ioc, 1);
2440 if ((ioc->bus_type == SAS) || (ioc->bus_type == FC))
2448 if (ioc->sh != NULL) {
2449 MPT_SCSI_HOST *hd = shost_priv(ioc->sh);
2452 karg.hard_resets = ioc->hard_resets;
2453 karg.soft_resets = ioc->soft_resets;
2454 karg.timeouts = ioc->timeouts;
2461 if ((mf = mpt_get_msg_frame(mptctl_id, ioc)) == NULL) {
2462 dfailprintk(ioc, printk(MYIOC_s_WARN_FMT
2463 "%s, no msg frames!!\n", ioc->name, __func__));
2481 pbuf = dma_alloc_coherent(&ioc->pcidev->dev, 4, &buf_dma, GFP_KERNEL);
2484 ioc->add_sge((char *)&IstwiRWRequest->SGL,
2487 SET_MGMT_MSG_CONTEXT(ioc->ioctl_cmds.msg_context,
2489 INITIALIZE_MGMT_STATUS(ioc->ioctl_cmds.status)
2490 mpt_put_msg_frame(mptctl_id, ioc, mf);
2493 timeleft = wait_for_completion_timeout(&ioc->ioctl_cmds.done,
2495 if (!(ioc->ioctl_cmds.status & MPT_MGMT_STATUS_COMMAND_GOOD)) {
2496 printk(MYIOC_s_WARN_FMT "%s: failed\n", ioc->name, __func__);
2497 if (ioc->ioctl_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET) {
2498 mpt_free_msg_frame(ioc, mf);
2504 ioc->name, mpt_GetIocState(ioc, 0));
2505 mptctl_timeout_expired(ioc, mf);
2520 if (ioc->ioctl_cmds.status & MPT_MGMT_STATUS_RF_VALID)
2524 CLEAR_MGMT_STATUS(ioc->ioctl_cmds.status)
2525 SET_MGMT_MSG_CONTEXT(ioc->ioctl_cmds.msg_context, 0);
2528 dma_free_coherent(&ioc->pcidev->dev, 4, pbuf, buf_dma);
2535 ioc->name, __FILE__, __LINE__, uarg);
2555 mptctl_hp_targetinfo(MPT_ADAPTER *ioc, unsigned long arg)
2577 dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_hp_targetinfo called.\n",
2578 ioc->name));
2582 if ((ioc->bus_type == SAS) || (ioc->bus_type == FC))
2585 if ((ioc->spi_data.sdp0length == 0) || (ioc->sh == NULL))
2588 if (ioc->sh->host_no != karg.hdr.host)
2593 data_sz = ioc->spi_data.sdp0length * 4;
2594 pg0_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz, &page_dma,
2597 hdr.PageVersion = ioc->spi_data.sdp0version;
2610 if ((rc = mpt_config(ioc, &cfg)) == 0) {
2633 dma_free_coherent(&ioc->pcidev->dev, data_sz, (u8 *)pg0_alloc,
2656 if ((mpt_config(ioc, &cfg) == 0) && (cfg.cfghdr.hdr->PageLength > 0)) {
2660 pg3_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
2665 if ((rc = mpt_config(ioc, &cfg)) == 0) {
2670 dma_free_coherent(&ioc->pcidev->dev, data_sz,
2674 hd = shost_priv(ioc->sh);
2683 ioc->name, __FILE__, __LINE__, uarg);
2731 printk(KERN_DEBUG MYNAM "::compat_mptfwxfer_ioctl @%d - ioc%d not found!\n",
2771 printk(KERN_DEBUG MYNAM "::compat_mpt_command @%d - ioc%d not found!\n",
2853 MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
2855 mutex_init(&ioc->ioctl_cmds.mutex);
2856 init_completion(&ioc->ioctl_cmds.done);