2 * Omnitek Scatter-Gather DMA Controller
4 * Copyright 2012-2015 Cisco Systems, Inc. and/or its affiliates.
7 * This program is free software; you may redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; version 2 of the License.
11 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
12 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
15 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
16 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
17 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 #ifndef COBALT_OMNITEK_H
22 #define COBALT_OMNITEK_H
24 #include <linux/scatterlist.h>
25 #include "cobalt-driver.h"
27 struct sg_dma_descriptor
{
41 int omni_sg_dma_init(struct cobalt
*cobalt
);
42 void omni_sg_dma_abort_channel(struct cobalt_stream
*s
);
43 void omni_sg_dma_start(struct cobalt_stream
*s
, struct sg_dma_desc_info
*desc
);
44 bool is_dma_done(struct cobalt_stream
*s
);
46 int descriptor_list_create(struct cobalt
*cobalt
,
47 struct scatterlist
*scatter_list
, bool to_pci
, unsigned sglen
,
48 unsigned size
, unsigned width
, unsigned stride
,
49 struct sg_dma_desc_info
*desc
);
51 void descriptor_list_chain(struct sg_dma_desc_info
*this,
52 struct sg_dma_desc_info
*next
);
53 void descriptor_list_loopback(struct sg_dma_desc_info
*desc
);
54 void descriptor_list_end_of_chain(struct sg_dma_desc_info
*desc
);
56 void *descriptor_list_allocate(struct sg_dma_desc_info
*desc
, size_t bytes
);
57 void descriptor_list_free(struct sg_dma_desc_info
*desc
);
59 void descriptor_list_interrupt_enable(struct sg_dma_desc_info
*desc
);
60 void descriptor_list_interrupt_disable(struct sg_dma_desc_info
*desc
);