Lines Matching full:pdn
842 struct device_node *dn, *pdn; in pci_dma_bus_setup_pSeriesLP() local
851 pdn = pci_dma_find(dn, &prop); in pci_dma_bus_setup_pSeriesLP()
862 if (!pdn) { in pci_dma_bus_setup_pSeriesLP()
867 ppci = PCI_DN(pdn); in pci_dma_bus_setup_pSeriesLP()
870 pdn, ppci->table_group); in pci_dma_bus_setup_pSeriesLP()
994 static void copy_property(struct device_node *pdn, const char *from, const char *to) in copy_property() argument
998 src = of_find_property(pdn, from, NULL); in copy_property()
1012 if (of_add_property(pdn, dst)) { in copy_property()
1013 pr_err("Unable to add DMA window property for %pOF", pdn); in copy_property()
1062 static bool find_existing_ddw(struct device_node *pdn, u64 *dma_addr, int *window_shift, in find_existing_ddw() argument
1072 if (window->device == pdn) { in find_existing_ddw()
1086 static struct dma_win *ddw_list_new_entry(struct device_node *pdn, in ddw_list_new_entry() argument
1095 window->device = pdn; in ddw_list_new_entry()
1105 struct device_node *pdn; in find_existing_ddw_windows_named() local
1109 for_each_node_with_property(pdn, name) { in find_existing_ddw_windows_named()
1110 dma64 = of_get_property(pdn, name, &len); in find_existing_ddw_windows_named()
1112 remove_dma_window_named(pdn, true, name, true); in find_existing_ddw_windows_named()
1122 window = ddw_list_new_entry(pdn, dma64); in find_existing_ddw_windows_named()
1124 of_node_put(pdn); in find_existing_ddw_windows_named()
1187 struct pci_dn *pdn; in query_ddw() local
1210 pdn = PCI_DN(dn); in query_ddw()
1211 buid = pdn->phb->buid; in query_ddw()
1212 cfg_addr = ((pdn->busno << 16) | (pdn->devfn << 8)); in query_ddw()
1246 struct pci_dn *pdn; in create_ddw() local
1258 pdn = PCI_DN(dn); in create_ddw()
1259 buid = pdn->phb->buid; in create_ddw()
1260 cfg_addr = ((pdn->busno << 16) | (pdn->devfn << 8)); in create_ddw()
1279 struct device_node *pdn; member
1314 struct pci_dn *pdn; in reset_dma_window() local
1321 pdn = PCI_DN(dn); in reset_dma_window()
1322 buid = pdn->phb->buid; in reset_dma_window()
1323 cfg_addr = (pdn->busno << 16) | (pdn->devfn << 8); in reset_dma_window()
1396 * pdn: the parent pe node with the ibm,dma_window property
1401 static bool enable_ddw(struct pci_dev *dev, struct device_node *pdn) in enable_ddw() argument
1418 struct pci_dn *pci = PCI_DN(pdn); in enable_ddw()
1427 if (find_existing_ddw(pdn, &dev->dev.archdata.dma_offset, &len, &direct_mapping)) in enable_ddw()
1438 if (fpdn->pdn == pdn) in enable_ddw()
1450 ret = of_property_read_u32_array(pdn, "ibm,ddw-applicable", in enable_ddw()
1462 ret = query_ddw(dev, ddw_avail, &query, pdn); in enable_ddw()
1482 default_win = of_find_property(pdn, "ibm,dma-window", NULL); in enable_ddw()
1486 reset_win_ext = ddw_read_ext(pdn, DDW_EXT_RESET_DMA_WIN, NULL); in enable_ddw()
1490 remove_dma_window(pdn, ddw_avail, default_win, true); in enable_ddw()
1494 ret = query_ddw(dev, ddw_avail, &query, pdn); in enable_ddw()
1588 ret = of_add_property(pdn, win64); in enable_ddw()
1591 pdn, ret); in enable_ddw()
1595 window = ddw_list_new_entry(pdn, win64->value); in enable_ddw()
1610 clean_dma_window(pdn, win64->value); in enable_ddw()
1663 if (!of_find_property(pdn, "ibm,dma-window-saved", NULL)) in enable_ddw()
1664 copy_property(pdn, "ibm,dma-window", "ibm,dma-window-saved"); in enable_ddw()
1665 of_remove_property(pdn, default_win); in enable_ddw()
1666 dev_info(&dev->dev, "Removed default DMA window for %pOF\n", pdn); in enable_ddw()
1680 of_remove_property(pdn, win64); in enable_ddw()
1689 __remove_dma_window(pdn, ddw_avail, create.liobn); in enable_ddw()
1693 reset_dma_window(dev, pdn); in enable_ddw()
1698 fpdn->pdn = pdn; in enable_ddw()
1732 struct device_node *pdn, in spapr_tce_init_table_group() argument
1735 struct iommu_table_group *table_group = PCI_DN(pdn)->table_group; in spapr_tce_init_table_group()
1753 if (!of_find_property(pdn, "ibm,dma-window", NULL)) in spapr_tce_init_table_group()
1756 ret = of_property_read_u32_array(pdn, "ibm,ddw-applicable", in spapr_tce_init_table_group()
1763 ret = query_ddw(pdev, ddw_avail, &query, pdn); in spapr_tce_init_table_group()
1781 struct device_node *pdn, *dn; in pci_dma_dev_setup_pSeriesLP() local
1797 pdn = pci_dma_find(dn, &prop); in pci_dma_dev_setup_pSeriesLP()
1798 if (!pdn || !PCI_DN(pdn)) { in pci_dma_dev_setup_pSeriesLP()
1804 pr_debug(" parent is %pOF\n", pdn); in pci_dma_dev_setup_pSeriesLP()
1806 pci = PCI_DN(pdn); in pci_dma_dev_setup_pSeriesLP()
1826 spapr_tce_init_table_group(dev, pdn, prop); in pci_dma_dev_setup_pSeriesLP()
1834 struct device_node *dn = pci_device_to_OF_node(pdev), *pdn; in iommu_bypass_supported_pSeriesLP() local
1848 pdn = pci_dma_find(dn, NULL); in iommu_bypass_supported_pSeriesLP()
1849 if (pdn && PCI_DN(pdn)) in iommu_bypass_supported_pSeriesLP()
1850 return enable_ddw(pdev, pdn); in iommu_bypass_supported_pSeriesLP()
1888 static void restore_default_dma_window(struct pci_dev *pdev, struct device_node *pdn) in restore_default_dma_window() argument
1890 reset_dma_window(pdev, pdn); in restore_default_dma_window()
1891 copy_property(pdn, "ibm,dma-window-saved", "ibm,dma-window"); in restore_default_dma_window()
1894 static long remove_dynamic_dma_windows(struct pci_dev *pdev, struct device_node *pdn) in remove_dynamic_dma_windows() argument
1896 struct pci_dn *pci = PCI_DN(pdn); in remove_dynamic_dma_windows()
1901 if (find_existing_ddw(pdn, &pdev->dev.archdata.dma_offset, &len, &direct_mapping)) { in remove_dynamic_dma_windows()
1902 remove_dma_window_named(pdn, true, direct_mapping ? in remove_dynamic_dma_windows()
1918 if (window->device == pdn) { in remove_dynamic_dma_windows()
1936 struct device_node *pdn; in pseries_setup_default_iommu_config() local
1940 pdn = pci_dma_find_parent_node(pdev, table_group); in pseries_setup_default_iommu_config()
1941 if (!pdn || !PCI_DN(pdn)) { in pseries_setup_default_iommu_config()
1942 dev_warn(&pdev->dev, "No table_group configured for the node %pOF\n", pdn); in pseries_setup_default_iommu_config()
1945 pci = PCI_DN(pdn); in pseries_setup_default_iommu_config()
1953 restore_default_dma_window(pdev, pdn); in pseries_setup_default_iommu_config()
1955 default_prop = of_get_property(pdn, "ibm,dma-window", NULL); in pseries_setup_default_iommu_config()
1956 of_parse_dma_window(pdn, default_prop, &liobn, &offset, &size); in pseries_setup_default_iommu_config()
1997 struct device_node *pdn; in spapr_tce_create_table() local
2015 pdn = pci_dma_find_parent_node(pdev, table_group); in spapr_tce_create_table()
2016 if (!pdn || !PCI_DN(pdn)) { /* Niether of 32s|64-bit exist! */ in spapr_tce_create_table()
2017 dev_warn(&pdev->dev, "No dma-windows exist for the node %pOF\n", pdn); in spapr_tce_create_table()
2020 pci = PCI_DN(pdn); in spapr_tce_create_table()
2022 /* If the enable DDW failed for the pdn, dont retry! */ in spapr_tce_create_table()
2024 if (fpdn->pdn == pdn) { in spapr_tce_create_table()
2025 dev_info(&pdev->dev, "%pOF in failed DDW device list\n", pdn); in spapr_tce_create_table()
2040 if (find_existing_ddw(pdn, &pdev->dev.archdata.dma_offset, &len, in spapr_tce_create_table()
2042 dev_warn(&pdev->dev, "%pOF: 64-bit window already present.", pdn); in spapr_tce_create_table()
2050 default_prop = of_get_property(pdn, "ibm,dma-window", NULL); in spapr_tce_create_table()
2052 if (find_existing_ddw(pdn, &pdev->dev.archdata.dma_offset, &len, in spapr_tce_create_table()
2055 pdn); in spapr_tce_create_table()
2060 restore_default_dma_window(pdev, pdn); in spapr_tce_create_table()
2062 default_prop = of_get_property(pdn, "ibm,dma-window", NULL); in spapr_tce_create_table()
2063 of_parse_dma_window(pdn, default_prop, &liobn, &offset, &size); in spapr_tce_create_table()
2082 ret = of_property_read_u32_array(pdn, "ibm,ddw-applicable", in spapr_tce_create_table()
2090 pr_err("%s: Calling query %pOF\n", __func__, pdn); in spapr_tce_create_table()
2091 ret = query_ddw(pdev, ddw_avail, &query, pdn); in spapr_tce_create_table()
2106 pr_err("%s: Create ddw failed %pOF\n", __func__, pdn); in spapr_tce_create_table()
2115 ret = of_add_property(pdn, win64); in spapr_tce_create_table()
2117 dev_err(&pdev->dev, "unable to add DMA window property for %pOF: %ld", pdn, ret); in spapr_tce_create_table()
2122 window = ddw_list_new_entry(pdn, win64->value); in spapr_tce_create_table()
2157 of_remove_property(pdn, win64); in spapr_tce_create_table()
2163 __remove_dma_window(pdn, ddw_avail, create.liobn); in spapr_tce_create_table()
2169 fpdn->pdn = pdn; in spapr_tce_create_table()
2204 struct device_node *dn = pci_device_to_OF_node(pdev), *pdn; in spapr_tce_unset_window() local
2221 pdn = pci_dma_find(dn, NULL); in spapr_tce_unset_window()
2222 if (!pdn || !PCI_DN(pdn)) { /* Niether of 32s|64-bit exist! */ in spapr_tce_unset_window()
2223 dev_warn(&pdev->dev, "No dma-windows exist for the node %pOF\n", pdn); in spapr_tce_unset_window()
2228 if (remove_dma_window_named(pdn, true, win_name, false)) { in spapr_tce_unset_window()
2229 pr_err("%s: The existing DDW removal failed for node %pOF\n", __func__, pdn); in spapr_tce_unset_window()
2236 if (window->device == pdn) { in spapr_tce_unset_window()
2256 fpdn->pdn = pdn; in spapr_tce_unset_window()
2270 struct device_node *pdn; in spapr_tce_take_ownership() local
2280 pdn = pci_dma_find(dn, NULL); in spapr_tce_take_ownership()
2281 if (!pdn || !PCI_DN(pdn)) { /* Niether of 32s|64-bit exist! */ in spapr_tce_take_ownership()
2282 dev_warn(&pdev->dev, "No dma-windows exist for the node %pOF\n", pdn); in spapr_tce_take_ownership()
2296 if (remove_dynamic_dma_windows(pdev, pdn)) { in spapr_tce_take_ownership()
2297 dev_warn(&pdev->dev, "The existing DDW removal failed for node %pOF\n", pdn); in spapr_tce_take_ownership()
2306 remove_dma_window_named(pdn, true, "ibm,dma-window", true); in spapr_tce_take_ownership()
2477 struct device_node *pdn, *dn = pdev->dev.of_node; in pSeries_pci_device_group() local
2481 pdn = pci_dma_find(dn, NULL); in pSeries_pci_device_group()
2482 if (!pdn || !PCI_DN(pdn)) in pSeries_pci_device_group()
2485 pci = PCI_DN(pdn); in pSeries_pci_device_group()