Lines Matching defs:pin_link
271 struct gpioc_pins *pin_link;
284 SLIST_FOREACH(pin_link, &priv->pins, next) {
285 if (pin_link->pin == intr_conf)
301 pin_link = malloc(sizeof(struct gpioc_pins), M_GPIOC,
303 if (pin_link == NULL) {
308 pin_link->pin = intr_conf;
310 SLIST_INSERT_HEAD(&priv->pins, pin_link, next);
321 struct gpioc_pins *pin_link, *pin_link_temp;
338 SLIST_FOREACH_SAFE(pin_link, &priv->pins, next, pin_link_temp) {
339 if (pin_link->pin == intr_conf) {
347 if (pin_link->eventcount > 0) {
350 SLIST_REMOVE(&priv->pins, pin_link, gpioc_pins, next);
351 free(pin_link, M_GPIOC);
636 struct gpioc_pins *pin_link, *pin_link_temp;
641 SLIST_FOREACH_SAFE(pin_link, &priv->pins, next, pin_link_temp) {
643 mtx_lock(&pin_link->pin->mtx);
644 while (pin_link->pin->config_locked == true)
645 mtx_sleep(&pin_link->pin->config_locked,
646 &pin_link->pin->mtx, 0, "gpicfg", 0);
647 SLIST_FOREACH_SAFE(priv_link, &pin_link->pin->privs, next,
650 SLIST_REMOVE(&pin_link->pin->privs, priv_link,
658 if (gpioc_intr_reconfig_allowed(priv, pin_link->pin)) {
659 gpioc_release_pin_intr(pin_link->pin);
661 mtx_unlock(&pin_link->pin->mtx);
662 SLIST_REMOVE(&priv->pins, pin_link, gpioc_pins, next);
663 free(pin_link, M_GPIOC);