Lines Matching full:liodn
87 static int map_subwins(int liodn, struct fsl_dma_domain *dma_domain) in map_subwins() argument
97 ret = pamu_config_spaace(liodn, dma_domain->win_cnt, i, in map_subwins()
107 pr_debug("SPAACE configuration failed for liodn %d\n", in map_subwins()
108 liodn); in map_subwins()
117 static int map_win(int liodn, struct fsl_dma_domain *dma_domain) in map_win() argument
125 ret = pamu_config_ppaace(liodn, wnd_addr, in map_win()
133 pr_debug("PAACE configuration failed for liodn %d\n", liodn); in map_win()
138 /* Map the DMA window corresponding to the LIODN */
139 static int map_liodn(int liodn, struct fsl_dma_domain *dma_domain) in map_liodn() argument
142 return map_subwins(liodn, dma_domain); in map_liodn()
144 return map_win(liodn, dma_domain); in map_liodn()
147 /* Update window/subwindow mapping for the LIODN */
148 static int update_liodn(int liodn, struct fsl_dma_domain *dma_domain, u32 wnd_nr) in update_liodn() argument
156 ret = pamu_config_spaace(liodn, dma_domain->win_cnt, wnd_nr, in update_liodn()
165 pr_debug("Subwindow reconfiguration failed for liodn %d\n", in update_liodn()
166 liodn); in update_liodn()
172 ret = pamu_config_ppaace(liodn, wnd_addr, in update_liodn()
179 pr_debug("Window reconfiguration failed for liodn %d\n", in update_liodn()
180 liodn); in update_liodn()
188 static int update_liodn_stash(int liodn, struct fsl_dma_domain *dma_domain, in update_liodn_stash() argument
196 pr_debug("Windows not configured, stash destination update failed for liodn %d\n", in update_liodn_stash()
197 liodn); in update_liodn_stash()
203 ret = pamu_update_paace_stash(liodn, i, val); in update_liodn_stash()
205 pr_debug("Failed to update SPAACE %d field for liodn %d\n ", in update_liodn_stash()
206 i, liodn); in update_liodn_stash()
217 /* Set the geometry parameters for a LIODN */
218 static int pamu_set_liodn(int liodn, struct device *dev, in pamu_set_liodn() argument
240 ret = pamu_disable_liodn(liodn); in pamu_set_liodn()
242 ret = pamu_config_ppaace(liodn, window_addr, window_size, omi_index, in pamu_set_liodn()
247 pr_debug("PAACE configuration failed for liodn %d, win_cnt =%d\n", in pamu_set_liodn()
248 liodn, win_cnt); in pamu_set_liodn()
256 ret = pamu_disable_spaace(liodn, i); in pamu_set_liodn()
258 ret = pamu_config_spaace(liodn, win_cnt, i, in pamu_set_liodn()
265 pr_debug("SPAACE configuration failed for liodn %d\n", in pamu_set_liodn()
266 liodn); in pamu_set_liodn()
322 pamu_free_subwins(info->liodn); in remove_device_ref()
323 pamu_disable_liodn(info->liodn); in remove_device_ref()
345 static void attach_device(struct fsl_dma_domain *dma_domain, int liodn, struct device *dev) in attach_device() argument
365 info->liodn = liodn; in attach_device()
371 * the info for the first LIODN as all in attach_device()
438 ret = pamu_set_liodn(info->liodn, info->dev, dma_domain, in pamu_set_domain_geometry()
454 ret = update_liodn_stash(info->liodn, dma_domain, val); in update_domain_stash()
469 ret = update_liodn(info->liodn, dma_domain, wnd_nr); in update_domain_mapping()
483 ret = pamu_disable_liodn(info->liodn); in disable_domain_win()
487 ret = pamu_disable_spaace(info->liodn, wnd_nr); in disable_domain_win()
596 * Attach the LIODN to the DMA domain and configure the geometry
600 struct device *dev, const u32 *liodn, in handle_attach_device() argument
610 /* Ensure that LIODN value is valid */ in handle_attach_device()
611 if (liodn[i] >= PAACE_NUMBER_ENTRIES) { in handle_attach_device()
612 pr_debug("Invalid liodn %d, attach device failed for %pOF\n", in handle_attach_device()
613 liodn[i], dev->of_node); in handle_attach_device()
618 attach_device(dma_domain, liodn[i], dev); in handle_attach_device()
622 * the LIODN. in handle_attach_device()
627 ret = pamu_set_liodn(liodn[i], dev, dma_domain, in handle_attach_device()
634 * the LIODN. in handle_attach_device()
636 ret = map_liodn(liodn[i], dma_domain); in handle_attach_device()
651 const u32 *liodn; in fsl_pamu_attach_device() local
658 * Use LIODN of the PCI controller while attaching a in fsl_pamu_attach_device()
666 * so we can get the LIODN programmed by in fsl_pamu_attach_device()
672 liodn = of_get_property(dev->of_node, "fsl,liodn", &len); in fsl_pamu_attach_device()
673 if (liodn) { in fsl_pamu_attach_device()
675 ret = handle_attach_device(dma_domain, dev, liodn, liodn_cnt); in fsl_pamu_attach_device()
677 pr_debug("missing fsl,liodn property at %pOF\n", dev->of_node); in fsl_pamu_attach_device()
694 * Use LIODN of the PCI controller while detaching a in fsl_pamu_detach_device()
702 * so we can get the LIODN programmed by in fsl_pamu_detach_device()
708 prop = of_get_property(dev->of_node, "fsl,liodn", &len); in fsl_pamu_detach_device()
712 pr_debug("missing fsl,liodn property at %pOF\n", dev->of_node); in fsl_pamu_detach_device()
794 ret = (enable) ? pamu_enable_liodn(info->liodn) : in configure_domain_dma_state()
795 pamu_disable_liodn(info->liodn); in configure_domain_dma_state()
797 pr_debug("Unable to set dma state for liodn %d", in configure_domain_dma_state()
798 info->liodn); in configure_domain_dma_state()
1013 else if (of_get_property(dev->of_node, "fsl,liodn", &len)) in fsl_pamu_device_group()