/* Make sure that @bdata->disable_lock is locked when entering this function to avoid races when concurrent threads are disabling buttons at the same time.  */
static void gpio_keys_disable_button(struct gpio_button_data *bdata)
/* Make sure that @bdata->disable_lock is locked when entering this function to avoid races when concurrent threads are disabling buttons at the same time.  */
static void gpio_keys_disable_button(struct gpio_button_data *bdata)
{
	if (!bdata->disabled) {
		disable_irq(gpio_to_irq(bdata->button->gpio));
		if (bdata->button->debounce_interval)
			del_timer_sync(&bdata->timer);
		bdata->disabled = true;
	}
}