static void my_remove(struct pci_dev *pdev)
// 4. Map BAR0 (control registers) into kernel virtual address space void __iomem *regs = pci_iomap(pdev, 0, 0);
pci_enable_device(pdev); pci_request_regions(pdev, "my_pci_driver"); pci_iomap(pdev, 0, 0); return 0; pci device driver
// 1. Enable the PCI device pci_enable_device(pdev); // 2. Request ownership of memory regions (BARs) pci_request_regions(pdev, "my_driver");
pci_release_regions(pdev); pci_disable_device(pdev); static void my_remove(struct pci_dev *pdev) // 4
By: Engineering Staff
static int my_probe(struct pci_dev *pdev, const struct pci_device_id *id) const struct pci_device_id *id) #include <
#include <linux/pci.h> #include <linux/module.h> static const struct pci_device_id my_ids[] = PCI_DEVICE(0x1234, 0x5678) , 0, ; MODULE_DEVICE_TABLE(pci, my_ids);