\r
static DECLARE_WAIT_QUEUE_HEAD(wq);\r
static int wq_condition = 0;\r
+//wait_queue_head_t dma_memcpy_wait;\r
\r
static struct rk29_dma_client rk29_dma_memcpy_client = {\r
.name = "rk29-dma-memcpy",\r
{\r
wq_condition = 1;\r
wake_up_interruptible(&wq);\r
+ //wake_up_interruptible(&dma_memcpy_wait);\r
}\r
\r
//int slecount = 0;\r
struct Dma_MemToMem *DmaMemInfo = (struct Dma_MemToMem *)argv;\r
\r
\r
- dma_flag = rk29_dma_request(DMACH_DMAC0_MEMTOMEM, &rk29_dma_memcpy_client, NULL); \r
- dma_flag = DMACH_DMAC0_MEMTOMEM;\r
-\r
- rt = rk29_dma_devconfig(dma_flag, RK29_DMASRC_MEMTOMEM, DmaMemInfo->SrcAddr);\r
- rt = rk29_dma_config(dma_flag, 8);\r
- rt = rk29_dma_set_buffdone_fn(dma_flag, rk29_dma_memcpy_callback);\r
- rt = rk29_dma_enqueue(dma_flag, NULL, DmaMemInfo->DstAddr, DmaMemInfo->MenSize);\r
- rt = rk29_dma_ctrl(dma_flag, RK29_DMAOP_START); \r
- wait_event_interruptible_timeout(wq, wq_condition, HZ/20);\r
+ \r
+ rt = rk29_dma_devconfig(DMACH_DMAC0_MEMTOMEM, RK29_DMASRC_MEMTOMEM, DmaMemInfo->SrcAddr);\r
+ rt = rk29_dma_enqueue(DMACH_DMAC0_MEMTOMEM, NULL, DmaMemInfo->DstAddr, DmaMemInfo->MenSize);\r
+ rt = rk29_dma_ctrl(DMACH_DMAC0_MEMTOMEM, RK29_DMAOP_START); \r
+ wait_event_interruptible_timeout(wq, wq_condition, 200);\r
wq_condition = 0; \r
+ //init_waitqueue_head(&dma_memcpy_wait);\r
+ //interruptible_sleep_on(&dma_memcpy_wait);\r
return 0;\r
}\r
\r
int ret;\r
\r
ret = device_create_file(&pdev->dev, &driver_attr_dmamemcpy);\r
+ rk29_dma_request(DMACH_DMAC0_MEMTOMEM, &rk29_dma_memcpy_client, NULL); \r
+ rk29_dma_config(DMACH_DMAC0_MEMTOMEM, 8);\r
+ rk29_dma_set_buffdone_fn(DMACH_DMAC0_MEMTOMEM, rk29_dma_memcpy_callback);\r
if(ret)\r
{\r
printk(">> fb1 dsp win0 info device_create_file err\n");\r