Lines Matching full:cb
44 struct isr_cb cb[MAX_ISR_NUM]; member
70 struct isr_cb *cb; in intc_xmc4xxx_gpio_enable_interrupt() local
80 cb = &data->cb[line]; in intc_xmc4xxx_gpio_enable_interrupt()
81 if (cb->fn) { in intc_xmc4xxx_gpio_enable_interrupt()
101 cb->port_id = port_id; in intc_xmc4xxx_gpio_enable_interrupt()
102 cb->pin = pin; in intc_xmc4xxx_gpio_enable_interrupt()
103 cb->mode = mode; in intc_xmc4xxx_gpio_enable_interrupt()
104 cb->fn = fn; in intc_xmc4xxx_gpio_enable_interrupt()
105 cb->data = user_data; in intc_xmc4xxx_gpio_enable_interrupt()
151 for (int line = 0; line < ARRAY_SIZE(data->cb); line++) { in intc_xmc4xxx_gpio_disable_interrupt()
152 struct isr_cb *cb; in intc_xmc4xxx_gpio_disable_interrupt() local
154 cb = &data->cb[line]; in intc_xmc4xxx_gpio_disable_interrupt()
156 if (cb->fn && cb->port_id == port_id && cb->pin == pin) { in intc_xmc4xxx_gpio_disable_interrupt()
159 cb->fn = NULL; in intc_xmc4xxx_gpio_disable_interrupt()
164 /* no need to clear other variables in cb*/ in intc_xmc4xxx_gpio_disable_interrupt()
177 struct isr_cb *cb = &data->cb[line]; in intc_xmc4xxx_isr() local
181 /* The callback function may actually disable the interrupt and set cb->fn = NULL */ in intc_xmc4xxx_isr()
184 /* in the same callback which could potentially set cb->fn again. */ in intc_xmc4xxx_isr()
185 while (cb->fn) { in intc_xmc4xxx_isr()
186 cb->fn(cb->data, cb->pin); in intc_xmc4xxx_isr()
188 if (cb->mode == GPIO_INT_MODE_LEVEL && eru->EXICON_b[eru_ch].FL == 1) { in intc_xmc4xxx_isr()