\r
ret = ipp_check_param(req);\r
if(ret == -EINVAL)\r
- {\r
+ { \r
+ printk("IPP invalid input!\n");\r
goto erorr_input;\r
}\r
\r
}\r
else//no pre_scale\r
{\r
+ ipp_write(ipp_read(IPP_CONFIG)&(~PRE_SCALE), IPP_CONFIG); //disable pre_scale\r
ipp_write(0,IPP_PRE_SCL_PARA);\r
ipp_write((req->src0.h<<16)|req->src0.w, IPP_PRE_IMG_INFO);\r
}\r
ERR("only support YUV format!\n");\r
}\r
}\r
+ else\r
+ {\r
+ ipp_write(ipp_read(IPP_CONFIG)&(~DEINTERLACE_ENABLE), IPP_CONFIG); //disable deinterlace\r
+ }\r
\r
/*Configure other*/\r
ipp_write((req->dst_vir_w<<16)|req->src_vir_w, IPP_IMG_VIR);\r
\r
- if((req->src0.w%4) !=0)\r
+ //store clip mode always set to 1 now\r
ipp_write(ipp_read(IPP_CONFIG)|(1<<26), IPP_CONFIG);//store clip mode\r
-\r
+ \r
/* Start the operation */\r
ipp_write(8, IPP_INT);//\r
\r
\r
ipp_req.dst0.YrgbMst = dst_addr;\r
ipp_req.dst0.CbrMst = dst_addr + size;\r
- ipp_req.dst0.w = 800;\r
- ipp_req.dst0.h = 480;\r
+ ipp_req.dst0.w = 240;\r
+ ipp_req.dst0.h = 160;\r
\r
ipp_req.src_vir_w = 480;\r
- ipp_req.dst_vir_w = 800;\r
+ ipp_req.dst_vir_w = 240;\r
ipp_req.timeout = 100;\r
ipp_req.flag = IPP_ROT_0;\r
\r
ipp_req.deinterlace_para2 = 0;\r
\r
ipp_req.complete = ipp_test_complete;\r
+\r
+ /*0 test whether IPP_CONFIG is set correctly*/\r
+ ipp_blit_sync(&ipp_req);\r
+ ipp_req.dst0.w = 480;\r
+ ipp_req.dst0.h = 320;\r
+ ipp_req.dst_vir_w = 480;\r
+ ipp_blit_sync(&ipp_req);\r
\r
/*1 test ipp_blit_sync*/\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
ipp_req.dst_vir_w = 600;\r
\r
ipp_blit_sync(&ipp_req);\r
+ */\r
+ \r
/*7.suspand and resume*/\r
/*\r
//do\r
\r
#ifdef IPP_TEST\r
INIT_DELAYED_WORK(&d_work, ipp_test_work_handler);\r
- schedule_delayed_work(&d_work, msecs_to_jiffies(35000));\r
+ schedule_delayed_work(&d_work, msecs_to_jiffies(15000));\r
#endif\r
\r
return 0;\r