rm pointless dmaengine exports
PATCH 1/1 rm pointless dmaengine exports
This removes several pointless exports from drivers/dma/dmaengine.c; the dma_async_memcpy_*() functions are inlined by <linux/dmaengine.h> so those exports are inappropriate.
It also moves the existing EXPORT_SYMBOL declarations next to their functions, so it's now trivial to confirm one-to-one correspondence between exports and nonstatic symbols.
---
By the way ... I'm sure that I'm not the only one to observe how odd it is that a "DMA Engine" framework is purely a memcpy() offload engine.
It overlooks the primary use of DMA in Linux: peripheral I/O, which may well involve the same kind of dual-access engines this framework assumes. DMA controllers on embedded Linuxes commonly support a few dozen logical DMA channels supporting hardware-synchronized transfers to/from most peripheral devices. Memory-to-memory DMA would often also work ... but wouldn't address IRQ rate issues of PIO drivers.
drivers/dma/dmaengine.c | 18 ++++++------------ 1 files changed, 6 insertions(+), 12 deletions(-)
drivers/dma/dmaengine.c +6 -12
@@ -176,6 +176,7 @@ void dma_chan_cleanup(struct kref *kref) chan->client =NULL ;kref_put (&chan->device->refcount, dma_async_device_cleanup); } +EXPORT_SYMBOL (dma_chan_cleanup);static void dma_chan_free_rcu (struct rcu_head *rcu) {
@@ -261,6 +262,7 @@ struct dma_client *dma_async_client_regireturn client; } +EXPORT_SYMBOL (dma_async_client_register);/** * dma_async_client_unregister - unregister a client and free the &dma_client
@@ -287,6 +289,7 @@ void dma_async_client_unregister(structkfree (client);dma_chans_rebalance (); } +EXPORT_SYMBOL (dma_async_client_unregister);/** * dma_async_client_chan_request - request DMA channels
@@ -304,6 +307,7 @@ void dma_async_client_chan_request(struc client->chans_desired = number;dma_chans_rebalance (); } +EXPORT_SYMBOL (dma_async_client_chan_request);/** * dma_async_device_register - registers DMA devices found
@@ -346,6 +350,7 @@ int dma_async_device_register(struct dmareturn 0 ; } +EXPORT_SYMBOL (dma_async_device_register);/** * dma_async_device_cleanup - function called when all references are released
@@ -390,23 +395,12 @@ void dma_async_device_unregister(structkref_put (&device->refcount, dma_async_device_cleanup);wait_for_completion (&device->done); } +EXPORT_SYMBOL (dma_async_device_unregister);static int __init dma_bus_init (void ) {mutex_init (&dma_list_mutex);return class_register (&dma_devclass); } -subsys_initcall (dma_bus_init); -EXPORT_SYMBOL (dma_async_client_register); -EXPORT_SYMBOL (dma_async_client_unregister); -EXPORT_SYMBOL (dma_async_client_chan_request); -EXPORT_SYMBOL (dma_async_memcpy_buf_to_buf); -EXPORT_SYMBOL (dma_async_memcpy_buf_to_pg); -EXPORT_SYMBOL (dma_async_memcpy_pg_to_pg); -EXPORT_SYMBOL (dma_async_memcpy_complete); -EXPORT_SYMBOL (dma_async_memcpy_issue_pending); -EXPORT_SYMBOL (dma_async_device_register); -EXPORT_SYMBOL (dma_async_device_unregister); -EXPORT_SYMBOL (dma_chan_cleanup);