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);
626 MPT_ADAPTER *iocp = NULL;
637 * pointer (iocp)
640 if ((mpt_verify_adapter(iocnumX, &iocp) < 0) || (iocp == NULL))
643 if (!iocp->active) {
655 return mptctl_getiocinfo(iocp, arg, _IOC_SIZE(cmd));
657 return mptctl_gettargetinfo(iocp, arg);
659 return mptctl_readtest(iocp, arg);
661 return mptctl_eventquery(iocp, arg);
663 return mptctl_eventenable(iocp, arg);
665 return mptctl_eventreport(iocp, arg);
667 return mptctl_replace_fw(iocp, arg);
673 if ((ret = mptctl_syscall_down(iocp, nonblock)) != 0)
677 ret = mptctl_fw_download(iocp, arg);
679 ret = mptctl_mpt_command(iocp, arg);
681 ret = mptctl_do_reset(iocp, arg);
683 ret = mptctl_hp_hostinfo(iocp, arg, _IOC_SIZE(cmd));
685 ret = mptctl_hp_targetinfo(iocp, arg);
689 mutex_unlock(&iocp->ioctl_cmds.mutex);
704 static int mptctl_do_reset(MPT_ADAPTER *iocp, unsigned long arg)
716 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "mptctl_do_reset called.\n",
717 iocp->name));
719 if (mpt_HardResetHandler(iocp, CAN_SLEEP) != 0) {
721 iocp->name, __FILE__, __LINE__);
746 mptctl_fw_download(MPT_ADAPTER *iocp, unsigned long arg)
758 return mptctl_do_fw_download(iocp, kfwdl.bufp, kfwdl.fwlen);
776 mptctl_do_fw_download(MPT_ADAPTER *iocp, char __user *ufwbuf, size_t fwlen)
801 if ((mf = mpt_get_msg_frame(mptctl_id, iocp)) == NULL)
804 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT
805 "mptctl_do_fwdl called. mptctl_id = %xh.\n", iocp->name, mptctl_id));
806 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "DbG: kfwdl.bufp = %p\n",
807 iocp->name, ufwbuf));
808 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "DbG: kfwdl.fwlen = %d\n",
809 iocp->name, (int)fwlen));
823 if (iocp->facts.MsgVersion >= MPI_VERSION_01_05)
858 &numfrags, &buflist, &sgl_dma, iocp)) == NULL)
872 maxfrags = (iocp->req_sz - sizeof(MPIHeader_t) -
874 / iocp->SGE_size;
880 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "DbG: sgl buffer = %p, sgfrags = %d\n",
881 iocp->name, sgl, numfrags));
902 iocp->add_sge(sgOut, sgIn->FlagsLength, sgIn->Address);
907 iocp->name, __FILE__, __LINE__, n, ufwbuf);
914 sgOut += iocp->SGE_size;
917 DBG_DUMP_FW_DOWNLOAD(iocp, (u32 *)mf, numfrags);
923 SET_MGMT_MSG_CONTEXT(iocp->ioctl_cmds.msg_context, dlmsg->MsgContext);
924 INITIALIZE_MGMT_STATUS(iocp->ioctl_cmds.status)
925 mpt_put_msg_frame(mptctl_id, iocp, mf);
929 timeleft = wait_for_completion_timeout(&iocp->ioctl_cmds.done, HZ*60);
930 if (!(iocp->ioctl_cmds.status & MPT_MGMT_STATUS_COMMAND_GOOD)) {
932 printk(MYIOC_s_WARN_FMT "%s: failed\n", iocp->name, __func__);
933 if (iocp->ioctl_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET) {
934 mpt_free_msg_frame(iocp, mf);
940 iocp->name, mpt_GetIocState(iocp, 0));
941 mptctl_timeout_expired(iocp, mf);
947 if (!(iocp->ioctl_cmds.status & MPT_MGMT_STATUS_RF_VALID)) {
948 printk(MYIOC_s_WARN_FMT "%s: failed\n", iocp->name, __func__);
949 mpt_free_msg_frame(iocp, mf);
955 kfree_sgl(sgl, sgl_dma, buflist, iocp);
957 ReplyMsg = (pFWDownloadReply_t)iocp->ioctl_cmds.reply;
960 printk(MYIOC_s_INFO_FMT "F/W update successful!\n", iocp->name);
964 iocp->name);
966 iocp->name);
969 printk(MYIOC_s_WARN_FMT "IOC_BUSY!\n", iocp->name);
970 printk(MYIOC_s_WARN_FMT "(try again later?)\n", iocp->name);
974 iocp->name, iocstat);
975 printk(MYIOC_s_WARN_FMT "(bad VooDoo)\n", iocp->name);
982 CLEAR_MGMT_STATUS(iocp->ioctl_cmds.status);
983 SET_MGMT_MSG_CONTEXT(iocp->ioctl_cmds.msg_context, 0);
984 kfree_sgl(sgl, sgl_dma, buflist, iocp);
2719 MPT_ADAPTER *iocp = NULL;
2730 if (((iocnum = mpt_verify_adapter(iocnumX, &iocp)) < 0) ||
2731 (iocp == NULL)) {
2737 if ((ret = mptctl_syscall_down(iocp, nonblock)) != 0)
2740 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "compat_mptfwxfer_ioctl() called\n",
2741 iocp->name));
2746 ret = mptctl_do_fw_download(iocp, kfw.bufp, kfw.fwlen);
2748 mutex_unlock(&iocp->ioctl_cmds.mutex);
2760 MPT_ADAPTER *iocp = NULL;
2770 if (((iocnum = mpt_verify_adapter(iocnumX, &iocp)) < 0) ||
2771 (iocp == NULL)) {
2777 if ((ret = mptctl_syscall_down(iocp, nonblock)) != 0)
2780 dctlprintk(iocp, printk(MYIOC_s_DEBUG_FMT "compat_mpt_command() called\n",
2781 iocp->name));
2800 ret = mptctl_do_mpt_command (iocp, karg, &uarg->MF);
2802 mutex_unlock(&iocp->ioctl_cmds.mutex);