Lines Matching defs:iocp

103 static int mptctl_fw_download(MPT_ADAPTER *iocp, unsigned long arg);
104 static int mptctl_getiocinfo(MPT_ADAPTER *iocp, unsigned long arg, unsigned int cmd);
105 static int mptctl_gettargetinfo(MPT_ADAPTER *iocp, unsigned long arg);
106 static int mptctl_readtest(MPT_ADAPTER *iocp, unsigned long arg);
107 static int mptctl_mpt_command(MPT_ADAPTER *iocp, unsigned long arg);
108 static int mptctl_eventquery(MPT_ADAPTER *iocp, unsigned long arg);
109 static int mptctl_eventenable(MPT_ADAPTER *iocp, unsigned long arg);
110 static int mptctl_eventreport(MPT_ADAPTER *iocp, unsigned long arg);
111 static int mptctl_replace_fw(MPT_ADAPTER *iocp, unsigned long arg);
113 static int mptctl_do_reset(MPT_ADAPTER *iocp, unsigned long arg);
114 static int mptctl_hp_hostinfo(MPT_ADAPTER *iocp, unsigned long arg, unsigned int cmd);
115 static int mptctl_hp_targetinfo(MPT_ADAPTER *iocp, unsigned long arg);
126 static int mptctl_do_mpt_command(MPT_ADAPTER *iocp, struct mpt_ioctl_command karg, void __user *mfPtr);
127 static int mptctl_do_fw_download(MPT_ADAPTER *iocp, char __user *ufwbuf, size_t fwlen);
629 MPT_ADAPTER *iocp = NULL;
640 * pointer (iocp)
643 if (((iocnum = mpt_verify_adapter(iocnumX, &iocp)) < 0) ||
644 (iocp == NULL))
647 if (!iocp->active) {
659 return mptctl_getiocinfo(iocp, arg, _IOC_SIZE(cmd));
661 return mptctl_gettargetinfo(iocp, arg);
663 return mptctl_readtest(iocp, arg);
665 return mptctl_eventquery(iocp, arg);
667 return mptctl_eventenable(iocp, arg);
669 return mptctl_eventreport(iocp, arg);
671 return mptctl_replace_fw(iocp, arg);
677 if ((ret = mptctl_syscall_down(iocp, nonblock)) != 0)
681 ret = mptctl_fw_download(iocp, arg);
683 ret = mptctl_mpt_command(iocp, arg);
685 ret = mptctl_do_reset(iocp, arg);
687 ret = mptctl_hp_hostinfo(iocp, arg, _IOC_SIZE(cmd));
689 ret = mptctl_hp_targetinfo(iocp, arg);
693 mutex_unlock(&iocp->ioctl_cmds.mutex);
708 static int mptctl_do_reset(MPT_ADAPTER *iocp, unsigned long arg)
720 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "mptctl_do_reset called.\n",
721 iocp->name));
723 if (mpt_HardResetHandler(iocp, CAN_SLEEP) != 0) {
725 iocp->name, __FILE__, __LINE__);
750 mptctl_fw_download(MPT_ADAPTER *iocp, unsigned long arg)
762 return mptctl_do_fw_download(iocp, kfwdl.bufp, kfwdl.fwlen);
780 mptctl_do_fw_download(MPT_ADAPTER *iocp, char __user *ufwbuf, size_t fwlen)
805 if ((mf = mpt_get_msg_frame(mptctl_id, iocp)) == NULL)
808 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT
809 "mptctl_do_fwdl called. mptctl_id = %xh.\n", iocp->name, mptctl_id));
810 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "DbG: kfwdl.bufp = %p\n",
811 iocp->name, ufwbuf));
812 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "DbG: kfwdl.fwlen = %d\n",
813 iocp->name, (int)fwlen));
827 if (iocp->facts.MsgVersion >= MPI_VERSION_01_05)
862 &numfrags, &buflist, &sgl_dma, iocp)) == NULL)
876 maxfrags = (iocp->req_sz - sizeof(MPIHeader_t) -
878 / iocp->SGE_size;
884 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "DbG: sgl buffer = %p, sgfrags = %d\n",
885 iocp->name, sgl, numfrags));
906 iocp->add_sge(sgOut, sgIn->FlagsLength, sgIn->Address);
911 iocp->name, __FILE__, __LINE__, n, ufwbuf);
918 sgOut += iocp->SGE_size;
921 DBG_DUMP_FW_DOWNLOAD(iocp, (u32 *)mf, numfrags);
927 SET_MGMT_MSG_CONTEXT(iocp->ioctl_cmds.msg_context, dlmsg->MsgContext);
928 INITIALIZE_MGMT_STATUS(iocp->ioctl_cmds.status)
929 mpt_put_msg_frame(mptctl_id, iocp, mf);
933 timeleft = wait_for_completion_timeout(&iocp->ioctl_cmds.done, HZ*60);
934 if (!(iocp->ioctl_cmds.status & MPT_MGMT_STATUS_COMMAND_GOOD)) {
936 printk(MYIOC_s_WARN_FMT "%s: failed\n", iocp->name, __func__);
937 if (iocp->ioctl_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET) {
938 mpt_free_msg_frame(iocp, mf);
944 iocp->name, mpt_GetIocState(iocp, 0));
945 mptctl_timeout_expired(iocp, mf);
951 if (!(iocp->ioctl_cmds.status & MPT_MGMT_STATUS_RF_VALID)) {
952 printk(MYIOC_s_WARN_FMT "%s: failed\n", iocp->name, __func__);
953 mpt_free_msg_frame(iocp, mf);
959 kfree_sgl(sgl, sgl_dma, buflist, iocp);
961 ReplyMsg = (pFWDownloadReply_t)iocp->ioctl_cmds.reply;
964 printk(MYIOC_s_INFO_FMT "F/W update successful!\n", iocp->name);
968 iocp->name);
970 iocp->name);
973 printk(MYIOC_s_WARN_FMT "IOC_BUSY!\n", iocp->name);
974 printk(MYIOC_s_WARN_FMT "(try again later?)\n", iocp->name);
978 iocp->name, iocstat);
979 printk(MYIOC_s_WARN_FMT "(bad VooDoo)\n", iocp->name);
986 CLEAR_MGMT_STATUS(iocp->ioctl_cmds.status);
987 SET_MGMT_MSG_CONTEXT(iocp->ioctl_cmds.msg_context, 0);
988 kfree_sgl(sgl, sgl_dma, buflist, iocp);
2716 MPT_ADAPTER *iocp = NULL;
2727 if (((iocnum = mpt_verify_adapter(iocnumX, &iocp)) < 0) ||
2728 (iocp == NULL)) {
2734 if ((ret = mptctl_syscall_down(iocp, nonblock)) != 0)
2737 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "compat_mptfwxfer_ioctl() called\n",
2738 iocp->name));
2743 ret = mptctl_do_fw_download(iocp, kfw.bufp, kfw.fwlen);
2745 mutex_unlock(&iocp->ioctl_cmds.mutex);
2757 MPT_ADAPTER *iocp = NULL;
2767 if (((iocnum = mpt_verify_adapter(iocnumX, &iocp)) < 0) ||
2768 (iocp == NULL)) {
2774 if ((ret = mptctl_syscall_down(iocp, nonblock)) != 0)
2777 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "compat_mpt_command() called\n",
2778 iocp->name));
2797 ret = mptctl_do_mpt_command (iocp, karg, &uarg->MF);
2799 mutex_unlock(&iocp->ioctl_cmds.mutex);