its_dev 104 drivers/irqchip/irq-gic-v3-its.c u64 (*get_msi_base)(struct its_device *its_dev); its_dev 194 drivers/irqchip/irq-gic-v3-its.c static struct its_collection *dev_event_to_col(struct its_device *its_dev, its_dev 197 drivers/irqchip/irq-gic-v3-its.c struct its_node *its = its_dev->its; its_dev 199 drivers/irqchip/irq-gic-v3-its.c return its->collections + its_dev->event_map.col_map[event]; its_dev 1051 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev = irq_data_get_irq_chip_data(d); its_dev 1052 drivers/irqchip/irq-gic-v3-its.c return d->hwirq - its_dev->event_map.lpi_base; its_dev 1062 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev = irq_data_get_irq_chip_data(d); its_dev 1066 drivers/irqchip/irq-gic-v3-its.c va = page_address(its_dev->event_map.vm->vprop_page); its_dev 1067 drivers/irqchip/irq-gic-v3-its.c map = &its_dev->event_map.vlpi_maps[event]; its_dev 1095 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev = irq_data_get_irq_chip_data(d); its_dev 1098 drivers/irqchip/irq-gic-v3-its.c its_send_inv(its_dev, its_get_event_id(d)); its_dev 1103 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev = irq_data_get_irq_chip_data(d); its_dev 1106 drivers/irqchip/irq-gic-v3-its.c if (its_dev->event_map.vlpi_maps[event].db_enabled == enable) its_dev 1109 drivers/irqchip/irq-gic-v3-its.c its_dev->event_map.vlpi_maps[event].db_enabled = enable; its_dev 1121 drivers/irqchip/irq-gic-v3-its.c its_send_vmovi(its_dev, event); its_dev 1145 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev = irq_data_get_irq_chip_data(d); its_dev 1154 drivers/irqchip/irq-gic-v3-its.c if (its_dev->its->flags & ITS_FLAGS_WORKAROUND_CAVIUM_23144) { its_dev 1155 drivers/irqchip/irq-gic-v3-its.c if (its_dev->its->numa_node >= 0) { its_dev 1156 drivers/irqchip/irq-gic-v3-its.c cpu_mask = cpumask_of_node(its_dev->its->numa_node); its_dev 1168 drivers/irqchip/irq-gic-v3-its.c if (cpu != its_dev->event_map.col_map[id]) { its_dev 1169 drivers/irqchip/irq-gic-v3-its.c target_col = &its_dev->its->collections[cpu]; its_dev 1170 drivers/irqchip/irq-gic-v3-its.c its_send_movi(its_dev, target_col, id); its_dev 1171 drivers/irqchip/irq-gic-v3-its.c its_dev->event_map.col_map[id] = cpu; its_dev 1178 drivers/irqchip/irq-gic-v3-its.c static u64 its_irq_get_msi_base(struct its_device *its_dev) its_dev 1180 drivers/irqchip/irq-gic-v3-its.c struct its_node *its = its_dev->its; its_dev 1187 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev = irq_data_get_irq_chip_data(d); its_dev 1191 drivers/irqchip/irq-gic-v3-its.c its = its_dev->its; its_dev 1192 drivers/irqchip/irq-gic-v3-its.c addr = its->get_msi_base(its_dev); its_dev 1205 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev = irq_data_get_irq_chip_data(d); its_dev 1212 drivers/irqchip/irq-gic-v3-its.c its_send_int(its_dev, event); its_dev 1214 drivers/irqchip/irq-gic-v3-its.c its_send_clear(its_dev, event); its_dev 1275 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev = irq_data_get_irq_chip_data(d); its_dev 1282 drivers/irqchip/irq-gic-v3-its.c mutex_lock(&its_dev->event_map.vlpi_lock); its_dev 1284 drivers/irqchip/irq-gic-v3-its.c if (!its_dev->event_map.vm) { its_dev 1287 drivers/irqchip/irq-gic-v3-its.c maps = kcalloc(its_dev->event_map.nr_lpis, sizeof(*maps), its_dev 1294 drivers/irqchip/irq-gic-v3-its.c its_dev->event_map.vm = info->map->vm; its_dev 1295 drivers/irqchip/irq-gic-v3-its.c its_dev->event_map.vlpi_maps = maps; its_dev 1296 drivers/irqchip/irq-gic-v3-its.c } else if (its_dev->event_map.vm != info->map->vm) { its_dev 1302 drivers/irqchip/irq-gic-v3-its.c its_dev->event_map.vlpi_maps[event] = *info->map; its_dev 1306 drivers/irqchip/irq-gic-v3-its.c its_send_vmovi(its_dev, event); its_dev 1309 drivers/irqchip/irq-gic-v3-its.c its_map_vm(its_dev->its, info->map->vm); its_dev 1321 drivers/irqchip/irq-gic-v3-its.c its_send_discard(its_dev, event); its_dev 1324 drivers/irqchip/irq-gic-v3-its.c its_send_vmapti(its_dev, event); its_dev 1327 drivers/irqchip/irq-gic-v3-its.c its_dev->event_map.nr_vlpis++; its_dev 1331 drivers/irqchip/irq-gic-v3-its.c mutex_unlock(&its_dev->event_map.vlpi_lock); its_dev 1337 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev = irq_data_get_irq_chip_data(d); its_dev 1341 drivers/irqchip/irq-gic-v3-its.c mutex_lock(&its_dev->event_map.vlpi_lock); its_dev 1343 drivers/irqchip/irq-gic-v3-its.c if (!its_dev->event_map.vm || its_dev 1344 drivers/irqchip/irq-gic-v3-its.c !its_dev->event_map.vlpi_maps[event].vm) { its_dev 1350 drivers/irqchip/irq-gic-v3-its.c *info->map = its_dev->event_map.vlpi_maps[event]; its_dev 1353 drivers/irqchip/irq-gic-v3-its.c mutex_unlock(&its_dev->event_map.vlpi_lock); its_dev 1359 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev = irq_data_get_irq_chip_data(d); its_dev 1363 drivers/irqchip/irq-gic-v3-its.c mutex_lock(&its_dev->event_map.vlpi_lock); its_dev 1365 drivers/irqchip/irq-gic-v3-its.c if (!its_dev->event_map.vm || !irqd_is_forwarded_to_vcpu(d)) { its_dev 1371 drivers/irqchip/irq-gic-v3-its.c its_send_discard(its_dev, event); its_dev 1375 drivers/irqchip/irq-gic-v3-its.c its_send_mapti(its_dev, d->hwirq, event); its_dev 1381 drivers/irqchip/irq-gic-v3-its.c its_unmap_vm(its_dev->its, its_dev->event_map.vm); its_dev 1387 drivers/irqchip/irq-gic-v3-its.c if (!--its_dev->event_map.nr_vlpis) { its_dev 1388 drivers/irqchip/irq-gic-v3-its.c its_dev->event_map.vm = NULL; its_dev 1389 drivers/irqchip/irq-gic-v3-its.c kfree(its_dev->event_map.vlpi_maps); its_dev 1393 drivers/irqchip/irq-gic-v3-its.c mutex_unlock(&its_dev->event_map.vlpi_lock); its_dev 1399 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev = irq_data_get_irq_chip_data(d); its_dev 1401 drivers/irqchip/irq-gic-v3-its.c if (!its_dev->event_map.vm || !irqd_is_forwarded_to_vcpu(d)) its_dev 1415 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev = irq_data_get_irq_chip_data(d); its_dev 1419 drivers/irqchip/irq-gic-v3-its.c if (!its_dev->its->is_v4) its_dev 2284 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev = NULL, *tmp; its_dev 2291 drivers/irqchip/irq-gic-v3-its.c its_dev = tmp; its_dev 2298 drivers/irqchip/irq-gic-v3-its.c return its_dev; its_dev 2467 drivers/irqchip/irq-gic-v3-its.c static void its_free_device(struct its_device *its_dev) its_dev 2471 drivers/irqchip/irq-gic-v3-its.c raw_spin_lock_irqsave(&its_dev->its->lock, flags); its_dev 2472 drivers/irqchip/irq-gic-v3-its.c list_del(&its_dev->entry); its_dev 2473 drivers/irqchip/irq-gic-v3-its.c raw_spin_unlock_irqrestore(&its_dev->its->lock, flags); its_dev 2474 drivers/irqchip/irq-gic-v3-its.c kfree(its_dev->itt); its_dev 2475 drivers/irqchip/irq-gic-v3-its.c kfree(its_dev); its_dev 2498 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev; its_dev 2525 drivers/irqchip/irq-gic-v3-its.c its_dev = its_find_device(its, dev_id); its_dev 2526 drivers/irqchip/irq-gic-v3-its.c if (its_dev) { its_dev 2532 drivers/irqchip/irq-gic-v3-its.c its_dev->shared = true; its_dev 2537 drivers/irqchip/irq-gic-v3-its.c its_dev = its_create_device(its, dev_id, nvec, true); its_dev 2538 drivers/irqchip/irq-gic-v3-its.c if (!its_dev) { its_dev 2546 drivers/irqchip/irq-gic-v3-its.c info->scratchpad[0].ptr = its_dev; its_dev 2582 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev = info->scratchpad[0].ptr; its_dev 2583 drivers/irqchip/irq-gic-v3-its.c struct its_node *its = its_dev->its; its_dev 2588 drivers/irqchip/irq-gic-v3-its.c err = its_alloc_device_irq(its_dev, nr_irqs, &hwirq); its_dev 2592 drivers/irqchip/irq-gic-v3-its.c err = iommu_dma_prepare_msi(info->desc, its->get_msi_base(its_dev)); its_dev 2602 drivers/irqchip/irq-gic-v3-its.c hwirq + i, &its_irq_chip, its_dev); its_dev 2605 drivers/irqchip/irq-gic-v3-its.c (int)(hwirq + i - its_dev->event_map.lpi_base), its_dev 2615 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev = irq_data_get_irq_chip_data(d); its_dev 2621 drivers/irqchip/irq-gic-v3-its.c if (its_dev->its->numa_node >= 0) its_dev 2622 drivers/irqchip/irq-gic-v3-its.c cpu_mask = cpumask_of_node(its_dev->its->numa_node); its_dev 2627 drivers/irqchip/irq-gic-v3-its.c if (its_dev->its->flags & ITS_FLAGS_WORKAROUND_CAVIUM_23144) its_dev 2633 drivers/irqchip/irq-gic-v3-its.c its_dev->event_map.col_map[event] = cpu; its_dev 2637 drivers/irqchip/irq-gic-v3-its.c its_send_mapti(its_dev, d->hwirq, event); its_dev 2644 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev = irq_data_get_irq_chip_data(d); its_dev 2648 drivers/irqchip/irq-gic-v3-its.c its_send_discard(its_dev, event); its_dev 2655 drivers/irqchip/irq-gic-v3-its.c struct its_device *its_dev = irq_data_get_irq_chip_data(d); its_dev 2656 drivers/irqchip/irq-gic-v3-its.c struct its_node *its = its_dev->its; its_dev 2659 drivers/irqchip/irq-gic-v3-its.c bitmap_release_region(its_dev->event_map.lpi_map, its_dev 2676 drivers/irqchip/irq-gic-v3-its.c if (!its_dev->shared && its_dev 2677 drivers/irqchip/irq-gic-v3-its.c bitmap_empty(its_dev->event_map.lpi_map, its_dev 2678 drivers/irqchip/irq-gic-v3-its.c its_dev->event_map.nr_lpis)) { its_dev 2679 drivers/irqchip/irq-gic-v3-its.c its_lpi_free(its_dev->event_map.lpi_map, its_dev 2680 drivers/irqchip/irq-gic-v3-its.c its_dev->event_map.lpi_base, its_dev 2681 drivers/irqchip/irq-gic-v3-its.c its_dev->event_map.nr_lpis); its_dev 2682 drivers/irqchip/irq-gic-v3-its.c kfree(its_dev->event_map.col_map); its_dev 2685 drivers/irqchip/irq-gic-v3-its.c its_send_mapd(its_dev, 0); its_dev 2686 drivers/irqchip/irq-gic-v3-its.c its_free_device(its_dev); its_dev 3250 drivers/irqchip/irq-gic-v3-its.c static u64 its_irq_get_msi_base_pre_its(struct its_device *its_dev) its_dev 3252 drivers/irqchip/irq-gic-v3-its.c struct its_node *its = its_dev->its; its_dev 3261 drivers/irqchip/irq-gic-v3-its.c return its->pre_its_base + (its_dev->device_id << 2);