/* * da7219-aad.h - DA7322 ASoC Codec AAD Driver Platform Data * * Copyright (c) 2015 Dialog Semiconductor Ltd. * * Author: Adam Thomson * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. */ #ifndef __DA7219_AAD_PDATA_H #define __DA7219_AAD_PDATA_H enum da7219_aad_micbias_pulse_lvl { DA7219_AAD_MICBIAS_PULSE_LVL_OFF = 0, DA7219_AAD_MICBIAS_PULSE_LVL_2_8V = 6, DA7219_AAD_MICBIAS_PULSE_LVL_2_9V, }; enum da7219_aad_btn_cfg { DA7219_AAD_BTN_CFG_2MS = 1, DA7219_AAD_BTN_CFG_5MS, DA7219_AAD_BTN_CFG_10MS, DA7219_AAD_BTN_CFG_50MS, DA7219_AAD_BTN_CFG_100MS, DA7219_AAD_BTN_CFG_200MS, DA7219_AAD_BTN_CFG_500MS, }; enum da7219_aad_mic_det_thr { DA7219_AAD_MIC_DET_THR_200_OHMS = 0, DA7219_AAD_MIC_DET_THR_500_OHMS, DA7219_AAD_MIC_DET_THR_750_OHMS, DA7219_AAD_MIC_DET_THR_1000_OHMS, }; enum da7219_aad_jack_ins_deb { DA7219_AAD_JACK_INS_DEB_5MS = 0, DA7219_AAD_JACK_INS_DEB_10MS, DA7219_AAD_JACK_INS_DEB_20MS, DA7219_AAD_JACK_INS_DEB_50MS, DA7219_AAD_JACK_INS_DEB_100MS, DA7219_AAD_JACK_INS_DEB_200MS, DA7219_AAD_JACK_INS_DEB_500MS, DA7219_AAD_JACK_INS_DEB_1S, }; enum da7219_aad_jack_det_rate { DA7219_AAD_JACK_DET_RATE_32_64MS = 0, DA7219_AAD_JACK_DET_RATE_64_128MS, DA7219_AAD_JACK_DET_RATE_128_256MS, DA7219_AAD_JACK_DET_RATE_256_512MS, }; enum da7219_aad_jack_rem_deb { DA7219_AAD_JACK_REM_DEB_1MS = 0, DA7219_AAD_JACK_REM_DEB_5MS, DA7219_AAD_JACK_REM_DEB_10MS, DA7219_AAD_JACK_REM_DEB_20MS, }; enum da7219_aad_btn_avg { DA7219_AAD_BTN_AVG_1 = 0, DA7219_AAD_BTN_AVG_2, DA7219_AAD_BTN_AVG_4, DA7219_AAD_BTN_AVG_8, }; enum da7219_aad_adc_1bit_rpt { DA7219_AAD_ADC_1BIT_RPT_1 = 0, DA7219_AAD_ADC_1BIT_RPT_2, DA7219_AAD_ADC_1BIT_RPT_4, DA7219_AAD_ADC_1BIT_RPT_8, }; struct da7219_aad_pdata { int irq; enum da7219_aad_micbias_pulse_lvl micbias_pulse_lvl; u32 micbias_pulse_time; enum da7219_aad_btn_cfg btn_cfg; enum da7219_aad_mic_det_thr mic_det_thr; enum da7219_aad_jack_ins_deb jack_ins_deb; enum da7219_aad_jack_det_rate jack_det_rate; enum da7219_aad_jack_rem_deb jack_rem_deb; u8 a_d_btn_thr; u8 d_b_btn_thr; u8 b_c_btn_thr; u8 c_mic_btn_thr; enum da7219_aad_btn_avg btn_avg; enum da7219_aad_adc_1bit_rpt adc_1bit_rpt; }; #endif /* __DA7219_AAD_PDATA_H */ value='range'>range
path: root/include/acpi/actbl.h
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2017-01-17 16:00:48 +0000
committerThomas Gleixner <tglx@linutronix.de>2017-01-30 15:18:56 +0100
commit08d85f3ea99f1eeafc4e8507936190e86a16ee8c (patch)
tree410bb1acd0cd7dcfaad37ae7b63ff243b7fa4bee /include/acpi/actbl.h
parent566cf877a1fcb6d6dc0126b076aad062054c2637 (diff)
irqdomain: Avoid activating interrupts more than once
Since commit f3b0946d629c ("genirq/msi: Make sure PCI MSIs are activated early"), we can end-up activating a PCI/MSI twice (once at allocation time, and once at startup time). This is normally of no consequences, except that there is some HW out there that may misbehave if activate is used more than once (the GICv3 ITS, for example, uses the activate callback to issue the MAPVI command, and the architecture spec says that "If there is an existing mapping for the EventID-DeviceID combination, behavior is UNPREDICTABLE"). While this could be worked around in each individual driver, it may make more sense to tackle the issue at the core level. In order to avoid getting in that situation, let's have a per-interrupt flag to remember if we have already activated that interrupt or not. Fixes: f3b0946d629c ("genirq/msi: Make sure PCI MSIs are activated early") Reported-and-tested-by: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/1484668848-24361-1-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/acpi/actbl.h')