drivers/dma/dw/internal.h

Source file repositories/reference/linux-study-clean/drivers/dma/dw/internal.h

File Facts

System
Linux kernel
Corpus path
drivers/dma/dw/internal.h
Extension
.h
Size
2723 bytes
Lines
102
Domain
Driver Families
Bucket
drivers/dma
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct dw_dma_chip_pdata {
	const struct dw_dma_platform_data *pdata;
	int (*probe)(struct dw_dma_chip *chip);
	int (*remove)(struct dw_dma_chip *chip);
	struct dw_dma_chip *chip;
	u8 m_master;
	u8 p_master;
};

static __maybe_unused const struct dw_dma_chip_pdata dw_dma_chip_pdata = {
	.probe = dw_dma_probe,
	.remove = dw_dma_remove,
	.m_master = 0,
	.p_master = 1,
};

static const struct dw_dma_platform_data idma32_pdata = {
	.nr_channels = 8,
	.chan_allocation_order = CHAN_ALLOCATION_ASCENDING,
	.chan_priority = CHAN_PRIORITY_ASCENDING,
	.block_size = 131071,
	.nr_masters = 1,
	.data_width = {4},
	.multi_block = {1, 1, 1, 1, 1, 1, 1, 1},
};

static __maybe_unused const struct dw_dma_chip_pdata idma32_chip_pdata = {
	.pdata = &idma32_pdata,
	.probe = idma32_dma_probe,
	.remove = idma32_dma_remove,
	.m_master = 0,
	.p_master = 0,
};

static const struct dw_dma_platform_data xbar_pdata = {
	.nr_channels = 8,
	.chan_allocation_order = CHAN_ALLOCATION_ASCENDING,
	.chan_priority = CHAN_PRIORITY_ASCENDING,
	.block_size = 131071,
	.nr_masters = 1,
	.data_width = {4},
	.quirks = DW_DMA_QUIRK_XBAR_PRESENT,
};

static __maybe_unused const struct dw_dma_chip_pdata xbar_chip_pdata = {
	.pdata = &xbar_pdata,
	.probe = idma32_dma_probe,
	.remove = idma32_dma_remove,
	.m_master = 0,
	.p_master = 0,
};

#endif /* _DMA_DW_INTERNAL_H */

Annotation

Implementation Notes