static void iwl_pci_get_hw_id(struct iwl_bus *bus, char buf[], int buf_len) { struct pci_dev *pci_dev = IWL_BUS_GET_PCI_DEV(bus); snprintf(buf, buf_len, "PCI ID: 0x%04X:0x%04X", pci_dev->device, pci_dev->subsystem_device); }
static u16 iwl_pciexp_link_ctrl(struct iwl_bus *bus) { int pos; u16 pci_lnk_ctl; struct pci_dev *pci_dev = IWL_BUS_GET_PCI_DEV(bus); pos = pci_pcie_cap(pci_dev); pci_read_config_word(pci_dev, pos + PCI_EXP_LNKCTL, &pci_lnk_ctl); return pci_lnk_ctl; }
static void __devexit iwl_pci_remove(struct pci_dev *pdev) { struct iwl_bus *bus = pci_get_drvdata(pdev); struct iwl_pci_bus *pci_bus = IWL_BUS_GET_PCI_BUS(bus); struct pci_dev *pci_dev = IWL_BUS_GET_PCI_DEV(bus); struct iwl_shared *shrd = bus->shrd; iwl_remove(shrd->priv); pci_disable_msi(pci_dev); pci_iounmap(pci_dev, pci_bus->hw_base); pci_release_regions(pci_dev); pci_disable_device(pci_dev); pci_set_drvdata(pci_dev, NULL); kfree(bus); }
static void iwl_pci_set_drv_data(struct iwl_bus *bus, void *drv_data) { bus->drv_data = drv_data; pci_set_drvdata(IWL_BUS_GET_PCI_DEV(bus), drv_data); }