Lines Matching refs:phb
162 struct pnv_phb *phb = hose->private_data; in pnv_setup_msi_irqs() local
169 if (WARN_ON(!phb) || !phb->msi_bmp.bitmap) in pnv_setup_msi_irqs()
172 if (pdev->no_64bit_msi && !phb->msi32_support) in pnv_setup_msi_irqs()
176 if (!entry->msi_attrib.is_64 && !phb->msi32_support) { in pnv_setup_msi_irqs()
181 hwirq = msi_bitmap_alloc_hwirqs(&phb->msi_bmp, 1); in pnv_setup_msi_irqs()
187 virq = irq_create_mapping(NULL, phb->msi_base + hwirq); in pnv_setup_msi_irqs()
191 msi_bitmap_free_hwirqs(&phb->msi_bmp, hwirq, 1); in pnv_setup_msi_irqs()
194 rc = phb->msi_setup(phb, pdev, phb->msi_base + hwirq, in pnv_setup_msi_irqs()
199 msi_bitmap_free_hwirqs(&phb->msi_bmp, hwirq, 1); in pnv_setup_msi_irqs()
211 struct pnv_phb *phb = hose->private_data; in pnv_teardown_msi_irqs() local
215 if (WARN_ON(!phb)) in pnv_teardown_msi_irqs()
224 msi_bitmap_free_hwirqs(&phb->msi_bmp, hwirq - phb->msi_base, 1); in pnv_teardown_msi_irqs()
554 static void pnv_pci_handle_eeh_config(struct pnv_phb *phb, u32 pe_no) in pnv_pci_handle_eeh_config() argument
559 spin_lock_irqsave(&phb->lock, flags); in pnv_pci_handle_eeh_config()
562 rc = opal_pci_get_phb_diag_data2(phb->opal_id, phb->diag_data, in pnv_pci_handle_eeh_config()
563 phb->diag_data_size); in pnv_pci_handle_eeh_config()
567 if (phb->unfreeze_pe) { in pnv_pci_handle_eeh_config()
568 ret = phb->unfreeze_pe(phb, in pnv_pci_handle_eeh_config()
572 rc = opal_pci_eeh_freeze_clear(phb->opal_id, in pnv_pci_handle_eeh_config()
578 __func__, rc, phb->hose->global_number, in pnv_pci_handle_eeh_config()
591 pnv_pci_dump_phb_diag_data(phb->hose, phb->diag_data); in pnv_pci_handle_eeh_config()
593 spin_unlock_irqrestore(&phb->lock, flags); in pnv_pci_handle_eeh_config()
598 struct pnv_phb *phb = pdn->phb->private_data; in pnv_pci_config_check_eeh() local
611 pe_no = phb->ioda.reserved_pe_idx; in pnv_pci_config_check_eeh()
618 if (phb->get_pe_state) { in pnv_pci_config_check_eeh()
619 fstate = phb->get_pe_state(phb, pe_no); in pnv_pci_config_check_eeh()
621 rc = opal_pci_eeh_freeze_status(phb->opal_id, in pnv_pci_config_check_eeh()
628 __func__, rc, phb->hose->global_number, pe_no); in pnv_pci_config_check_eeh()
644 if (phb->freeze_pe) in pnv_pci_config_check_eeh()
645 phb->freeze_pe(phb, pe_no); in pnv_pci_config_check_eeh()
647 pnv_pci_handle_eeh_config(phb, pe_no); in pnv_pci_config_check_eeh()
654 struct pnv_phb *phb = pdn->phb->private_data; in pnv_pci_cfg_read() local
661 rc = opal_pci_config_read_byte(phb->opal_id, bdfn, where, &v8); in pnv_pci_cfg_read()
667 rc = opal_pci_config_read_half_word(phb->opal_id, bdfn, where, in pnv_pci_cfg_read()
674 rc = opal_pci_config_read_word(phb->opal_id, bdfn, where, &v32); in pnv_pci_cfg_read()
690 struct pnv_phb *phb = pdn->phb->private_data; in pnv_pci_cfg_write() local
697 opal_pci_config_write_byte(phb->opal_id, bdfn, where, val); in pnv_pci_cfg_write()
700 opal_pci_config_write_half_word(phb->opal_id, bdfn, where, val); in pnv_pci_cfg_write()
703 opal_pci_config_write_word(phb->opal_id, bdfn, where, val); in pnv_pci_cfg_write()
716 struct pnv_phb *phb = pdn->phb->private_data; in pnv_pci_cfg_check() local
719 if (!(phb->flags & PNV_PHB_FLAG_EEH)) in pnv_pci_cfg_check()
747 struct pnv_phb *phb; in pnv_pci_read_config() local
759 phb = pdn->phb->private_data; in pnv_pci_read_config()
760 if (phb->flags & PNV_PHB_FLAG_EEH && pdn->edev) { in pnv_pci_read_config()
776 struct pnv_phb *phb; in pnv_pci_write_config() local
787 phb = pdn->phb->private_data; in pnv_pci_write_config()
788 if (!(phb->flags & PNV_PHB_FLAG_EEH)) in pnv_pci_write_config()
816 struct pnv_phb *phb = hose->private_data; in pnv_pci_dma_dev_setup() local
825 list_for_each_entry(pe, &phb->ioda.pe_list, list) { in pnv_pci_dma_dev_setup()
836 if (phb && phb->dma_dev_setup) in pnv_pci_dma_dev_setup()
837 phb->dma_dev_setup(phb, pdev); in pnv_pci_dma_dev_setup()
843 struct pnv_phb *phb = hose->private_data; in pnv_pci_dma_bus_setup() local
846 list_for_each_entry(pe, &phb->ioda.pe_list, list) { in pnv_pci_dma_bus_setup()
872 struct pnv_phb *phb; in pnv_pci_set_tunnel_bar() local
882 phb = hose->private_data; in pnv_pci_set_tunnel_bar()
885 rc = opal_pci_get_pbcq_tunnel_bar(phb->opal_id, &val); in pnv_pci_set_tunnel_bar()
914 rc = opal_pci_set_pbcq_tunnel_bar(phb->opal_id, addr); in pnv_pci_set_tunnel_bar()
1005 struct pnv_phb *phb; in pnv_tce_iommu_bus_notifier() local
1012 phb = hose->private_data; in pnv_tce_iommu_bus_notifier()
1014 WARN_ON_ONCE(!phb); in pnv_tce_iommu_bus_notifier()
1015 if (!pdn || pdn->pe_number == IODA_INVALID_PE || !phb) in pnv_tce_iommu_bus_notifier()
1018 pe = &phb->ioda.pe_array[pdn->pe_number]; in pnv_tce_iommu_bus_notifier()