Lines Matching refs:val

80     u64 val;

433 static void its_mask_encode(u64 *raw_cmd, u64 val, int h, int l)
437 *raw_cmd |= (val << l) & mask;
1422 u64 val;
1430 val = GICR_INVLPIR_V;
1431 val |= FIELD_PREP(GICR_INVLPIR_VPEID, map->vpe->vpe_id);
1432 val |= FIELD_PREP(GICR_INVLPIR_INTID, map->vintid);
1434 val = d->hwirq;
1441 gic_write_lpir(val, rdbase + GICR_INVLPIR);
2240 u64 val;
2242 val = gicr_read_propbaser(gic_data_rdist_rd_base() + GICR_PROPBASER);
2243 lpi_id_bits = (val & GICR_PROPBASER_IDBITS_MASK) + 1;
2245 gic_rdists->prop_table_pa = val & GENMASK_ULL(0x33, 0xc);
2282 static void its_write_baser(struct its_node *its, struct its_baser *baser, u64 val)
2286 gits_write_baser(val, its->base + GITS_BASER + (idx << 0x03));
2287 baser->val = its_read_baser(its, baser);
2292 u64 val = its_read_baser(its, baser);
2293 u64 esz = GITS_BASER_ENTRY_SIZE(val);
2294 u64 type = GITS_BASER_TYPE(val);
2333 val = (baser_phys | (type << GITS_BASER_TYPE_SHIFT) | ((esz - 1) << GITS_BASER_ENTRY_SIZE_SHIFT) |
2336 val |= indirect ? GITS_BASER_INDIRECT : 0x0;
2340 val |= GITS_BASER_PAGE_SIZE_4K;
2343 val |= GITS_BASER_PAGE_SIZE_16K;
2346 val |= GITS_BASER_PAGE_SIZE_64K;
2350 its_write_baser(its, baser, val);
2351 tmp = baser->val;
2361 if ((val ^ tmp) & GITS_BASER_SHAREABILITY_MASK) {
2379 if (val != tmp) {
2380 pr_err("ITS@%pa: %s doesn't stick: %llx %llx\n", &its->phys_base, its_base_type_string[type], val, tmp);
2402 u64 val = GITS_BASER_InnerShareable | GITS_BASER_RaWaWb;
2413 its_write_baser(its, baser, val | GITS_BASER_INDIRECT);
2414 indirect = !!(baser->val & GITS_BASER_INDIRECT);
2449 static u32 compute_common_aff(u64 val)
2453 aff = FIELD_GET(GICR_TYPER_AFFINITY, val);
2454 clpiaff = FIELD_GET(GICR_TYPER_COMMON_LPI_AFF, val);
2461 u64 val;
2470 val = FIELD_PREP(GICR_TYPER_COMMON_LPI_AFF, svpet);
2471 val |= FIELD_PREP(GICR_TYPER_AFFINITY, its->mpidr);
2472 return compute_common_aff(val);
2503 baser = its->tables[2].val;
2531 u64 val, gpsz;
2533 val = its_read_baser(its, baser);
2534 val &= ~GITS_BASER_PAGE_SIZE_MASK;
2551 val |= FIELD_PREP(GITS_BASER_PAGE_SIZE_MASK, gpsz);
2552 its_write_baser(its, baser, val);
2554 if (FIELD_GET(GITS_BASER_PAGE_SIZE_MASK, baser->val) == gpsz) {
2588 u64 val = its_read_baser(its, baser);
2589 u64 type = GITS_BASER_TYPE(val);
2616 its_write_baser(its, baser, baser->val);
2632 cache = baser->val & GITS_BASER_CACHEABILITY_MASK;
2633 shr = baser->val & GITS_BASER_SHAREABILITY_MASK;
2642 u64 val;
2645 val = gic_read_typer(gic_data_rdist_rd_base() + GICR_TYPER);
2646 aff = compute_common_aff(val);
2665 baser = its->tables[2].val;
2673 val = GICR_VPROPBASER_4_1_VALID;
2675 val |= GICR_VPROPBASER_4_1_INDIRECT;
2677 val |= FIELD_PREP(GICR_VPROPBASER_4_1_PAGE_SIZE, FIELD_GET(GITS_BASER_PAGE_SIZE_MASK, baser));
2686 val |= FIELD_PREP(GICR_VPROPBASER_4_1_ADDR, addr >> 0xc);
2687 val |= FIELD_PREP(GICR_VPROPBASER_SHAREABILITY_MASK, FIELD_GET(GITS_BASER_SHAREABILITY_MASK, baser));
2688 val |=
2690 val |= FIELD_PREP(GICR_VPROPBASER_4_1_SIZE, GITS_BASER_NR_PAGES(baser) - 1);
2692 return val;
2701 u64 val;
2704 val = gic_read_typer(gic_data_rdist_rd_base() + GICR_TYPER);
2705 aff = compute_common_aff(val);
2715 val = gic_read_typer(base + GICR_TYPER);
2716 if (aff != compute_common_aff(val)) {
2726 val = gicr_read_vpropbaser(base + SZ_128K + GICR_VPROPBASER);
2727 val &= ~GICR_VPROPBASER_4_1_Z;
2732 return val;
2742 u64 val;
2755 val = gicr_read_vpropbaser(base + SZ_128K + GICR_VPROPBASER);
2757 esz = FIELD_GET(GICR_VPROPBASER_4_1_ENTRY_SIZE, val) + 1;
2758 gpsz = FIELD_GET(GICR_VPROPBASER_4_1_PAGE_SIZE, val);
2759 npg = FIELD_GET(GICR_VPROPBASER_4_1_SIZE, val) + 1;
2777 if (!(val & GICR_VPROPBASER_4_1_INDIRECT)) {
2795 if (!(val & GICR_VPROPBASER_SHAREABILITY_MASK)) {
2802 if (!(val & GICR_VPROPBASER_SHAREABILITY_MASK)) {
2816 u64 val, gpsz, npg, pa;
2841 val = inherit_vpe_l1_table_from_rd(&gic_data_rdist()->vpe_table_mask);
2842 if (val & GICR_VPROPBASER_4_1_VALID) {
2851 val = inherit_vpe_l1_table_from_its();
2852 if (val & GICR_VPROPBASER_4_1_VALID) {
2857 val = FIELD_PREP(GICR_VPROPBASER_4_1_PAGE_SIZE, GIC_PAGE_SIZE_64K);
2858 gicr_write_vpropbaser(val, vlpi_base + GICR_VPROPBASER);
2859 val = gicr_read_vpropbaser(vlpi_base + GICR_VPROPBASER);
2860 gpsz = FIELD_GET(GICR_VPROPBASER_4_1_PAGE_SIZE, val);
2861 esz = FIELD_GET(GICR_VPROPBASER_4_1_ENTRY_SIZE, val);
2882 val = 0;
2883 val |= FIELD_PREP(GICR_VPROPBASER_4_1_PAGE_SIZE, gpsz);
2884 val |= FIELD_PREP(GICR_VPROPBASER_4_1_ENTRY_SIZE, esz);
2897 val |= GICR_VPROPBASER_4_1_INDIRECT;
2908 val |= FIELD_PREP(GICR_VPROPBASER_4_1_SIZE, npg - 1);
2923 val |= FIELD_PREP(GICR_VPROPBASER_4_1_ADDR, pa >> 0xc);
2924 val |= GICR_VPROPBASER_RaWb;
2925 val |= GICR_VPROPBASER_InnerShareable;
2926 val |= GICR_VPROPBASER_4_1_Z;
2927 val |= GICR_VPROPBASER_4_1_VALID;
2930 gicr_write_vpropbaser(val, vlpi_base + GICR_VPROPBASER);
2933 pr_debug("CPU%d: VPROPBASER = %llx %*pbl\n", smp_processor_id(), val,
2985 u64 val;
2988 val = gicr_read_propbaser(gic_data_rdist_rd_base() + GICR_PROPBASER);
2989 addr = val & GENMASK_ULL(0x33, 0xC);
2996 u64 val;
3003 val = readl_relaxed(gic_data_rdist_rd_base() + GICR_CTLR);
3004 if ((val & GICR_CTLR_ENABLE_LPIS) && enabled_lpis_allowed()) {
3039 u64 val;
3041 val = gicr_read_vpendbaser(vlpi_base + GICR_VPENDBASER);
3042 val &= ~GICR_VPENDBASER_Valid;
3043 val &= ~clr;
3044 val |= set;
3045 gicr_write_vpendbaser(val, vlpi_base + GICR_VPENDBASER);
3048 val = gicr_read_vpendbaser(vlpi_base + GICR_VPENDBASER);
3049 clean = !(val & GICR_VPENDBASER_Dirty);
3057 if (unlikely(val & GICR_VPENDBASER_Dirty)) {
3059 val |= GICR_VPENDBASER_PendingLast;
3062 return val;
3070 u64 val, tmp;
3076 val = readl_relaxed(rbase + GICR_CTLR);
3077 if ((gic_rdists->flags & RDIST_FLAGS_RD_TABLES_PREALLOCATED) && (val & GICR_CTLR_ENABLE_LPIS)) {
3103 val = (gic_rdists->prop_table_pa | GICR_PROPBASER_InnerShareable | GICR_PROPBASER_RaWaWb |
3106 gicr_write_propbaser(val, rbase + GICR_PROPBASER);
3113 if ((tmp ^ val) & GICR_PROPBASER_SHAREABILITY_MASK) {
3120 val &= ~(GICR_PROPBASER_SHAREABILITY_MASK | GICR_PROPBASER_CACHEABILITY_MASK);
3121 val |= GICR_PROPBASER_nC;
3122 gicr_write_propbaser(val, rbase + GICR_PROPBASER);
3129 val = (page_to_phys(pend_page) | GICR_PENDBASER_InnerShareable | GICR_PENDBASER_RaWaWb);
3131 gicr_write_pendbaser(val, rbase + GICR_PENDBASER);
3143 val &= ~(GICR_PENDBASER_SHAREABILITY_MASK | GICR_PENDBASER_CACHEABILITY_MASK);
3144 val |= GICR_PENDBASER_nC;
3145 gicr_write_pendbaser(val, rbase + GICR_PENDBASER);
3149 val = readl_relaxed(rbase + GICR_CTLR);
3150 val |= GICR_CTLR_ENABLE_LPIS;
3151 writel_relaxed(val, rbase + GICR_CTLR);
3163 val = (LPI_NRBITS - 1) & GICR_VPROPBASER_IDBITS_MASK;
3164 pr_debug("GICv4: CPU%d: Init IDbits to 0x%llx for GICR_VPROPBASER\n", smp_processor_id(), val);
3165 gicr_write_vpropbaser(val, vlpi_base + GICR_VPROPBASER);
3172 val = its_clear_vpend_valid(vlpi_base, 0, 0);
3268 if (GITS_BASER_TYPE(its->tables[i].val) == type) {
3283 esz = GITS_BASER_ENTRY_SIZE(baser->val);
3284 if (!(baser->val & GITS_BASER_INDIRECT)) {
3309 if (!(baser->val & GITS_BASER_SHAREABILITY_MASK)) {
3316 if (!(baser->val & GITS_BASER_SHAREABILITY_MASK)) {
3844 u64 val;
3850 WARN_ON_ONCE(readq_relaxed_poll_timeout_atomic(vlpi_base + GICR_VPENDBASER, val, !(val & GICR_VPENDBASER_Dirty),
3857 u64 val;
3860 val = virt_to_phys(page_address(vpe->its_vm->vprop_page)) & GENMASK_ULL(0x33, 0xc);
3861 val |= (LPI_NRBITS - 1) & GICR_VPROPBASER_IDBITS_MASK;
3862 val |= GICR_VPROPBASER_RaWb;
3863 val |= GICR_VPROPBASER_InnerShareable;
3864 gicr_write_vpropbaser(val, vlpi_base + GICR_VPROPBASER);
3866 val = virt_to_phys(page_address(vpe->vpt_page)) & GENMASK_ULL(0x33, 0x10);
3867 val |= GICR_VPENDBASER_RaWaWb;
3868 val |= GICR_VPENDBASER_InnerShareable;
3878 val |= GICR_VPENDBASER_PendingLast;
3879 val |= vpe->idai ? GICR_VPENDBASER_IDAI : 0;
3880 val |= GICR_VPENDBASER_Valid;
3881 gicr_write_vpendbaser(val, vlpi_base + GICR_VPENDBASER);
3887 u64 val;
3889 val = its_clear_vpend_valid(vlpi_base, 0, 0);
3891 vpe->idai = !!(val & GICR_VPENDBASER_IDAI);
3892 vpe->pending_last = !!(val & GICR_VPENDBASER_PendingLast);
4089 u64 val = 0;
4092 val |= GICR_VPENDBASER_Valid;
4093 val |= info->g0en ? GICR_VPENDBASER_4_1_VGRP0EN : 0;
4094 val |= info->g1en ? GICR_VPENDBASER_4_1_VGRP1EN : 0;
4095 val |= FIELD_PREP(GICR_VPENDBASER_4_1_VPEID, vpe->vpe_id);
4097 gicr_write_vpendbaser(val, vlpi_base + GICR_VPENDBASER);
4103 u64 val;
4119 val = its_clear_vpend_valid(vlpi_base, GICR_VPENDBASER_PendingLast, GICR_VPENDBASER_4_1_DB);
4120 vpe->pending_last = !!(val & GICR_VPENDBASER_PendingLast);
4127 val = its_clear_vpend_valid(vlpi_base, 0, GICR_VPENDBASER_PendingLast);
4136 u64 val;
4139 val = GICR_INVALLR_V;
4140 val |= FIELD_PREP(GICR_INVALLR_VPEID, vpe->vpe_id);
4146 gic_write_lpir(val, rdbase + GICR_INVALLR);
4245 u64 val;
4247 val = FIELD_PREP(GITS_SGIR_VPEID, vpe->vpe_id);
4248 val |= FIELD_PREP(GITS_SGIR_VINTID, d->hwirq);
4249 writeq_relaxed(val, its->sgir_base + GITS_SGIR - SZ_128K);
4257 static int its_sgi_get_irqchip_state(struct irq_data *d, enum irqchip_irq_state which, bool *val)
4307 *val = !!(status & (1 << d->hwirq));
4600 u32 val;
4602 val = readl_relaxed(base + GITS_CTLR);
4608 if ((val & GITS_CTLR_QUIESCENT) && !(val & GITS_CTLR_ENABLE)) {
4613 val &= ~(GITS_CTLR_ENABLE | GITS_CTLR_ImDe);
4614 writel_relaxed(val, base + GITS_CTLR);
4618 val = readl_relaxed(base + GITS_CTLR);
4619 if (val & GITS_CTLR_QUIESCENT) {
4849 if (!(baser->val & GITS_BASER_VALID)) {
4853 its_write_baser(its, baser, baser->val);
4978 u32 val, ctlr;
4990 val = readl_relaxed(its_base + GITS_PIDR2) & GIC_PIDR2_ARCH_MASK;
4991 if (val != 0x30 && val != 0x40) {
5146 u64 val;
5153 val = readl_relaxed(rbase + GICR_CTLR);
5154 if (!(val & GICR_CTLR_ENABLE_LPIS)) {
5176 val &= ~GICR_CTLR_ENABLE_LPIS;
5177 writel_relaxed(val, rbase + GICR_CTLR);