static inline void ipp_write( uint32_t b, uint32_t r)\r
{\r
__raw_writel(b, drvdata->ipp_base + r);\r
+ dsb();\r
}\r
\r
static inline uint32_t ipp_read( uint32_t r)\r
\r
\r
/* Start the operation */\r
- ipp_write(8, IPP_INT);// \r
- dsb();\r
+ ipp_write(8, IPP_INT); \r
+\r
ipp_write(1, IPP_PROCESS_ST);\r
- \r
+ dmac_clean_range(drvdata->ipp_base,drvdata->ipp_base+0x54);\r
#ifdef IPP_TEST\r
hw_start = ktime_get(); \r
#endif \r
#endif \r
if (wait_ret <= 0)\r
{\r
- printk("%s wait_ret=%d,wait_event_timeout \n",__FUNCTION__,wait_ret);\r
- \r
-#ifdef IPP_TEST\r
- //print all register's value\r
- printk("wait_ret: %d\n", wait_ret);\r
- printk("wq_condition: %d\n", wq_condition);\r
- printk("IPP_CONFIG: %x\n",ipp_read(IPP_CONFIG));\r
- printk("IPP_SRC_IMG_INFO: %x\n",ipp_read(IPP_SRC_IMG_INFO));\r
- printk("IPP_DST_IMG_INFO: %x\n",ipp_read(IPP_DST_IMG_INFO));\r
- printk("IPP_IMG_VIR: %x\n",ipp_read(IPP_IMG_VIR));\r
- printk("IPP_INT: %x\n",ipp_read(IPP_INT));\r
- printk("IPP_SRC0_Y_MST: %x\n",ipp_read(IPP_SRC0_Y_MST));\r
- printk("IPP_SRC0_CBR_MST: %x\n",ipp_read(IPP_SRC0_CBR_MST));\r
- printk("IPP_SRC1_Y_MST: %x\n",ipp_read(IPP_SRC1_Y_MST));\r
- printk("IPP_SRC1_CBR_MST: %x\n",ipp_read(IPP_SRC1_CBR_MST));\r
- printk("IPP_DST0_Y_MST: %x\n",ipp_read(IPP_DST0_Y_MST));\r
- printk("IPP_DST0_CBR_MST: %x\n",ipp_read(IPP_DST0_CBR_MST));\r
- printk("IPP_DST1_Y_MST: %x\n",ipp_read(IPP_DST1_Y_MST));\r
- printk("IPP_DST1_CBR_MST: %x\n",ipp_read(IPP_DST1_CBR_MST));\r
- printk("IPP_PRE_SCL_PARA: %x\n",ipp_read(IPP_PRE_SCL_PARA));\r
- printk("IPP_POST_SCL_PARA: %x\n",ipp_read(IPP_POST_SCL_PARA));\r
- printk("IPP_SWAP_CTRL: %x\n",ipp_read(IPP_SWAP_CTRL));\r
- printk("IPP_PRE_IMG_INFO: %x\n",ipp_read(IPP_PRE_IMG_INFO));\r
- printk("IPP_AXI_ID: %x\n",ipp_read(IPP_AXI_ID));\r
- printk("IPP_SRESET: %x\n",ipp_read(IPP_SRESET));\r
- printk("IPP_PROCESS_ST: %x\n",ipp_read(IPP_PROCESS_ST));\r
- \r
- while(1)\r
+ printk("%s wait_ret=%d,wq_condition =%d,wait_event_timeout! \n",__FUNCTION__,wait_ret,wq_condition);\r
+\r
+ if(wq_condition==0)\r
{\r
- \r
+ //print all register's value\r
+ printk("IPP_CONFIG: %x\n",ipp_read(IPP_CONFIG));\r
+ printk("IPP_SRC_IMG_INFO: %x\n",ipp_read(IPP_SRC_IMG_INFO));\r
+ printk("IPP_DST_IMG_INFO: %x\n",ipp_read(IPP_DST_IMG_INFO));\r
+ printk("IPP_IMG_VIR: %x\n",ipp_read(IPP_IMG_VIR));\r
+ printk("IPP_INT: %x\n",ipp_read(IPP_INT));\r
+ printk("IPP_SRC0_Y_MST: %x\n",ipp_read(IPP_SRC0_Y_MST));\r
+ printk("IPP_SRC0_CBR_MST: %x\n",ipp_read(IPP_SRC0_CBR_MST));\r
+ printk("IPP_SRC1_Y_MST: %x\n",ipp_read(IPP_SRC1_Y_MST));\r
+ printk("IPP_SRC1_CBR_MST: %x\n",ipp_read(IPP_SRC1_CBR_MST));\r
+ printk("IPP_DST0_Y_MST: %x\n",ipp_read(IPP_DST0_Y_MST));\r
+ printk("IPP_DST0_CBR_MST: %x\n",ipp_read(IPP_DST0_CBR_MST));\r
+ printk("IPP_DST1_Y_MST: %x\n",ipp_read(IPP_DST1_Y_MST));\r
+ printk("IPP_DST1_CBR_MST: %x\n",ipp_read(IPP_DST1_CBR_MST));\r
+ printk("IPP_PRE_SCL_PARA: %x\n",ipp_read(IPP_PRE_SCL_PARA));\r
+ printk("IPP_POST_SCL_PARA: %x\n",ipp_read(IPP_POST_SCL_PARA));\r
+ printk("IPP_SWAP_CTRL: %x\n",ipp_read(IPP_SWAP_CTRL));\r
+ printk("IPP_PRE_IMG_INFO: %x\n",ipp_read(IPP_PRE_IMG_INFO));\r
+ printk("IPP_AXI_ID: %x\n",ipp_read(IPP_AXI_ID));\r
+ printk("IPP_SRESET: %x\n",ipp_read(IPP_SRESET));\r
+ printk("IPP_PROCESS_ST: %x\n",ipp_read(IPP_PROCESS_ST));\r
+ \r
+ ipp_soft_reset();\r
+ drvdata->ipp_result = -EAGAIN;\r
}\r
-#endif\r
- \r
- ipp_soft_reset();\r
- drvdata->ipp_result = -EAGAIN;\r
}\r
\r
ipp_power_off(NULL);\r