Lines Matching refs:dpio_dev
55 static int dpaa2_dpio_get_cluster_sdest(struct fsl_mc_device *dpio_dev, int cpu) in dpaa2_dpio_get_cluster_sdest() argument
68 dev_err(&dpio_dev->dev, "unknown SoC version\n"); in dpaa2_dpio_get_cluster_sdest()
83 static void unregister_dpio_irq_handlers(struct fsl_mc_device *dpio_dev) in unregister_dpio_irq_handlers() argument
87 irq = dpio_dev->irqs[0]; in unregister_dpio_irq_handlers()
93 static int register_dpio_irq_handlers(struct fsl_mc_device *dpio_dev, int cpu) in register_dpio_irq_handlers() argument
98 irq = dpio_dev->irqs[0]; in register_dpio_irq_handlers()
99 error = devm_request_irq(&dpio_dev->dev, 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()
114 dev_err(&dpio_dev->dev, in register_dpio_irq_handlers()
121 static int dpaa2_dpio_probe(struct fsl_mc_device *dpio_dev) in dpaa2_dpio_probe() argument
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()
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()
187 sdest = dpaa2_dpio_get_cluster_sdest(dpio_dev, desc.cpu); 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()
227 err = fsl_mc_allocate_irqs(dpio_dev); in dpaa2_dpio_probe()
240 err = register_dpio_irq_handlers(dpio_dev, desc.cpu); in dpaa2_dpio_probe()
247 dpio_close(dpio_dev->mc_io, 0, dpio_dev->mc_handle); in dpaa2_dpio_probe()
252 unregister_dpio_irq_handlers(dpio_dev); in dpaa2_dpio_probe()
254 fsl_mc_free_irqs(dpio_dev); 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()
267 static void dpio_teardown_irqs(struct fsl_mc_device *dpio_dev) in dpio_teardown_irqs() argument
269 unregister_dpio_irq_handlers(dpio_dev); in dpio_teardown_irqs()
270 fsl_mc_free_irqs(dpio_dev); in dpio_teardown_irqs()
273 static void dpaa2_dpio_remove(struct fsl_mc_device *dpio_dev) in dpaa2_dpio_remove() argument
279 dev = &dpio_dev->dev; in dpaa2_dpio_remove()
285 dpio_teardown_irqs(dpio_dev); 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()