*参照元 [#y4205214] #backlinks *説明 [#ya9099ea] -パス: [[linux-4.4.1/sound/soc/soc-jack.c]] -FIXME: これは何? --説明 **引数 [#sdbf16d7] -int irq -- -void *data -- **返り値 [#y33683cf] -irqreturn_t -- --[[linux-4.4.1/irqreturn_t]] **参考 [#s727659f] *実装 [#i5aca477] /* irq handler for gpio pin */ static irqreturn_t gpio_handler(int irq, void *data) { struct snd_soc_jack_gpio *gpio = data; struct device *dev = gpio->jack->card->dev; - --[[linux-4.4.1/snd_soc_jack_gpio]] --[[linux-4.4.1/device]] trace_snd_soc_jack_irq(gpio->name); - --[[linux-4.4.1/trace_snd_sock_jack_irq()]] if (device_may_wakeup(dev)) pm_wakeup_event(dev, gpio->debounce_time + 50); - --[[linux-4.4.1/device_may_wakeup()]] --[[linux-4.4.1/pm_wakeup_event()]] queue_delayed_work(system_power_efficient_wq, &gpio->work, msecs_to_jiffies(gpio->debounce_time)); - --[[linux-4.4.1/queue_delayed_work()]] --[[linux-4.4.1/system_power_efficient_wq(global)]] --[[linux-4.4.1/msecs_to_jiffies()]] -gpio->work は snd_soc_jack_add_gpios() にて、 gpio_work() を呼ぶように初期化している。 --[[linux-4.4.1/snd_soc_jack_add_gpios()]] --[[linux-4.4.1/gpio_work()]] return IRQ_HANDLED; } *コメント [#b4fd4b16]