コード例 #1
0
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);
}
コード例 #2
0
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);
}
コード例 #3
0
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;
}