static void audio_hp_detection_on(void) { unsigned long flags; int irq; irq = htcapache_egpio_to_irq(EGPIO_NR_HTCAPACHE_SND_IN_JACK); if (request_irq(irq, audio_hp_isr, SA_INTERRUPT | SA_SAMPLE_RANDOM, "Headphone Jack", NULL) != 0) return; set_irq_type(irq, IRQT_BOTHEDGE); local_irq_save(flags); snd_ak4641_hp_detected(&ak, audio_hp_detect()); local_irq_restore(flags); }
static void snd_htcathena_audio_hp_detection_on(void) { unsigned long flags; int irq; #if 0 irq = asic3_irq_base( &htcathena_asic3.dev ) + ASIC3_GPIOB_IRQ_BASE + GPIOB_EARPHONE_N; if (request_irq(irq, snd_htcathena_audio_hp_isr, SA_INTERRUPT | SA_SAMPLE_RANDOM, "HTC Athena Headphone Jack", NULL) != 0) return; set_irq_type(irq, IRQ_TYPE_EDGE_FALLING); #endif local_irq_save(flags); snd_ak4641_hp_detected(&ak, snd_htcathena_audio_hp_detect()); local_irq_restore(flags); }
static irqreturn_t snd_htcathena_audio_hp_isr (int isr, void *data) { snd_ak4641_hp_detected(&ak, snd_htcathena_audio_hp_detect()); return IRQ_HANDLED; }