diff options
Diffstat (limited to 'mtac.c')
-rw-r--r-- | mtac.c | 15 |
1 files changed, 12 insertions, 3 deletions
@@ -27,7 +27,7 @@ static const char* eeprom_file_name[NUM_AP] = { #endif #ifdef mtcpmhs /*2nd */ - "2-0050/eeprom", "2-0052/eeprom", "2-0050/eeprom" + "2-0050/eeprom", "2-0052/eeprom", "1-0052/eeprom" #endif #endif // NUM_AP > 0 }; @@ -250,9 +250,14 @@ ssize_t mtac_attr_show_ap_gpio_pin(struct kobject *kobj, log_debug("mtac_attr_show_ap_gpio_pin: State of mtac mutex is %s", mutex_is_locked(&mtac_mutex) ? "locked" : "unlocked"); + mutex_lock(&mtac_mutex); - value = gpio_get_value(pin->pin.gpio); + if(gpiod_cansleep(gpio_to_desc(pin->pin.gpio))) { + value = gpio_get_value_cansleep(pin->pin.gpio); + } else { + value = gpio_get_value(pin->pin.gpio); + } mutex_unlock(&mtac_mutex); @@ -299,7 +304,11 @@ ssize_t mtac_attr_store_ap_gpio_pin(struct kobject *kobj, mutex_is_locked(&mtac_mutex) ? "locked" : "unlocked"); mutex_lock(&mtac_mutex); - gpio_set_value(pin->pin.gpio, value); + if(gpiod_cansleep(gpio_to_desc(pin->pin.gpio))) { + gpio_set_value_cansleep(pin->pin.gpio, value); + } else { + gpio_set_value(pin->pin.gpio, value); + } mutex_unlock(&mtac_mutex); |