Lines Matching refs:d
84 static void vt8500_irq_mask(struct irq_data *d) in vt8500_irq_mask() argument
86 struct vt8500_irq_data *priv = d->domain->host_data; in vt8500_irq_mask()
88 void __iomem *stat_reg = base + VT8500_ICIS + (d->hwirq < 32 ? 0 : 4); in vt8500_irq_mask()
92 edge = readb(base + VT8500_ICDC + d->hwirq) & VT8500_EDGE; in vt8500_irq_mask()
96 status |= (1 << (d->hwirq & 0x1f)); in vt8500_irq_mask()
99 dctr = readb(base + VT8500_ICDC + d->hwirq); in vt8500_irq_mask()
101 writeb(dctr, base + VT8500_ICDC + d->hwirq); in vt8500_irq_mask()
105 static void vt8500_irq_unmask(struct irq_data *d) in vt8500_irq_unmask() argument
107 struct vt8500_irq_data *priv = d->domain->host_data; in vt8500_irq_unmask()
111 dctr = readb(base + VT8500_ICDC + d->hwirq); in vt8500_irq_unmask()
113 writeb(dctr, base + VT8500_ICDC + d->hwirq); in vt8500_irq_unmask()
116 static int vt8500_irq_set_type(struct irq_data *d, unsigned int flow_type) in vt8500_irq_set_type() argument
118 struct vt8500_irq_data *priv = d->domain->host_data; in vt8500_irq_set_type()
122 dctr = readb(base + VT8500_ICDC + d->hwirq); in vt8500_irq_set_type()
130 __irq_set_handler_locked(d->irq, handle_level_irq); in vt8500_irq_set_type()
134 __irq_set_handler_locked(d->irq, handle_edge_irq); in vt8500_irq_set_type()
138 __irq_set_handler_locked(d->irq, handle_edge_irq); in vt8500_irq_set_type()
141 writeb(dctr, base + VT8500_ICDC + d->hwirq); in vt8500_irq_set_type()