Lines Matching +full:qoriq +full:- +full:mc

1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
3 * Copyright 2014-2016 Freescale Semiconductor Inc.
13 #include <linux/dma-mapping.h>
18 #include <linux/fsl/mc.h>
19 #include <soc/fsl/dpaa2-io.h>
21 #include "qbman-portal.h"
23 #include "dpio-cmd.h"
36 {.family = "QorIQ LS1088A"},
41 {.family = "QorIQ LS2080A"},
46 {.family = "QorIQ LS2088A"},
51 {.family = "QorIQ LX2160A"},
68 dev_err(&dpio_dev->dev, "unknown SoC version\n"); in dpaa2_dpio_get_cluster_sdest()
69 return -1; in dpaa2_dpio_get_cluster_sdest()
80 return dpaa2_io_irq(priv->io); in dpio_irq_handler()
87 irq = dpio_dev->irqs[0]; in unregister_dpio_irq_handlers()
90 irq_set_affinity_hint(irq->virq, NULL); in unregister_dpio_irq_handlers()
98 irq = dpio_dev->irqs[0]; in register_dpio_irq_handlers()
99 error = devm_request_irq(&dpio_dev->dev, in register_dpio_irq_handlers()
100 irq->virq, in register_dpio_irq_handlers()
103 dev_name(&dpio_dev->dev), in register_dpio_irq_handlers()
104 &dpio_dev->dev); in register_dpio_irq_handlers()
106 dev_err(&dpio_dev->dev, in register_dpio_irq_handlers()
113 if (irq_set_affinity_hint(irq->virq, cpumask_of(cpu))) in register_dpio_irq_handlers()
114 dev_err(&dpio_dev->dev, in register_dpio_irq_handlers()
116 irq->virq, cpu); in register_dpio_irq_handlers()
126 int err = -ENOMEM; in dpaa2_dpio_probe()
127 struct device *dev = &dpio_dev->dev; in dpaa2_dpio_probe()
137 err = fsl_mc_portal_allocate(dpio_dev, 0, &dpio_dev->mc_io); in dpaa2_dpio_probe()
139 dev_dbg(dev, "MC portal allocation failed\n"); in dpaa2_dpio_probe()
140 err = -EPROBE_DEFER; in dpaa2_dpio_probe()
144 err = dpio_open(dpio_dev->mc_io, 0, dpio_dev->obj_desc.id, in dpaa2_dpio_probe()
145 &dpio_dev->mc_handle); in dpaa2_dpio_probe()
151 err = dpio_reset(dpio_dev->mc_io, 0, dpio_dev->mc_handle); in dpaa2_dpio_probe()
157 err = dpio_get_attributes(dpio_dev->mc_io, 0, dpio_dev->mc_handle, in dpaa2_dpio_probe()
166 err = dpio_enable(dpio_dev->mc_io, 0, dpio_dev->mc_handle); in dpaa2_dpio_probe()
175 desc.dpio_id = dpio_dev->obj_desc.id; in dpaa2_dpio_probe()
181 err = -ERANGE; in dpaa2_dpio_probe()
189 err = dpio_set_stashing_destination(dpio_dev->mc_io, 0, in dpaa2_dpio_probe()
190 dpio_dev->mc_handle, in dpaa2_dpio_probe()
197 if (dpio_dev->obj_desc.region_count < 3) { in dpaa2_dpio_probe()
204 desc.regs_cena = devm_memremap(dev, dpio_dev->regions[1].start, in dpaa2_dpio_probe()
205 resource_size(&dpio_dev->regions[1]), in dpaa2_dpio_probe()
208 desc.regs_cena = devm_memremap(dev, dpio_dev->regions[2].start, in dpaa2_dpio_probe()
209 resource_size(&dpio_dev->regions[2]), in dpaa2_dpio_probe()
219 desc.regs_cinh = devm_ioremap(dev, dpio_dev->regions[1].start, in dpaa2_dpio_probe()
220 resource_size(&dpio_dev->regions[1])); in dpaa2_dpio_probe()
222 err = -ENOMEM; in dpaa2_dpio_probe()
233 priv->io = dpaa2_io_create(&desc, dev); in dpaa2_dpio_probe()
234 if (!priv->io) { in dpaa2_dpio_probe()
236 err = -ENOMEM; in dpaa2_dpio_probe()
247 dpio_close(dpio_dev->mc_io, 0, dpio_dev->mc_handle); in dpaa2_dpio_probe()
256 dpio_disable(dpio_dev->mc_io, 0, dpio_dev->mc_handle); in dpaa2_dpio_probe()
259 dpio_close(dpio_dev->mc_io, 0, dpio_dev->mc_handle); in dpaa2_dpio_probe()
261 fsl_mc_portal_free(dpio_dev->mc_io); in dpaa2_dpio_probe()
279 dev = &dpio_dev->dev; in dpaa2_dpio_remove()
281 cpu = dpaa2_io_get_cpu(priv->io); in dpaa2_dpio_remove()
283 dpaa2_io_down(priv->io); in dpaa2_dpio_remove()
289 err = dpio_open(dpio_dev->mc_io, 0, dpio_dev->obj_desc.id, in dpaa2_dpio_remove()
290 &dpio_dev->mc_handle); in dpaa2_dpio_remove()
296 dpio_disable(dpio_dev->mc_io, 0, dpio_dev->mc_handle); in dpaa2_dpio_remove()
298 dpio_close(dpio_dev->mc_io, 0, dpio_dev->mc_handle); in dpaa2_dpio_remove()
301 fsl_mc_portal_free(dpio_dev->mc_io); in dpaa2_dpio_remove()
325 return -ENOMEM; in dpio_driver_init()