rk29: memcpy_dma: fix section mismatch and initialization from incompatible pointer...
author黄涛 <huangtao@rock-chips.com>
Fri, 29 Jul 2011 01:56:38 +0000 (09:56 +0800)
committer黄涛 <huangtao@rock-chips.com>
Fri, 29 Jul 2011 01:56:38 +0000 (09:56 +0800)
arch/arm/mach-rk29/memcpy_dma.c

index 1656db2b84ff4434aedc4d9e917e241de57d5362..f7d4dc0964af0c04e3742f07c186858daf6cc08c 100755 (executable)
@@ -28,7 +28,7 @@ struct Dma_MemToMem {
 };\r
 \r
 \r
-static void rk29_dma_memcpy_callback(struct rk29_dma_chan *dma_ch, void *buf_id, int size, enum rk29_dma_buffresult result)\r
+static void rk29_dma_memcpy_callback(void *buf_id, int size, enum rk29_dma_buffresult result)\r
 {\r
     wq_condition = 1;\r
        wake_up_interruptible(&wq);\r
@@ -36,25 +36,16 @@ static void rk29_dma_memcpy_callback(struct rk29_dma_chan *dma_ch, void *buf_id,
 }\r
 \r
 //int slecount = 0;\r
-static ssize_t memcpy_dma_read(struct device *device,struct device_attribute *attr, void *argv)\r
+static ssize_t memcpy_dma_read(struct device *device,struct device_attribute *attr, char *argv)\r
 {\r
 \r
      return 0;\r
 }\r
 \r
-static ssize_t memcpy_dma_write (struct device *device,struct device_attribute *attr, void *argv)//(struct device_driver *device, const char *argv,size_t count)\r
+static ssize_t memcpy_dma_write(struct device *device, struct device_attribute *attr, const char *argv, size_t count)\r
 {\r
-    int dma_flag;\r
-    u32 mcode_sbus;\r
-    u32 mcode_dbus;\r
-    int i;\r
     int rt;\r
-    long usec1 = 0;\r
-    // long usec2 = 0;\r
-\r
     struct Dma_MemToMem  *DmaMemInfo = (struct Dma_MemToMem *)argv;\r
-\r
-\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
@@ -66,14 +57,14 @@ static ssize_t memcpy_dma_write (struct device *device,struct device_attribute *
     return 0;\r
 }\r
 \r
-static DRIVER_ATTR(dmamemcpy,  S_IRUGO|S_IALLUGO, memcpy_dma_read, memcpy_dma_write);\r
+static DEVICE_ATTR(dmamemcpy,  S_IRUGO|S_IALLUGO, memcpy_dma_read, memcpy_dma_write);\r
 \r
 \r
-static int __init dma_memcpy_probe(struct platform_device *pdev)\r
+static int __devinit dma_memcpy_probe(struct platform_device *pdev)\r
 {\r
     int ret;\r
       \r
-    ret = device_create_file(&pdev->dev, &driver_attr_dmamemcpy);\r
+    ret = device_create_file(&pdev->dev, &dev_attr_dmamemcpy);\r
     rk29_dma_request(DMACH_DMAC0_MEMTOMEM, &rk29_dma_memcpy_client, NULL); \r
     rk29_dma_config(DMACH_DMAC0_MEMTOMEM, 8, 16);\r
     rk29_dma_set_buffdone_fn(DMACH_DMAC0_MEMTOMEM, rk29_dma_memcpy_callback);\r
@@ -86,10 +77,9 @@ static int __init dma_memcpy_probe(struct platform_device *pdev)
     return 0;\r
 }\r
 \r
-static int  dma_memcpy_remove(struct platform_device *pdev)\r
+static int __devexit dma_memcpy_remove(struct platform_device *pdev)\r
 {\r
-    int ret;\r
-    driver_remove_file(&pdev->dev, &driver_attr_dmamemcpy);\r
+    device_remove_file(&pdev->dev, &dev_attr_dmamemcpy);\r
   \r
     return 0;\r
 }\r
@@ -100,7 +90,7 @@ static struct platform_driver dma_mempcy_driver = {
                 .owner  = THIS_MODULE,                \r
         },\r
         .probe          = dma_memcpy_probe,\r
-        .remove         = dma_memcpy_remove,\r
+        .remove         = __devexit_p(dma_memcpy_remove),\r
 };\r
 \r
 \r