Lines Matching refs:pdn
843 struct device_node *dn, *pdn; in pci_dma_bus_setup_pSeriesLP() local
852 pdn = pci_dma_find(dn, &prop); in pci_dma_bus_setup_pSeriesLP()
863 if (!pdn) { in pci_dma_bus_setup_pSeriesLP()
868 ppci = PCI_DN(pdn); in pci_dma_bus_setup_pSeriesLP()
871 pdn, ppci->table_group); in pci_dma_bus_setup_pSeriesLP()
995 static void copy_property(struct device_node *pdn, const char *from, const char *to) in copy_property() argument
999 src = of_find_property(pdn, from, NULL); in copy_property()
1013 if (of_add_property(pdn, dst)) { in copy_property()
1014 pr_err("Unable to add DMA window property for %pOF", pdn); in copy_property()
1063 static bool find_existing_ddw(struct device_node *pdn, u64 *dma_addr, int *window_shift, in find_existing_ddw() argument
1073 if (window->device == pdn) { in find_existing_ddw()
1087 static struct dma_win *ddw_list_new_entry(struct device_node *pdn, in ddw_list_new_entry() argument
1096 window->device = pdn; in ddw_list_new_entry()
1106 struct device_node *pdn; in find_existing_ddw_windows_named() local
1110 for_each_node_with_property(pdn, name) { in find_existing_ddw_windows_named()
1111 dma64 = of_get_property(pdn, name, &len); in find_existing_ddw_windows_named()
1113 remove_dma_window_named(pdn, true, name, true); in find_existing_ddw_windows_named()
1123 window = ddw_list_new_entry(pdn, dma64); in find_existing_ddw_windows_named()
1125 of_node_put(pdn); in find_existing_ddw_windows_named()
1188 struct pci_dn *pdn; in query_ddw() local
1211 pdn = PCI_DN(dn); in query_ddw()
1212 buid = pdn->phb->buid; in query_ddw()
1213 cfg_addr = ((pdn->busno << 16) | (pdn->devfn << 8)); in query_ddw()
1247 struct pci_dn *pdn; in create_ddw() local
1259 pdn = PCI_DN(dn); in create_ddw()
1260 buid = pdn->phb->buid; in create_ddw()
1261 cfg_addr = ((pdn->busno << 16) | (pdn->devfn << 8)); in create_ddw()
1280 struct device_node *pdn; member
1311 struct pci_dn *pdn; in reset_dma_window() local
1318 pdn = PCI_DN(dn); in reset_dma_window()
1319 buid = pdn->phb->buid; in reset_dma_window()
1320 cfg_addr = (pdn->busno << 16) | (pdn->devfn << 8); in reset_dma_window()
1343 struct pci_dn *pdn; in limited_dma_window() local
1363 pdn = PCI_DN(dn); in limited_dma_window()
1364 buid = pdn->phb->buid; in limited_dma_window()
1365 cfg_addr = (pdn->busno << 16) | (pdn->devfn << 8); in limited_dma_window()
1446 static bool enable_ddw(struct pci_dev *dev, struct device_node *pdn, u64 dma_mask) in enable_ddw() argument
1463 struct pci_dn *pci = PCI_DN(pdn); in enable_ddw()
1475 if (find_existing_ddw(pdn, &dev->dev.archdata.dma_offset, &len, &direct_mapping)) in enable_ddw()
1486 if (fpdn->pdn == pdn) in enable_ddw()
1497 ret = of_property_read_u32_array(pdn, "ibm,ddw-applicable", in enable_ddw()
1509 ret = query_ddw(dev, ddw_avail, &query, pdn); in enable_ddw()
1520 if (limited_dma_window(dev, pdn)) in enable_ddw()
1543 default_win = of_find_property(pdn, "ibm,dma-window", NULL); in enable_ddw()
1547 reset_win_ext = ddw_read_ext(pdn, DDW_EXT_RESET_DMA_WIN, NULL); in enable_ddw()
1551 remove_dma_window(pdn, ddw_avail, default_win, true); in enable_ddw()
1555 ret = query_ddw(dev, ddw_avail, &query, pdn); in enable_ddw()
1656 ret = of_add_property(pdn, win64); in enable_ddw()
1659 pdn, ret); in enable_ddw()
1663 window = ddw_list_new_entry(pdn, win64->value); in enable_ddw()
1678 clean_dma_window(pdn, win64->value); in enable_ddw()
1731 if (!of_find_property(pdn, "ibm,dma-window-saved", NULL)) in enable_ddw()
1732 copy_property(pdn, "ibm,dma-window", "ibm,dma-window-saved"); in enable_ddw()
1733 of_remove_property(pdn, default_win); in enable_ddw()
1734 dev_info(&dev->dev, "Removed default DMA window for %pOF\n", pdn); in enable_ddw()
1748 of_remove_property(pdn, win64); in enable_ddw()
1757 __remove_dma_window(pdn, ddw_avail, create.liobn); in enable_ddw()
1761 reset_dma_window(dev, pdn); in enable_ddw()
1766 fpdn->pdn = pdn; in enable_ddw()
1803 struct device_node *pdn, in spapr_tce_init_table_group() argument
1806 struct iommu_table_group *table_group = PCI_DN(pdn)->table_group; in spapr_tce_init_table_group()
1824 if (!of_find_property(pdn, "ibm,dma-window", NULL)) in spapr_tce_init_table_group()
1827 ret = of_property_read_u32_array(pdn, "ibm,ddw-applicable", in spapr_tce_init_table_group()
1834 ret = query_ddw(pdev, ddw_avail, &query, pdn); in spapr_tce_init_table_group()
1852 struct device_node *pdn, *dn; in pci_dma_dev_setup_pSeriesLP() local
1868 pdn = pci_dma_find(dn, &prop); in pci_dma_dev_setup_pSeriesLP()
1869 if (!pdn || !PCI_DN(pdn)) { in pci_dma_dev_setup_pSeriesLP()
1875 pr_debug(" parent is %pOF\n", pdn); in pci_dma_dev_setup_pSeriesLP()
1877 pci = PCI_DN(pdn); in pci_dma_dev_setup_pSeriesLP()
1897 spapr_tce_init_table_group(dev, pdn, prop); in pci_dma_dev_setup_pSeriesLP()
1905 struct device_node *dn = pci_device_to_OF_node(pdev), *pdn; in iommu_bypass_supported_pSeriesLP() local
1922 pdn = pci_dma_find(dn, NULL); in iommu_bypass_supported_pSeriesLP()
1923 if (pdn && PCI_DN(pdn)) in iommu_bypass_supported_pSeriesLP()
1924 return enable_ddw(pdev, pdn, dma_mask); in iommu_bypass_supported_pSeriesLP()
1962 static void restore_default_dma_window(struct pci_dev *pdev, struct device_node *pdn) in restore_default_dma_window() argument
1964 reset_dma_window(pdev, pdn); in restore_default_dma_window()
1965 copy_property(pdn, "ibm,dma-window-saved", "ibm,dma-window"); in restore_default_dma_window()
1968 static long remove_dynamic_dma_windows(struct pci_dev *pdev, struct device_node *pdn) in remove_dynamic_dma_windows() argument
1970 struct pci_dn *pci = PCI_DN(pdn); in remove_dynamic_dma_windows()
1975 if (find_existing_ddw(pdn, &pdev->dev.archdata.dma_offset, &len, &direct_mapping)) { in remove_dynamic_dma_windows()
1976 remove_dma_window_named(pdn, true, direct_mapping ? in remove_dynamic_dma_windows()
1992 if (window->device == pdn) { in remove_dynamic_dma_windows()
2010 struct device_node *pdn; in pseries_setup_default_iommu_config() local
2014 pdn = pci_dma_find_parent_node(pdev, table_group); in pseries_setup_default_iommu_config()
2015 if (!pdn || !PCI_DN(pdn)) { in pseries_setup_default_iommu_config()
2016 dev_warn(&pdev->dev, "No table_group configured for the node %pOF\n", pdn); in pseries_setup_default_iommu_config()
2019 pci = PCI_DN(pdn); in pseries_setup_default_iommu_config()
2027 restore_default_dma_window(pdev, pdn); in pseries_setup_default_iommu_config()
2029 default_prop = of_get_property(pdn, "ibm,dma-window", NULL); in pseries_setup_default_iommu_config()
2030 of_parse_dma_window(pdn, default_prop, &liobn, &offset, &size); in pseries_setup_default_iommu_config()
2071 struct device_node *pdn; in spapr_tce_create_table() local
2089 pdn = pci_dma_find_parent_node(pdev, table_group); in spapr_tce_create_table()
2090 if (!pdn || !PCI_DN(pdn)) { /* Niether of 32s|64-bit exist! */ in spapr_tce_create_table()
2091 dev_warn(&pdev->dev, "No dma-windows exist for the node %pOF\n", pdn); in spapr_tce_create_table()
2094 pci = PCI_DN(pdn); in spapr_tce_create_table()
2098 if (fpdn->pdn == pdn) { in spapr_tce_create_table()
2099 dev_info(&pdev->dev, "%pOF in failed DDW device list\n", pdn); in spapr_tce_create_table()
2114 if (find_existing_ddw(pdn, &pdev->dev.archdata.dma_offset, &len, in spapr_tce_create_table()
2116 dev_warn(&pdev->dev, "%pOF: 64-bit window already present.", pdn); in spapr_tce_create_table()
2124 default_prop = of_get_property(pdn, "ibm,dma-window", NULL); in spapr_tce_create_table()
2126 if (find_existing_ddw(pdn, &pdev->dev.archdata.dma_offset, &len, in spapr_tce_create_table()
2129 pdn); in spapr_tce_create_table()
2134 restore_default_dma_window(pdev, pdn); in spapr_tce_create_table()
2136 default_prop = of_get_property(pdn, "ibm,dma-window", NULL); in spapr_tce_create_table()
2137 of_parse_dma_window(pdn, default_prop, &liobn, &offset, &size); in spapr_tce_create_table()
2156 ret = of_property_read_u32_array(pdn, "ibm,ddw-applicable", in spapr_tce_create_table()
2164 pr_err("%s: Calling query %pOF\n", __func__, pdn); in spapr_tce_create_table()
2165 ret = query_ddw(pdev, ddw_avail, &query, pdn); in spapr_tce_create_table()
2180 pr_err("%s: Create ddw failed %pOF\n", __func__, pdn); in spapr_tce_create_table()
2189 ret = of_add_property(pdn, win64); in spapr_tce_create_table()
2191 dev_err(&pdev->dev, "unable to add DMA window property for %pOF: %ld", pdn, ret); in spapr_tce_create_table()
2196 window = ddw_list_new_entry(pdn, win64->value); in spapr_tce_create_table()
2231 of_remove_property(pdn, win64); in spapr_tce_create_table()
2237 __remove_dma_window(pdn, ddw_avail, create.liobn); in spapr_tce_create_table()
2243 fpdn->pdn = pdn; in spapr_tce_create_table()
2278 struct device_node *dn = pci_device_to_OF_node(pdev), *pdn; in spapr_tce_unset_window() local
2295 pdn = pci_dma_find(dn, NULL); in spapr_tce_unset_window()
2296 if (!pdn || !PCI_DN(pdn)) { /* Niether of 32s|64-bit exist! */ in spapr_tce_unset_window()
2297 dev_warn(&pdev->dev, "No dma-windows exist for the node %pOF\n", pdn); in spapr_tce_unset_window()
2302 if (remove_dma_window_named(pdn, true, win_name, false)) { in spapr_tce_unset_window()
2303 pr_err("%s: The existing DDW removal failed for node %pOF\n", __func__, pdn); in spapr_tce_unset_window()
2310 if (window->device == pdn) { in spapr_tce_unset_window()
2330 fpdn->pdn = pdn; in spapr_tce_unset_window()
2344 struct device_node *pdn; in spapr_tce_take_ownership() local
2354 pdn = pci_dma_find(dn, NULL); in spapr_tce_take_ownership()
2355 if (!pdn || !PCI_DN(pdn)) { /* Niether of 32s|64-bit exist! */ in spapr_tce_take_ownership()
2356 dev_warn(&pdev->dev, "No dma-windows exist for the node %pOF\n", pdn); in spapr_tce_take_ownership()
2370 if (remove_dynamic_dma_windows(pdev, pdn)) { in spapr_tce_take_ownership()
2371 dev_warn(&pdev->dev, "The existing DDW removal failed for node %pOF\n", pdn); in spapr_tce_take_ownership()
2380 remove_dma_window_named(pdn, true, "ibm,dma-window", true); in spapr_tce_take_ownership()
2558 struct device_node *pdn, *dn = pdev->dev.of_node; in pSeries_pci_device_group() local
2562 pdn = pci_dma_find(dn, NULL); in pSeries_pci_device_group()
2563 if (!pdn || !PCI_DN(pdn)) in pSeries_pci_device_group()
2566 pci = PCI_DN(pdn); in pSeries_pci_device_group()