Thread (17 messages) flat view 17 messages, 5 authors, 2012-10-24

[PATCH 2/2] arm: mvebu: Add hardware I/O Coherency support

From: arnd@arndb.de (Arnd Bergmann)
Date: 2012-10-24 11:36:43
Also in: lkml

On Wednesday 24 October 2012, Gregory CLEMENT wrote:
+void __init armada_370_xp_coherency_iocache_init(void)
+{
+       /* When the coherency fabric is available, the Armada XP and
+        * Aramada 370 are close to a coherent architecture, so we based
+        * our dma ops on the coherent one, and just changes the
+        * operations which need a arch io sync */
+       if (of_find_compatible_node(NULL, NULL, "marvell,coherency-fabric")) {
+               struct dma_map_ops *dma_ops = &armada_xp_dma_ops;
+               memcpy(dma_ops, &arm_coherent_dma_ops, sizeof(*dma_ops));
+               dma_ops->map_page = armada_xp_dma_map_page;
+               dma_ops->unmap_page = armada_xp_dma_unmap_page;
+               dma_ops->unmap_sg = arm_dma_ops.unmap_sg;
+               dma_ops->sync_single_for_cpu = armada_xp_dma_sync;
+               dma_ops->sync_single_for_device = armada_xp_dma_sync;
+               dma_ops->sync_sg_for_cpu = arm_dma_ops.sync_sg_for_cpu;
+               dma_ops->sync_sg_for_device = arm_dma_ops.sync_sg_for_device;
+       }
+       bus_register_notifier(&platform_bus_type, &armada_xp_platform_nb);
I think it would be cleaner to statically define the operations in a constant
structure and point directly to the functions you need. If necessary, use
multiple structures.

	Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help