Symbol: its_dev
sys/arm64/arm64/gicv3_its.c
1428
static struct its_dev *
sys/arm64/arm64/gicv3_its.c
1432
struct its_dev *its_dev = NULL;
sys/arm64/arm64/gicv3_its.c
1437
TAILQ_FOREACH(its_dev, &sc->sc_its_dev_list, entry) {
sys/arm64/arm64/gicv3_its.c
1438
if (its_dev->pci_dev == child)
sys/arm64/arm64/gicv3_its.c
1443
return (its_dev);
sys/arm64/arm64/gicv3_its.c
152
TAILQ_ENTRY(its_dev) entry;
sys/arm64/arm64/gicv3_its.c
1521
static struct its_dev *
sys/arm64/arm64/gicv3_its.c
1525
struct its_dev *its_dev;
sys/arm64/arm64/gicv3_its.c
1531
its_dev = its_device_find(dev, child);
sys/arm64/arm64/gicv3_its.c
1532
if (its_dev != NULL)
sys/arm64/arm64/gicv3_its.c
1533
return (its_dev);
sys/arm64/arm64/gicv3_its.c
1535
its_dev = malloc(sizeof(*its_dev), M_GICV3_ITS, M_NOWAIT | M_ZERO);
sys/arm64/arm64/gicv3_its.c
1536
if (its_dev == NULL)
sys/arm64/arm64/gicv3_its.c
1539
its_dev->pci_dev = child;
sys/arm64/arm64/gicv3_its.c
1540
its_dev->devid = its_get_devid(child);
sys/arm64/arm64/gicv3_its.c
1542
its_dev->lpis.lpi_busy = 0;
sys/arm64/arm64/gicv3_its.c
1543
its_dev->lpis.lpi_num = nvecs;
sys/arm64/arm64/gicv3_its.c
1544
its_dev->lpis.lpi_free = nvecs;
sys/arm64/arm64/gicv3_its.c
1546
if (!its_device_alloc(sc, its_dev->devid)) {
sys/arm64/arm64/gicv3_its.c
1547
free(its_dev, M_GICV3_ITS);
sys/arm64/arm64/gicv3_its.c
1553
free(its_dev, M_GICV3_ITS);
sys/arm64/arm64/gicv3_its.c
1556
its_dev->lpis.lpi_base = irq_base;
sys/arm64/arm64/gicv3_its.c
1566
its_dev->itt = contigmalloc_domainset(itt_size,
sys/arm64/arm64/gicv3_its.c
1570
if (its_dev->itt == NULL) {
sys/arm64/arm64/gicv3_its.c
1571
vmem_free(sc->sc_irq_alloc, its_dev->lpis.lpi_base, nvecs);
sys/arm64/arm64/gicv3_its.c
1572
free(its_dev, M_GICV3_ITS);
sys/arm64/arm64/gicv3_its.c
1578
cpu_dcache_wb_range(its_dev->itt, itt_size);
sys/arm64/arm64/gicv3_its.c
1581
TAILQ_INSERT_TAIL(&sc->sc_its_dev_list, its_dev, entry);
sys/arm64/arm64/gicv3_its.c
1585
its_cmd_mapd(dev, its_dev, 1);
sys/arm64/arm64/gicv3_its.c
1587
return (its_dev);
sys/arm64/arm64/gicv3_its.c
1591
its_device_release(device_t dev, struct its_dev *its_dev)
sys/arm64/arm64/gicv3_its.c
1595
KASSERT(its_dev->lpis.lpi_busy == 0,
sys/arm64/arm64/gicv3_its.c
1599
its_cmd_mapd(dev, its_dev, 0);
sys/arm64/arm64/gicv3_its.c
1605
TAILQ_REMOVE(&sc->sc_its_dev_list, its_dev, entry);
sys/arm64/arm64/gicv3_its.c
1609
KASSERT(its_dev->itt != NULL, ("Invalid ITT in valid ITS device"));
sys/arm64/arm64/gicv3_its.c
1610
free(its_dev->itt, M_GICV3_ITS);
sys/arm64/arm64/gicv3_its.c
1613
vmem_free(sc->sc_irq_alloc, its_dev->lpis.lpi_base,
sys/arm64/arm64/gicv3_its.c
1614
its_dev->lpis.lpi_num);
sys/arm64/arm64/gicv3_its.c
1616
free(its_dev, M_GICV3_ITS);
sys/arm64/arm64/gicv3_its.c
1672
struct its_dev *its_dev;
sys/arm64/arm64/gicv3_its.c
1676
its_dev = its_device_get(dev, child, count);
sys/arm64/arm64/gicv3_its.c
1677
if (its_dev == NULL)
sys/arm64/arm64/gicv3_its.c
1680
KASSERT(its_dev->lpis.lpi_free >= count,
sys/arm64/arm64/gicv3_its.c
1683
irq = its_dev->lpis.lpi_base + its_dev->lpis.lpi_num -
sys/arm64/arm64/gicv3_its.c
1684
its_dev->lpis.lpi_free;
sys/arm64/arm64/gicv3_its.c
1688
its_dev->lpis.lpi_free--;
sys/arm64/arm64/gicv3_its.c
1713
girq->gi_its_dev = its_dev;
sys/arm64/arm64/gicv3_its.c
1719
its_dev->lpis.lpi_busy += count;
sys/arm64/arm64/gicv3_its.c
172
struct its_dev *its_dev;
sys/arm64/arm64/gicv3_its.c
1731
struct its_dev *its_dev;
sys/arm64/arm64/gicv3_its.c
1734
its_dev = its_device_find(dev, child);
sys/arm64/arm64/gicv3_its.c
1736
KASSERT(its_dev != NULL,
sys/arm64/arm64/gicv3_its.c
1739
KASSERT(its_dev->lpis.lpi_busy >= count,
sys/arm64/arm64/gicv3_its.c
1742
its_dev->lpis.lpi_busy));
sys/arm64/arm64/gicv3_its.c
1751
its_dev->lpis.lpi_busy -= count;
sys/arm64/arm64/gicv3_its.c
1753
if (its_dev->lpis.lpi_busy == 0)
sys/arm64/arm64/gicv3_its.c
1754
its_device_release(dev, its_dev);
sys/arm64/arm64/gicv3_its.c
1765
struct its_dev *its_dev;
sys/arm64/arm64/gicv3_its.c
1769
its_dev = its_device_get(dev, child, nvecs);
sys/arm64/arm64/gicv3_its.c
1770
if (its_dev == NULL)
sys/arm64/arm64/gicv3_its.c
1773
KASSERT(its_dev->lpis.lpi_free > 0,
sys/arm64/arm64/gicv3_its.c
1776
irq = its_dev->lpis.lpi_base + its_dev->lpis.lpi_num -
sys/arm64/arm64/gicv3_its.c
1777
its_dev->lpis.lpi_free;
sys/arm64/arm64/gicv3_its.c
1782
girq->gi_id = its_dev->lpis.lpi_busy;
sys/arm64/arm64/gicv3_its.c
1783
girq->gi_its_dev = its_dev;
sys/arm64/arm64/gicv3_its.c
1785
its_dev->lpis.lpi_free--;
sys/arm64/arm64/gicv3_its.c
1786
its_dev->lpis.lpi_busy++;
sys/arm64/arm64/gicv3_its.c
1803
struct its_dev *its_dev;
sys/arm64/arm64/gicv3_its.c
1805
its_dev = its_device_find(dev, child);
sys/arm64/arm64/gicv3_its.c
1807
KASSERT(its_dev != NULL,
sys/arm64/arm64/gicv3_its.c
1810
KASSERT(its_dev->lpis.lpi_busy > 0,
sys/arm64/arm64/gicv3_its.c
1812
"were allocated: allocated %d", its_dev->lpis.lpi_busy));
sys/arm64/arm64/gicv3_its.c
1819
its_dev->lpis.lpi_busy--;
sys/arm64/arm64/gicv3_its.c
1821
if (its_dev->lpis.lpi_busy == 0)
sys/arm64/arm64/gicv3_its.c
1822
its_device_release(dev, its_dev);
sys/arm64/arm64/gicv3_its.c
187
struct its_dev *its_dev;
sys/arm64/arm64/gicv3_its.c
194
struct its_dev *its_dev;
sys/arm64/arm64/gicv3_its.c
200
struct its_dev *its_dev;
sys/arm64/arm64/gicv3_its.c
205
struct its_dev *its_dev;
sys/arm64/arm64/gicv3_its.c
2089
cmd_format_devid(cmd, desc->cmd_desc_movi.its_dev->devid);
sys/arm64/arm64/gicv3_its.c
2098
cmd_format_itt(cmd, vtophys(desc->cmd_desc_mapd.its_dev->itt));
sys/arm64/arm64/gicv3_its.c
2106
size = fls(desc->cmd_desc_mapd.its_dev->lpis.lpi_num);
sys/arm64/arm64/gicv3_its.c
2112
cmd_format_devid(cmd, desc->cmd_desc_mapd.its_dev->devid);
sys/arm64/arm64/gicv3_its.c
2125
cmd_format_devid(cmd, desc->cmd_desc_mapvi.its_dev->devid);
sys/arm64/arm64/gicv3_its.c
2133
cmd_format_devid(cmd, desc->cmd_desc_mapi.its_dev->devid);
sys/arm64/arm64/gicv3_its.c
2140
cmd_format_devid(cmd, desc->cmd_desc_inv.its_dev->devid);
sys/arm64/arm64/gicv3_its.c
2209
desc.cmd_desc_movi.its_dev = girq->gi_its_dev;
sys/arm64/arm64/gicv3_its.c
2246
desc.cmd_desc_mapvi.its_dev = girq->gi_its_dev;
sys/arm64/arm64/gicv3_its.c
2257
its_cmd_mapd(device_t dev, struct its_dev *its_dev, uint8_t valid)
sys/arm64/arm64/gicv3_its.c
2262
desc.cmd_desc_mapd.its_dev = its_dev;
sys/arm64/arm64/gicv3_its.c
2269
its_cmd_inv(device_t dev, struct its_dev *its_dev,
sys/arm64/arm64/gicv3_its.c
2282
desc.cmd_desc_inv.its_dev = its_dev;
sys/arm64/arm64/gicv3_its.c
246
struct its_dev *gi_its_dev;
sys/arm64/arm64/gicv3_its.c
283
TAILQ_HEAD(its_dev_list, its_dev) sc_its_dev_list;
sys/arm64/arm64/gicv3_its.c
373
static void its_cmd_mapd(device_t, struct its_dev *, uint8_t);
sys/arm64/arm64/gicv3_its.c
374
static void its_cmd_inv(device_t, struct its_dev *, struct gicv3_its_irqsrc *);
sys/arm64/arm64/gicv5_its.c
1017
girq->gi_its_dev = its_dev;
sys/arm64/arm64/gicv5_its.c
1022
gicv5_its_update_itt(sc, its_dev, girq, event_id + i);
sys/arm64/arm64/gicv5_its.c
1024
its_dev->lpis.lpi_busy += count;
sys/arm64/arm64/gicv5_its.c
1036
struct its_dev *its_dev;
sys/arm64/arm64/gicv5_its.c
1039
its_dev = its_device_find(&sc->its_dl, child);
sys/arm64/arm64/gicv5_its.c
1041
KASSERT(its_dev != NULL,
sys/arm64/arm64/gicv5_its.c
1043
KASSERT(its_dev->lpis.lpi_busy >= count,
sys/arm64/arm64/gicv5_its.c
1046
its_dev->lpis.lpi_busy));
sys/arm64/arm64/gicv5_its.c
1052
its_dev->lpis.lpi_busy -= count;
sys/arm64/arm64/gicv5_its.c
1063
struct its_dev *its_dev;
sys/arm64/arm64/gicv5_its.c
1068
its_dev = its_device_get(dev, &sc->its_dl, child, nvecs);
sys/arm64/arm64/gicv5_its.c
1069
if (its_dev == NULL)
sys/arm64/arm64/gicv5_its.c
1072
KASSERT(its_dev->lpis.lpi_free > 0, ("%s: No free LPIs", __func__));
sys/arm64/arm64/gicv5_its.c
1073
event_id = its_dev->lpis.lpi_num - its_dev->lpis.lpi_free;
sys/arm64/arm64/gicv5_its.c
1074
lpi = its_dev->lpis.lpi_base + event_id;
sys/arm64/arm64/gicv5_its.c
1079
girq->gi_its_dev = its_dev;
sys/arm64/arm64/gicv5_its.c
1081
its_dev->lpis.lpi_free--;
sys/arm64/arm64/gicv5_its.c
1082
its_dev->lpis.lpi_busy++;
sys/arm64/arm64/gicv5_its.c
1087
gicv5_its_update_itt(sc, its_dev, girq, event_id);
sys/arm64/arm64/gicv5_its.c
1100
struct its_dev *its_dev;
sys/arm64/arm64/gicv5_its.c
1103
its_dev = its_device_find(&sc->its_dl, child);
sys/arm64/arm64/gicv5_its.c
1105
KASSERT(its_dev != NULL,
sys/arm64/arm64/gicv5_its.c
1107
KASSERT(its_dev->lpis.lpi_busy > 0,
sys/arm64/arm64/gicv5_its.c
1109
"releasing 1, allocated %d", __func__, its_dev->lpis.lpi_busy));
sys/arm64/arm64/gicv5_its.c
1113
its_dev->lpis.lpi_busy--;
sys/arm64/arm64/gicv5_its.c
227
TAILQ_ENTRY(its_dev) entry;
sys/arm64/arm64/gicv5_its.c
242
TAILQ_HEAD(its_dev_list, its_dev) its_dev_list;
sys/arm64/arm64/gicv5_its.c
257
struct its_dev *gi_its_dev;
sys/arm64/arm64/gicv5_its.c
395
static struct its_dev *
sys/arm64/arm64/gicv5_its.c
398
struct its_dev *its_dev;
sys/arm64/arm64/gicv5_its.c
402
TAILQ_FOREACH(its_dev, &dev_list->its_dev_list, entry) {
sys/arm64/arm64/gicv5_its.c
403
if (its_dev->pci_dev == child)
sys/arm64/arm64/gicv5_its.c
404
return (its_dev);
sys/arm64/arm64/gicv5_its.c
410
static struct its_dev *
sys/arm64/arm64/gicv5_its.c
413
struct its_dev *its_dev;
sys/arm64/arm64/gicv5_its.c
416
its_dev = its_device_find_locked(dev_list, child);
sys/arm64/arm64/gicv5_its.c
419
return (its_dev);
sys/arm64/arm64/gicv5_its.c
436
struct its_dev *its_dev, u_int eventid_bits, uint64_t *dtep)
sys/arm64/arm64/gicv5_its.c
443
its_dev->itt = contigmalloc(size, M_DEVBUF, M_NOWAIT | M_ZERO, 0,
sys/arm64/arm64/gicv5_its.c
445
if (its_dev->itt == NULL)
sys/arm64/arm64/gicv5_its.c
447
its_dcache_wbinv(sc, its_dev->itt, size);
sys/arm64/arm64/gicv5_its.c
450
L2_DTE_ITT_STRUCTURE_LINEAR | vtophys(its_dev->itt) |
sys/arm64/arm64/gicv5_its.c
457
struct its_device_list *dev_list, struct its_dev *its_dev, uint64_t dte)
sys/arm64/arm64/gicv5_its.c
461
dtep = gicv5_its_dte_extend(sc, dev_list, its_dev->devid);
sys/arm64/arm64/gicv5_its.c
471
static struct its_dev *
sys/arm64/arm64/gicv5_its.c
476
struct its_dev *its_dev, *tmp_dev;
sys/arm64/arm64/gicv5_its.c
481
its_dev = its_device_find(dev_list, child);
sys/arm64/arm64/gicv5_its.c
482
if (its_dev != NULL)
sys/arm64/arm64/gicv5_its.c
483
return (its_dev);
sys/arm64/arm64/gicv5_its.c
485
its_dev = malloc(sizeof(*its_dev), M_DEVBUF, M_NOWAIT | M_ZERO);
sys/arm64/arm64/gicv5_its.c
486
if (its_dev == NULL)
sys/arm64/arm64/gicv5_its.c
489
its_dev->pci_dev = child;
sys/arm64/arm64/gicv5_its.c
490
its_dev->devid = its_get_devid(child);
sys/arm64/arm64/gicv5_its.c
492
its_dev->lpis.lpi_busy = 0;
sys/arm64/arm64/gicv5_its.c
493
its_dev->lpis.lpi_num = nvecs;
sys/arm64/arm64/gicv5_its.c
494
its_dev->lpis.lpi_free = nvecs;
sys/arm64/arm64/gicv5_its.c
497
if (gicv5_its_dte_extend(sc, dev_list, its_dev->devid) == NULL) {
sys/arm64/arm64/gicv5_its.c
498
free(its_dev, M_DEVBUF);
sys/arm64/arm64/gicv5_its.c
503
if (!its_device_itt_alloc_linear(sc, its_dev, eventid_bits, &dte)) {
sys/arm64/arm64/gicv5_its.c
504
free(its_dev, M_DEVBUF);
sys/arm64/arm64/gicv5_its.c
510
free(its_dev->itt, M_DEVBUF);
sys/arm64/arm64/gicv5_its.c
511
free(its_dev, M_DEVBUF);
sys/arm64/arm64/gicv5_its.c
521
vmem_free(dev_list->its_dev_irq_alloc, its_dev->lpis.lpi_base,
sys/arm64/arm64/gicv5_its.c
523
free(its_dev->itt, M_DEVBUF);
sys/arm64/arm64/gicv5_its.c
524
free(its_dev, M_DEVBUF);
sys/arm64/arm64/gicv5_its.c
532
if (!its_device_dte_update(sc, dev_list, its_dev, dte)) {
sys/arm64/arm64/gicv5_its.c
535
vmem_free(dev_list->its_dev_irq_alloc, its_dev->lpis.lpi_base,
sys/arm64/arm64/gicv5_its.c
537
free(its_dev->itt, M_DEVBUF);
sys/arm64/arm64/gicv5_its.c
538
free(its_dev, M_DEVBUF);
sys/arm64/arm64/gicv5_its.c
542
its_dev->lpis.lpi_base = irq_base;
sys/arm64/arm64/gicv5_its.c
544
TAILQ_INSERT_TAIL(&dev_list->its_dev_list, its_dev, entry);
sys/arm64/arm64/gicv5_its.c
546
bus_write_8(sc->its_cfg, ITS_DIDR, its_dev->devid);
sys/arm64/arm64/gicv5_its.c
553
return (its_dev);
sys/arm64/arm64/gicv5_its.c
957
gicv5_its_update_itt(struct gicv5_its_softc *sc, struct its_dev *its_dev,
sys/arm64/arm64/gicv5_its.c
964
atomic_store_64(&its_dev->itt[event_id],
sys/arm64/arm64/gicv5_its.c
966
its_dcache_wbinv(sc, &its_dev->itt[event_id],
sys/arm64/arm64/gicv5_its.c
967
sizeof(its_dev->itt[event_id]));
sys/arm64/arm64/gicv5_its.c
970
bus_write_8(sc->its_cfg, ITS_DIDR, its_dev->devid);
sys/arm64/arm64/gicv5_its.c
983
struct its_dev *its_dev;
sys/arm64/arm64/gicv5_its.c
988
its_dev = its_device_get(dev, &sc->its_dl, child, count);
sys/arm64/arm64/gicv5_its.c
989
if (its_dev == NULL)
sys/arm64/arm64/gicv5_its.c
992
KASSERT(its_dev->lpis.lpi_free > 0, ("%s: No free LPIs", __func__));
sys/arm64/arm64/gicv5_its.c
994
event_id = its_dev->lpis.lpi_num - its_dev->lpis.lpi_free;
sys/arm64/arm64/gicv5_its.c
995
lpi = its_dev->lpis.lpi_base + event_id;
sys/arm64/arm64/gicv5_its.c
999
its_dev->lpis.lpi_free--;