]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/arm/mach-davinci/dm644x.c
Merge remote-tracking branch 'xen-tip/linux-next'
[karo-tx-linux.git] / arch / arm / mach-davinci / dm644x.c
index dc52657909c4766eabd07d33a83e3c0fe8b68140..d38f5049d56e02064a3208bf1403fdb7ea40c49c 100644 (file)
@@ -498,61 +498,58 @@ static u8 dm644x_default_priorities[DAVINCI_N_AINTC_IRQ] = {
 
 /*----------------------------------------------------------------------*/
 
-static s8
-queue_priority_mapping[][2] = {
+static s8 queue_priority_mapping[][2] = {
        /* {event queue no, Priority} */
        {0, 3},
        {1, 7},
        {-1, -1},
 };
 
-static struct edma_soc_info edma_cc0_info = {
+static struct edma_soc_info dm644x_edma_pdata = {
        .queue_priority_mapping = queue_priority_mapping,
        .default_queue          = EVENTQ_1,
 };
 
-static struct edma_soc_info *dm644x_edma_info[EDMA_MAX_CC] = {
-       &edma_cc0_info,
-};
-
 static struct resource edma_resources[] = {
        {
-               .name   = "edma_cc0",
+               .name   = "edma3_cc",
                .start  = 0x01c00000,
                .end    = 0x01c00000 + SZ_64K - 1,
                .flags  = IORESOURCE_MEM,
        },
        {
-               .name   = "edma_tc0",
+               .name   = "edma3_tc0",
                .start  = 0x01c10000,
                .end    = 0x01c10000 + SZ_1K - 1,
                .flags  = IORESOURCE_MEM,
        },
        {
-               .name   = "edma_tc1",
+               .name   = "edma3_tc1",
                .start  = 0x01c10400,
                .end    = 0x01c10400 + SZ_1K - 1,
                .flags  = IORESOURCE_MEM,
        },
        {
-               .name   = "edma0",
+               .name   = "edma3_ccint",
                .start  = IRQ_CCINT0,
                .flags  = IORESOURCE_IRQ,
        },
        {
-               .name   = "edma0_err",
+               .name   = "edma3_ccerrint",
                .start  = IRQ_CCERRINT,
                .flags  = IORESOURCE_IRQ,
        },
        /* not using TC*_ERR */
 };
 
-static struct platform_device dm644x_edma_device = {
-       .name                   = "edma",
-       .id                     = 0,
-       .dev.platform_data      = dm644x_edma_info,
-       .num_resources          = ARRAY_SIZE(edma_resources),
-       .resource               = edma_resources,
+static const struct platform_device_info dm644x_edma_device __initconst = {
+       .name           = "edma",
+       .id             = 0,
+       .dma_mask       = DMA_BIT_MASK(32),
+       .res            = edma_resources,
+       .num_res        = ARRAY_SIZE(edma_resources),
+       .data           = &dm644x_edma_pdata,
+       .size_data      = sizeof(dm644x_edma_pdata),
 };
 
 /* DM6446 EVM uses ASP0; line-out is a pair of RCA jacks */
@@ -950,12 +947,17 @@ int __init dm644x_init_video(struct vpfe_config *vpfe_cfg,
 
 static int __init dm644x_init_devices(void)
 {
+       struct platform_device *edma_pdev;
        int ret = 0;
 
        if (!cpu_is_davinci_dm644x())
                return 0;
 
-       platform_device_register(&dm644x_edma_device);
+       edma_pdev = platform_device_register_full(&dm644x_edma_device);
+       if (IS_ERR(edma_pdev)) {
+               pr_warn("%s: Failed to register eDMA\n", __func__);
+               return PTR_ERR(edma_pdev);
+       }
 
        platform_device_register(&dm644x_mdio_device);
        platform_device_register(&dm644x_emac_device);