Commit 7d24e1ac authored by Ian Abbott's avatar Ian Abbott Committed by Greg Kroah-Hartman

staging: comedi: mite: export mite_alloc_ring() and mite_free_ring()

The `mite_alloc_ring()` and `mite_free_ring()` static inline functions
in "mite.h" are reasonably large.  Transfer them to "mite.c" and export
them.
Signed-off-by: default avatarIan Abbott <abbotti@mev.co.uk>
Reviewed-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent ae031801
...@@ -257,6 +257,41 @@ void mite_list_devices(void) ...@@ -257,6 +257,41 @@ void mite_list_devices(void)
} }
EXPORT_SYMBOL(mite_list_devices); EXPORT_SYMBOL(mite_list_devices);
struct mite_dma_descriptor_ring *mite_alloc_ring(struct mite_struct *mite)
{
struct mite_dma_descriptor_ring *ring =
kmalloc(sizeof(struct mite_dma_descriptor_ring), GFP_KERNEL);
if (ring == NULL)
return ring;
ring->hw_dev = get_device(&mite->pcidev->dev);
if (ring->hw_dev == NULL) {
kfree(ring);
return NULL;
}
ring->n_links = 0;
ring->descriptors = NULL;
ring->descriptors_dma_addr = 0;
return ring;
};
EXPORT_SYMBOL(mite_alloc_ring);
void mite_free_ring(struct mite_dma_descriptor_ring *ring)
{
if (ring) {
if (ring->descriptors) {
dma_free_coherent(ring->hw_dev,
ring->n_links *
sizeof(struct mite_dma_descriptor),
ring->descriptors,
ring->descriptors_dma_addr);
}
put_device(ring->hw_dev);
kfree(ring);
}
};
EXPORT_SYMBOL(mite_free_ring);
struct mite_channel *mite_request_channel_in_range(struct mite_struct *mite, struct mite_channel *mite_request_channel_in_range(struct mite_struct *mite,
struct struct
mite_dma_descriptor_ring mite_dma_descriptor_ring
......
...@@ -77,40 +77,6 @@ struct mite_struct { ...@@ -77,40 +77,6 @@ struct mite_struct {
spinlock_t lock; spinlock_t lock;
}; };
static inline struct mite_dma_descriptor_ring *mite_alloc_ring(struct
mite_struct
*mite)
{
struct mite_dma_descriptor_ring *ring =
kmalloc(sizeof(struct mite_dma_descriptor_ring), GFP_KERNEL);
if (ring == NULL)
return ring;
ring->hw_dev = get_device(&mite->pcidev->dev);
if (ring->hw_dev == NULL) {
kfree(ring);
return NULL;
}
ring->n_links = 0;
ring->descriptors = NULL;
ring->descriptors_dma_addr = 0;
return ring;
};
static inline void mite_free_ring(struct mite_dma_descriptor_ring *ring)
{
if (ring) {
if (ring->descriptors) {
dma_free_coherent(ring->hw_dev,
ring->n_links *
sizeof(struct mite_dma_descriptor),
ring->descriptors,
ring->descriptors_dma_addr);
}
put_device(ring->hw_dev);
kfree(ring);
}
};
extern struct mite_struct *mite_devices; extern struct mite_struct *mite_devices;
static inline unsigned int mite_irq(struct mite_struct *mite) static inline unsigned int mite_irq(struct mite_struct *mite)
...@@ -127,6 +93,8 @@ int mite_setup(struct mite_struct *mite); ...@@ -127,6 +93,8 @@ int mite_setup(struct mite_struct *mite);
int mite_setup2(struct mite_struct *mite, unsigned use_iodwbsr_1); int mite_setup2(struct mite_struct *mite, unsigned use_iodwbsr_1);
void mite_unsetup(struct mite_struct *mite); void mite_unsetup(struct mite_struct *mite);
void mite_list_devices(void); void mite_list_devices(void);
struct mite_dma_descriptor_ring *mite_alloc_ring(struct mite_struct *mite);
void mite_free_ring(struct mite_dma_descriptor_ring *ring);
struct mite_channel *mite_request_channel_in_range(struct mite_struct *mite, struct mite_channel *mite_request_channel_in_range(struct mite_struct *mite,
struct struct
mite_dma_descriptor_ring mite_dma_descriptor_ring
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment