我正在尝试编写一个在嵌入式系统上与DMA接口的平台驱动程序。我们使用的是Zedboard和Xilinx的AXI DMA IP。然而,我相信我们的错误与Linux内核有关。
为了获得DMA的tx/rx通道,linux提供了dma_request_channel函数。此函数使用需要与DMA匹配的过滤器和过滤器参数。此函数获取系统中所有可用DMA的列表,并使用过滤器将其与我们想要的匹配。但是,这似乎不能获得所有可用的DMA,而只能获得一个。ARM内核自带PL330 hard IP DMA。这是它唯一能看到的。
内核代码如此复杂,以至于我被困在列表头文件中
谁能解释一下LIST_HEAD_INIT是做