coherent_dma_mask :用来分配连续一致性dma。 dma_mask:在dma_map_single->dma_map_page,dma_capable用。 先看默认设置。后续可以通过pci_set_dma_mask/pci_set_consistent_dma_mask分别设置 设置: int pci_setup_device(struct pci_dev *dev) { u32 class; u16 cmd; u8 hdr_type; int pos = 0; stru...
if(dma_set_mask(dev,DMA_BIT_MASK(24))){dev_warn(dev,"mydev: 24-bit DMA addressing not available\n");goto ignore_this_device;} 当dma_set_mask() 或 dma_set_mask_and_coherent() 成功并返回零时,内核会保存您提供的此掩码。 稍后当您进行 DMA 映射时,内核将使用此信息。 目前我们知道一个...
其中的函数dma_set_mask_and_coherent()用于对dma_mask和coherent_dma_mask赋值。dma_mask表示的是该设备通过DMA方式可寻址的物理地址范围,coherent_dma_mask表示所有设备通过DMA方式可寻址的公共的物理地址范围,因为不是所有的硬件设备都能够支持64bit的地址宽度。
dma_set_mask_and_coherent:因为device并不一定能在所有内存地址上执行DMA操作,因此使用dma的设备都需要设置其dma操作能访问的地址线位宽。struct device结构体中包括两个与dma相关的mask:dma_mask和coherent_dma_mask。前者用于流式DMA寻址的范围掩码,后者是作用于申请一致性(coherent)DMA缓存时使用的掩码。(coherent_...
其中的函数dma_set_mask_and_coherent()用于对dma_mask和coherent_dma_mask赋值。 dma_mask表示的是该设备通过DMA方式可寻址的物理地址范围,coherent_dma_mask表示所有设备通过DMA方式可寻址的公共的物理地址范围, 因为不是所有的硬件设备都能够支持64bit的地址宽度。 /include/linux/dma-mapping.h /* * Set both...
dma_set_mask_and_coherent(structdevice *dev, u64 mask) 检查是否可能使用该掩码,并更新设备流式和一致性DMA掩码参数(如果可能)。 返回:如果成功则返回0,否则返回负错误。 int dma_set_mask(structdevice *dev, u64 mask) 检查是否可能使用该掩码,并更新设备参数(如果可能)。
ret =dma_set_coherent_mask(dev, DMA_BIT_MASK(32));if(ret)returnret;returncomponent_add(dev, &ipu_crtc_ops); } 开发者ID:168519,项目名称:linux,代码行数:26,代码来源:ipuv3-crtc.c 示例2: dcdbas_probe ▲点赞 6▼ staticintdcdbas_probe(struct platform_device *dev){interror; ...
dma_mask表示的是该设备通过DMA方式可寻址的物理地址范围,coherent_dma_mask表示所有设备通过DMA方式可寻址的公共的物理地址范围, 因为不是所有的硬件设备都能够支持64bit的地址宽度。 /include/linux/dma-mapping.h /* * Set both the DMA mask and the coherent DMA mask to the same thing. * Notethat we ...
* Set both the DMA mask and the coherent DMA mask to the same thing. * Note that we don't check the return value from dma_set_coherent_mask() * as the DMA API guarantees that the coherent DMA mask can be set to * the same or smaller than the streaming DMA mask. */ static inli...
dma_mask表示的是该设备通过DMA方式可寻址的物理地址范围,coherent_dma_mask表示所有设备通过DMA方式可寻址的公共的物理地址范围, 因为不是所有的硬件设备都能够支持64bit的地址宽度。 /include/linux/dma-mapping.h 代码语言:javascript 复制 /* * Set both the DMA mask and the coherent DMA mask to the same...