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 12:25:07
Also in: lkml

On Wednesday 24 October 2012, Gregory CLEMENT wrote:
On 10/24/2012 01:48 PM, Gregory CLEMENT wrote:
quoted
On 10/24/2012 01:36 PM, Arnd Bergmann wrote:
quoted
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.
My problem was that these functions are not exposed, only arm_dma_op and
arm_coherent_dma_ops are exported.
Or do you think about something like this:
struct dma_map_ops *dma_ops = {
        .alloc                  = arm_coherent_dma_ops.arm_coherent_dma_alloc,
        .free                   = arm_coherent_dma_ops.arm_coherent_dma_free,
        .mmap                   = arm_coherent_dma_ops.arm_dma_mmap,
        .get_sgtable            = arm_coherent_dma_ops.arm_dma_get_sgtable,
        .map_sg                 = arm_coherent_dma_ops.arm_dma_map_sg,
        .set_dma_mask           = arm_coherent_dma_ops.arm_dma_set_mask,
        .map_page               = armada_xp_dma_map_page,
        .unmap_page             = armada_xp_dma_unmap_page,
        .unmap_sg               = arm_dma_ops.unmap_sg,
        .sync_single_for_cpu    = armada_xp_dma_sync,
        .sync_single_for_device = armada_xp_dma_sync,
        .sync_sg_for_cpu        = arm_dma_ops.sync_sg_for_cpu,
        .sync_sg_for_device     = arm_dma_ops.sync_sg_for_device,
};
No, I was thinking of making the underlying functions globally visible
and have extern declarations in a header file so you can access them
directly.

Generally speaking, when you run into a problem with common code, your
first approach should be to fix the common code before you try to work
around it.

	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