Lines Matching defs:uioinfo
33 struct uio_info *uioinfo;
50 uiomem = &priv->uioinfo->mem[priv->dmem_region_start];
53 while (!priv->refcnt && uiomem < &priv->uioinfo->mem[MAX_UIO_MAPS]) {
83 uiomem = &priv->uioinfo->mem[priv->dmem_region_start];
88 while (!priv->refcnt && uiomem < &priv->uioinfo->mem[MAX_UIO_MAPS]) {
150 struct uio_info *uioinfo = &pdata->uioinfo;
157 /* alloc uioinfo for one device */
158 uioinfo = kzalloc(sizeof(*uioinfo), GFP_KERNEL);
159 if (!uioinfo) {
164 uioinfo->name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "%pOFn",
166 uioinfo->version = "devicetree";
169 if (!uioinfo || !uioinfo->name || !uioinfo->version) {
174 if (uioinfo->handler || uioinfo->irqcontrol ||
175 uioinfo->irq_flags & IRQF_SHARED) {
189 priv->uioinfo = uioinfo;
195 if (!uioinfo->irq) {
202 uioinfo->irq = ret;
205 if (uioinfo->irq) {
206 struct irq_data *irq_data = irq_get_irq_data(uioinfo->irq);
218 irq_set_status_flags(uioinfo->irq, IRQ_DISABLE_UNLAZY);
222 uiomem = &uioinfo->mem[0];
230 if (uiomem >= &uioinfo->mem[MAX_UIO_MAPS]) {
243 priv->dmem_region_start = uiomem - &uioinfo->mem[0];
247 if (uiomem >= &uioinfo->mem[MAX_UIO_MAPS]) {
259 while (uiomem < &uioinfo->mem[MAX_UIO_MAPS]) {
273 uioinfo->handler = uio_dmem_genirq_handler;
274 uioinfo->irqcontrol = uio_dmem_genirq_irqcontrol;
275 uioinfo->open = uio_dmem_genirq_open;
276 uioinfo->release = uio_dmem_genirq_release;
277 uioinfo->priv = priv;
286 ret = uio_register_device(&pdev->dev, priv->uioinfo);
298 /* kfree uioinfo for OF */
300 kfree(uioinfo);
309 uio_unregister_device(priv->uioinfo);
312 priv->uioinfo->handler = NULL;
313 priv->uioinfo->irqcontrol = NULL;
315 /* kfree uioinfo for OF */
317 kfree(priv->uioinfo);