24 for (i = 0; g && enum_id && i < desc->
hw.nr_groups; i++) {
25 g = desc->
hw.groups +
i;
41 unsigned int *reg_idx,
42 unsigned int *fld_idx)
46 unsigned long reg_e, reg_d;
48 while (mr && enum_id && *reg_idx < desc->
hw.nr_mask_regs) {
49 mr = desc->
hw.mask_regs + *reg_idx;
52 if (mr->
enum_ids[*fld_idx] != enum_id)
96 ret = _intc_mask_data(desc, d, enum_id, &i, &j);
109 unsigned int *reg_idx,
110 unsigned int *fld_idx)
114 unsigned long reg_e, reg_d;
116 while (pr && enum_id && *reg_idx < desc->
hw.nr_prio_regs) {
117 pr = desc->
hw.prio_regs + *reg_idx;
120 if (pr->
enum_ids[*fld_idx] != enum_id)
165 ret = _intc_prio_data(desc, d, enum_id, &i, &j);
175 static unsigned int intc_ack_data(
struct intc_desc *desc,
180 unsigned long reg_e, reg_d;
182 for (i = 0; mr && enum_id && i < desc->
hw.nr_ack_regs; i++) {
183 mr = desc->
hw.ack_regs +
i;
207 unsigned long handle,
int do_enable)
240 data = _intc_mask_data(desc, d, enum_id, &i, &j);
242 intc_enable_disable(d, data, enable);
249 data = _intc_prio_data(desc, d, enum_id, &i, &j);
251 intc_enable_disable(d, data, enable);
264 for (i = 0; sr && enum_id && i < desc->
hw.nr_sense_regs; i++) {
265 sr = desc->
hw.sense_regs +
i;
295 if (!desc->
hw.ack_regs)
299 ack_handle[irq] = intc_ack_data(desc, d,
id);
305 return ack_handle[irq];