|
刚才写漏一个。加入。
to:figo_liu1008,很感谢、
在probe里主要处理的步骤也是如下:
1)pdx = kmalloc(sizeof(DEVICE_EXTENSION), GFP_KERNEL);
2) memset(pdx, 0, sizeof(DEVICE_EXTENSION));
3)设置pci_dev字符设备名。
4)pci_enable_device(pci_dev)
5)pci_set_dma_mask(pci_dev, 0xFFFFFFFFULL)
6)pci_request_regions(pci_dev, pdx->device_name)
6+)pci_set_master(pci_dev);
7)资源映射
io_base = pci_resource_start(pci_dev, i);
io_len = pci_resource_len(pci_dev, i);
io_flags = pci_resource_flags(pci_dev, i);
8)ioremap(io_base, io_len);
9)设置自旋锁
10)pci_set_drvdata(pci_dev, pdx);
11)安装中断处理
12)clear int event
mask all int
这些是PCI驱动的probe主要处理,我们的PCI交互采用DMA方式。这处理问题在那里呢? |
|