Lines Matching refs:source

19 void sh_intc_toggle_source(struct intc_source *source,  in sh_intc_toggle_source()  argument
26 if (source->enable_count == source->enable_max && enable_adj == -1) { in sh_intc_toggle_source()
29 source->enable_count += enable_adj; in sh_intc_toggle_source()
31 if (source->enable_count == source->enable_max) { in sh_intc_toggle_source()
34 source->asserted += assert_adj; in sh_intc_toggle_source()
36 old_pending = source->pending; in sh_intc_toggle_source()
37 source->pending = source->asserted && in sh_intc_toggle_source()
38 (source->enable_count == source->enable_max); in sh_intc_toggle_source()
40 if (old_pending != source->pending) { in sh_intc_toggle_source()
44 if (source->pending) { in sh_intc_toggle_source()
45 source->parent->pending++; in sh_intc_toggle_source()
46 if (source->parent->pending == 1) { in sh_intc_toggle_source()
50 source->parent->pending--; in sh_intc_toggle_source()
51 if (source->parent->pending == 0) { in sh_intc_toggle_source()
58 trace_sh_intc_sources(source->parent->pending, source->asserted, in sh_intc_toggle_source()
59 source->enable_count, source->enable_max, in sh_intc_toggle_source()
60 source->vect, source->asserted ? "asserted " : in sh_intc_toggle_source()
64 source->pending ? "pending" : ""); in sh_intc_toggle_source()
71 struct intc_source *source = &desc->sources[n]; in sh_intc_set_irq() local
73 if (level && !source->asserted) { in sh_intc_set_irq()
74 sh_intc_toggle_source(source, 0, 1); in sh_intc_set_irq()
75 } else if (!level && source->asserted) { in sh_intc_set_irq()
76 sh_intc_toggle_source(source, 0, -1); in sh_intc_set_irq()
92 struct intc_source *source = &desc->sources[i]; in sh_intc_get_pending_vector() local
94 if (source->pending) { in sh_intc_get_pending_vector()
95 trace_sh_intc_pending(desc->pending, source->vect); in sh_intc_get_pending_vector()
96 return source->vect; in sh_intc_get_pending_vector()
174 struct intc_source *source = &desc->sources[id]; in sh_intc_toggle_mask() local
179 if (!source->next_enum_id && (!source->enable_max || !source->vect)) { in sh_intc_toggle_mask()
185 if (source->vect) { in sh_intc_toggle_mask()
186 sh_intc_toggle_source(source, enable ? 1 : -1, 0); in sh_intc_toggle_mask()
189 if ((is_group || !source->vect) && source->next_enum_id) { in sh_intc_toggle_mask()
190 sh_intc_toggle_mask(desc, source->next_enum_id, enable, 1); in sh_intc_toggle_mask()
193 if (!source->vect) { in sh_intc_toggle_mask()
260 intc_enum source, in sh_intc_register_source() argument
273 if (id && id == source) { in sh_intc_register_source()
286 if (id && id == source) { in sh_intc_register_source()
299 if (id && id == source) { in sh_intc_register_source()