Lines Matching refs:d
135 #define gic_data_dist_base(d) ((d)->dist_base.common_base) argument
136 #define gic_data_cpu_base(d) ((d)->cpu_base.common_base) argument
137 #define gic_set_base_accessor(d, f) argument
140 static inline void __iomem *gic_dist_base(struct irq_data *d) in gic_dist_base() argument
142 struct gic_chip_data *gic_data = irq_data_get_irq_chip_data(d); in gic_dist_base()
146 static inline void __iomem *gic_cpu_base(struct irq_data *d) in gic_cpu_base() argument
148 struct gic_chip_data *gic_data = irq_data_get_irq_chip_data(d); in gic_cpu_base()
152 static inline unsigned int gic_irq(struct irq_data *d) in gic_irq() argument
154 return d->hwirq; in gic_irq()
157 static inline bool cascading_gic_irq(struct irq_data *d) in cascading_gic_irq() argument
159 void *data = irq_data_get_irq_handler_data(d); in cascading_gic_irq()
171 static void gic_poke_irq(struct irq_data *d, u32 offset) in gic_poke_irq() argument
173 u32 mask = 1 << (gic_irq(d) % 32); in gic_poke_irq()
174 writel_relaxed(mask, gic_dist_base(d) + offset + (gic_irq(d) / 32) * 4); in gic_poke_irq()
177 static int gic_peek_irq(struct irq_data *d, u32 offset) in gic_peek_irq() argument
179 u32 mask = 1 << (gic_irq(d) % 32); in gic_peek_irq()
180 return !!(readl_relaxed(gic_dist_base(d) + offset + (gic_irq(d) / 32) * 4) & mask); in gic_peek_irq()
183 static void gic_mask_irq(struct irq_data *d) in gic_mask_irq() argument
185 gic_poke_irq(d, GIC_DIST_ENABLE_CLEAR); in gic_mask_irq()
188 static void gic_eoimode1_mask_irq(struct irq_data *d) in gic_eoimode1_mask_irq() argument
190 gic_mask_irq(d); in gic_eoimode1_mask_irq()
199 if (irqd_is_forwarded_to_vcpu(d)) in gic_eoimode1_mask_irq()
200 gic_poke_irq(d, GIC_DIST_ACTIVE_CLEAR); in gic_eoimode1_mask_irq()
203 static void gic_unmask_irq(struct irq_data *d) in gic_unmask_irq() argument
205 gic_poke_irq(d, GIC_DIST_ENABLE_SET); in gic_unmask_irq()
208 static void gic_eoi_irq(struct irq_data *d) in gic_eoi_irq() argument
210 writel_relaxed(gic_irq(d), gic_cpu_base(d) + GIC_CPU_EOI); in gic_eoi_irq()
213 static void gic_eoimode1_eoi_irq(struct irq_data *d) in gic_eoimode1_eoi_irq() argument
216 if (irqd_is_forwarded_to_vcpu(d)) in gic_eoimode1_eoi_irq()
219 writel_relaxed(gic_irq(d), gic_cpu_base(d) + GIC_CPU_DEACTIVATE); in gic_eoimode1_eoi_irq()
222 static int gic_irq_set_irqchip_state(struct irq_data *d, in gic_irq_set_irqchip_state() argument
244 gic_poke_irq(d, reg); in gic_irq_set_irqchip_state()
248 static int gic_irq_get_irqchip_state(struct irq_data *d, in gic_irq_get_irqchip_state() argument
253 *val = gic_peek_irq(d, GIC_DIST_PENDING_SET); in gic_irq_get_irqchip_state()
257 *val = gic_peek_irq(d, GIC_DIST_ACTIVE_SET); in gic_irq_get_irqchip_state()
261 *val = !gic_peek_irq(d, GIC_DIST_ENABLE_SET); in gic_irq_get_irqchip_state()
271 static int gic_set_type(struct irq_data *d, unsigned int type) in gic_set_type() argument
273 void __iomem *base = gic_dist_base(d); in gic_set_type()
274 unsigned int gicirq = gic_irq(d); in gic_set_type()
288 static int gic_irq_set_vcpu_affinity(struct irq_data *d, void *vcpu) in gic_irq_set_vcpu_affinity() argument
291 if (cascading_gic_irq(d)) in gic_irq_set_vcpu_affinity()
295 irqd_set_forwarded_to_vcpu(d); in gic_irq_set_vcpu_affinity()
297 irqd_clr_forwarded_to_vcpu(d); in gic_irq_set_vcpu_affinity()
302 static int gic_set_affinity(struct irq_data *d, const struct cpumask *mask_val, in gic_set_affinity() argument
305 void __iomem *reg = gic_dist_base(d) + GIC_DIST_TARGET + (gic_irq(d) & ~3); in gic_set_affinity()
306 unsigned int cpu, shift = (gic_irq(d) % 4) * 8; in gic_set_affinity()
933 static int gic_irq_domain_map(struct irq_domain *d, unsigned int irq, in gic_irq_domain_map() argument
939 if (d->host_data == (void *)&gic_data[0]) in gic_irq_domain_map()
945 irq_domain_set_info(d, irq, hw, chip, d->host_data, in gic_irq_domain_map()
949 irq_domain_set_info(d, irq, hw, chip, d->host_data, in gic_irq_domain_map()
956 static void gic_irq_domain_unmap(struct irq_domain *d, unsigned int irq) in gic_irq_domain_unmap() argument
960 static int gic_irq_domain_translate(struct irq_domain *d, in gic_irq_domain_translate() argument