return -EINVAL;\r
}\r
\r
+ //check src_vir_w\r
+ if(unlikely(req->src_vir_w < req->src0.w)){\r
+ ERR("invalid src_vir_w\n");\r
+ return -EINVAL;\r
+ }\r
+\r
+ //check dst_vir_w\r
+ if(unlikely(req->dst_vir_w < req->dst0.w)){\r
+ ERR("invalid dst_vir_w\n");\r
+ return -EINVAL;\r
+ }\r
+\r
//check src address\r
if (unlikely(req->src0.YrgbMst== 0) )\r
{\r
\r
drvdata->ipp_result = -1;\r
\r
- //When ipp_blit_async is called in kernel space req->complete should NOt be NULL, otherwise req->complete should be NULL\r
+ //When ipp_blit_async is called in kernel space req->complete should NOT be NULL, otherwise req->complete should be NULL\r
if(req->complete)\r
{\r
drvdata->ipp_irq_callback = req->complete;\r
}\r
else\r
{\r
- printk("invalid pre_scale operation! pre_scale_w should not be more than 8!\n");\r
+ printk("invalid pre_scale operation! Down scaling ratio should not be more than 16!\n");\r
goto error_scale;\r
}\r
}\r
}\r
else\r
{\r
- printk("invalid pre_scale operation! pre_scale_h should not be more than 8!\n");\r
+ printk("invalid pre_scale operation! Down scaling ratio should not be more than 16!\n");\r
goto error_scale;\r
}\r
}\r
\r
error_status:\r
error_scale:\r
+ ret = -EINVAL;\r
ipp_soft_reset();\r
ipp_power_off(NULL);\r
erorr_input:\r
error_noerror:\r
drvdata->ipp_result = ret;\r
+ //printk("ipp_blit done\n");\r
return ret;\r
}\r
\r
*/\r
\r
/*6.call IPP driver in the kernel space and the user space at the same time*/\r
- \r
+ ipp_req.src_vir_w = 280;\r
+ ipp_req.dst_vir_w = 800;\r
do\r
{\r
ret = ipp_blit_sync(&ipp_req);\r
\r
printk("error! ret =%d\n",ret);\r
\r
+ ipp_req.src_vir_w = 480;\r
+ ipp_req.dst_vir_w = 600;\r
+\r
+ ipp_blit_sync(&ipp_req);\r
/*7.suspand and resume*/\r
/*\r
//do\r