Lines Matching refs:pdev
71 static void rtas_disable_msi(struct pci_dev *pdev) in rtas_disable_msi() argument
75 pdn = pci_get_pdn(pdev); in rtas_disable_msi()
115 static void rtas_teardown_msi_irqs(struct pci_dev *pdev) in rtas_teardown_msi_irqs() argument
119 list_for_each_entry(entry, &pdev->msi_list, list) { in rtas_teardown_msi_irqs()
127 rtas_disable_msi(pdev); in rtas_teardown_msi_irqs()
130 static int check_req(struct pci_dev *pdev, int nvec, char *prop_name) in check_req() argument
137 pdn = pci_get_pdn(pdev); in check_req()
162 static int check_req_msi(struct pci_dev *pdev, int nvec) in check_req_msi() argument
164 return check_req(pdev, nvec, "ibm,req#msi"); in check_req_msi()
167 static int check_req_msix(struct pci_dev *pdev, int nvec) in check_req_msix() argument
169 return check_req(pdev, nvec, "ibm,req#msi-x"); in check_req_msix()
341 static int check_msix_entries(struct pci_dev *pdev) in check_msix_entries() argument
351 list_for_each_entry(entry, &pdev->msi_list, list) { in check_msix_entries()
362 static void rtas_hack_32bit_msi_gen2(struct pci_dev *pdev) in rtas_hack_32bit_msi_gen2() argument
371 dev_info(&pdev->dev, in rtas_hack_32bit_msi_gen2()
373 pci_read_config_dword(pdev, pdev->msi_cap + PCI_MSI_ADDRESS_HI, &addr_hi); in rtas_hack_32bit_msi_gen2()
375 pci_write_config_dword(pdev, pdev->msi_cap + PCI_MSI_ADDRESS_LO, addr_lo); in rtas_hack_32bit_msi_gen2()
376 pci_write_config_dword(pdev, pdev->msi_cap + PCI_MSI_ADDRESS_HI, 0); in rtas_hack_32bit_msi_gen2()
379 static int rtas_setup_msi_irqs(struct pci_dev *pdev, int nvec_in, int type) in rtas_setup_msi_irqs() argument
389 rc = check_req_msix(pdev, nvec); in rtas_setup_msi_irqs()
391 rc = check_req_msi(pdev, nvec); in rtas_setup_msi_irqs()
396 quota = msi_quota_for_device(pdev, nvec); in rtas_setup_msi_irqs()
401 if (type == PCI_CAP_ID_MSIX && check_msix_entries(pdev)) in rtas_setup_msi_irqs()
410 quota = msi_quota_for_device(pdev, m); in rtas_setup_msi_irqs()
416 pdn = pci_get_pdn(pdev); in rtas_setup_msi_irqs()
425 if (pdev->no_64bit_msi) { in rtas_setup_msi_irqs()
432 if (pdev->bus->max_bus_speed != PCIE_SPEED_5_0GT) in rtas_setup_msi_irqs()
449 rtas_hack_32bit_msi_gen2(pdev); in rtas_setup_msi_irqs()
463 list_for_each_entry(entry, &pdev->msi_list, list) { in rtas_setup_msi_irqs()
477 dev_dbg(&pdev->dev, "rtas_msi: allocated virq %d\n", virq); in rtas_setup_msi_irqs()
488 static void rtas_msi_pci_irq_fixup(struct pci_dev *pdev) in rtas_msi_pci_irq_fixup() argument
491 if (pdev->irq == NO_IRQ) { in rtas_msi_pci_irq_fixup()
492 dev_dbg(&pdev->dev, "rtas_msi: no LSI, nothing to do.\n"); in rtas_msi_pci_irq_fixup()
497 if (check_req_msi(pdev, 1) && check_req_msix(pdev, 1)) { in rtas_msi_pci_irq_fixup()
498 dev_dbg(&pdev->dev, "rtas_msi: no req#msi/x, nothing to do.\n"); in rtas_msi_pci_irq_fixup()
502 dev_dbg(&pdev->dev, "rtas_msi: disabling existing MSI.\n"); in rtas_msi_pci_irq_fixup()
503 rtas_disable_msi(pdev); in rtas_msi_pci_irq_fixup()