include/linux/omap-dma.h
Source file repositories/reference/linux-study-clean/include/linux/omap-dma.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/omap-dma.h- Extension
.h- Size
- 9766 bytes
- Lines
- 350
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/platform_device.h
Detected Declarations
struct omap_dma_channel_paramsstruct omap_dma_lchstruct omap_dma_dev_attrstruct omap_dma_regstruct dma_slave_mapstruct omap_system_dma_plat_infoenum omap_reg_offsetsenum omap_dma_burst_modeenum end_typeenum omap_dma_color_modeenum omap_dma_write_modeenum omap_dma_channel_modefunction omap_set_dma_priorityfunction omap_lcd_dma_running
Annotated Snippet
struct omap_dma_channel_params {
int data_type; /* data type 8,16,32 */
int elem_count; /* number of elements in a frame */
int frame_count; /* number of frames in a element */
int src_port; /* Only on OMAP1 REVISIT: Is this needed? */
int src_amode; /* constant, post increment, indexed,
double indexed */
unsigned long src_start; /* source address : physical */
int src_ei; /* source element index */
int src_fi; /* source frame index */
int dst_port; /* Only on OMAP1 REVISIT: Is this needed? */
int dst_amode; /* constant, post increment, indexed,
double indexed */
unsigned long dst_start; /* source address : physical */
int dst_ei; /* source element index */
int dst_fi; /* source frame index */
int trigger; /* trigger attached if the channel is
synchronized */
int sync_mode; /* sycn on element, frame , block or packet */
int src_or_dst_synch; /* source synch(1) or destination synch(0) */
int ie; /* interrupt enabled */
unsigned char read_prio;/* read priority */
unsigned char write_prio;/* write priority */
#ifndef CONFIG_ARCH_OMAP1
enum omap_dma_burst_mode burst_mode; /* Burst mode 4/8/16 words */
#endif
};
struct omap_dma_lch {
int next_lch;
int dev_id;
u16 saved_csr;
u16 enabled_irqs;
const char *dev_name;
void (*callback)(int lch, u16 ch_status, void *data);
void *data;
long flags;
int state;
int chain_id;
int status;
};
struct omap_dma_dev_attr {
u32 dev_caps;
u16 lch_count;
u16 chan_count;
};
enum {
OMAP_DMA_REG_NONE,
OMAP_DMA_REG_16BIT,
OMAP_DMA_REG_2X16BIT,
OMAP_DMA_REG_32BIT,
};
struct omap_dma_reg {
u16 offset;
u8 stride;
u8 type;
};
#define SDMA_FILTER_PARAM(hw_req) ((int[]) { (hw_req) })
struct dma_slave_map;
/* System DMA platform data structure */
struct omap_system_dma_plat_info {
const struct omap_dma_reg *reg_map;
unsigned channel_stride;
struct omap_dma_dev_attr *dma_attr;
u32 errata;
void (*show_dma_caps)(void);
void (*clear_lch_regs)(int lch);
void (*clear_dma)(int lch);
void (*dma_write)(u32 val, int reg, int lch);
u32 (*dma_read)(int reg, int lch);
const struct dma_slave_map *slave_map;
int slavecnt;
};
#ifdef CONFIG_ARCH_OMAP2PLUS
#define dma_omap2plus() 1
#else
#define dma_omap2plus() 0
Annotation
- Immediate include surface: `linux/platform_device.h`.
- Detected declarations: `struct omap_dma_channel_params`, `struct omap_dma_lch`, `struct omap_dma_dev_attr`, `struct omap_dma_reg`, `struct dma_slave_map`, `struct omap_system_dma_plat_info`, `enum omap_reg_offsets`, `enum omap_dma_burst_mode`, `enum end_type`, `enum omap_dma_color_mode`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.