提交 6ab80c26 编写于 作者: M Mark A. Allyn 提交者: Greg Kroah-Hartman

staging: sep: Add interfaces for the new functions

[This is picked out of the differences between the upstream driver and
 the staging driver. I'm resolving the differences as a series of updates -AC]
Signed-off-by: NAlan Cox <alan@linux.intel.com>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 aca58ec8
......@@ -3067,9 +3067,13 @@ static long sep_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
switch (cmd) {
case SEP_IOCSENDSEPCOMMAND:
dev_dbg(&sep->pdev->dev,
"[PID%d] SEP_IOCSENDSEPCOMMAND start\n",
current->pid);
if (1 == test_bit(SEP_LEGACY_SENDMSG_DONE_OFFSET,
&call_status->status)) {
dev_dbg(&sep->pdev->dev, "[PID%d] send msg already done\n",
dev_warn(&sep->pdev->dev,
"[PID%d] send msg already done\n",
current->pid);
error = -EPROTO;
goto end_function;
......@@ -3079,37 +3083,71 @@ static long sep_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
if (!error)
set_bit(SEP_LEGACY_SENDMSG_DONE_OFFSET,
&call_status->status);
dev_dbg(&sep->pdev->dev, "[PID%d] SEP_IOCSENDSEPCOMMAND end\n",
dev_dbg(&sep->pdev->dev,
"[PID%d] SEP_IOCSENDSEPCOMMAND end\n",
current->pid);
break;
case SEP_IOCENDTRANSACTION:
dev_dbg(&sep->pdev->dev,
"[PID%d] SEP_IOCENDTRANSACTION start\n",
current->pid);
error = sep_end_transaction_handler(sep, dma_ctx, call_status,
my_queue_elem);
dev_dbg(&sep->pdev->dev, "[PID%d] SEP_IOCENDTRANSACTION end\n",
my_queue_elem);
dev_dbg(&sep->pdev->dev,
"[PID%d] SEP_IOCENDTRANSACTION end\n",
current->pid);
break;
case SEP_IOCPREPAREDCB:
dev_dbg(&sep->pdev->dev,
"[PID%d] SEP_IOCPREPAREDCB start\n",
current->pid);
case SEP_IOCPREPAREDCB_SECURE_DMA:
dev_dbg(&sep->pdev->dev,
"[PID%d] SEP_IOCPREPAREDCB_SECURE_DMA start\n",
current->pid);
if (1 == test_bit(SEP_LEGACY_SENDMSG_DONE_OFFSET,
&call_status->status)) {
dev_dbg(&sep->pdev->dev,
"[PID%d] dcb preparation needed before send msg\n",
dev_warn(&sep->pdev->dev,
"[PID%d] dcb prep needed before send msg\n",
current->pid);
error = -EPROTO;
goto end_function;
}
if (!arg) {
dev_dbg(&sep->pdev->dev,
"[PID%d] dcb prep null arg\n", current->pid);
error = -EINVAL;
dev_warn(&sep->pdev->dev,
"[PID%d] dcb null arg\n", current->pid);
error = EINVAL;
goto end_function;
}
error = sep_prepare_dcb_handler(sep, arg, false, dma_ctx);
dev_dbg(&sep->pdev->dev, "[PID%d] SEP_IOCPREPAREDCB end\n",
if (cmd == SEP_IOCPREPAREDCB) {
/* No secure dma */
dev_dbg(&sep->pdev->dev,
"[PID%d] SEP_IOCPREPAREDCB (no secure_dma)\n",
current->pid);
error = sep_prepare_dcb_handler(sep, arg, false,
dma_ctx);
} else {
/* Secure dma */
dev_dbg(&sep->pdev->dev,
"[PID%d] SEP_IOC_POC (with secure_dma)\n",
current->pid);
error = sep_prepare_dcb_handler(sep, arg, true,
dma_ctx);
}
dev_dbg(&sep->pdev->dev, "[PID%d] dcb's end\n",
current->pid);
break;
case SEP_IOCFREEDCB:
dev_dbg(&sep->pdev->dev, "[PID%d] SEP_IOCFREEDCB start\n",
current->pid);
case SEP_IOCFREEDCB_SECURE_DMA:
dev_dbg(&sep->pdev->dev,
"[PID%d] SEP_IOCFREEDCB_SECURE_DMA start\n",
current->pid);
error = sep_free_dcb_handler(sep, dma_ctx);
dev_dbg(&sep->pdev->dev, "[PID%d] SEP_IOCFREEDCB end\n",
current->pid);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册