/* * I2S MEMS microphone driver for InvenSense ICS-43432 * * - Non configurable. * - I2S interface, 64 BCLs per frame, 32 bits per channel, 24 bit data * * Copyright (c) 2015 Axis Communications AB * * Licensed under GPL v2. */ #include #include #include #include #include #include #include #include #include #define ICS43432_RATE_MIN 7190 /* Hz, from data sheet */ #define ICS43432_RATE_MAX 52800 /* Hz, from data sheet */ #define ICS43432_FORMATS (SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32) static struct snd_soc_dai_driver ics43432_dai = { .name = "ics43432-hifi", .capture = { .stream_name = "Capture", .channels_min = 1, .channels_max = 2, .rate_min = ICS43432_RATE_MIN, .rate_max = ICS43432_RATE_MAX, .rates = SNDRV_PCM_RATE_CONTINUOUS, .formats = ICS43432_FORMATS, }, }; static struct snd_soc_codec_driver ics43432_codec_driver = { }; static int ics43432_probe(struct platform_device *pdev) { return snd_soc_register_codec(&pdev->dev, &ics43432_codec_driver, &ics43432_dai, 1); } static int ics43432_remove(struct platform_device *pdev) { snd_soc_unregister_codec(&pdev->dev); return 0; } #ifdef CONFIG_OF static const struct of_device_id ics43432_ids[] = { { .compatible = "invensense,ics43432", }, { } }; MODULE_DEVICE_TABLE(of, ics43432_ids); #endif static struct platform_driver ics43432_driver = { .driver = { .name = "ics43432", .of_match_table = of_match_ptr(ics43432_ids), }, .probe = ics43432_probe, .remove = ics43432_remove, }; module_platform_driver(ics43432_driver); MODULE_DESCRIPTION("ASoC ICS43432 driver"); MODULE_AUTHOR("Ricard Wanderlof "); MODULE_LICENSE("GPL v2"); b11b24d8ff2b81366'>treecommitdiff
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2017-01-31 19:03:21 +0100
committerThomas Gleixner <tglx@linutronix.de>2017-01-31 20:22:18 +0100
commitaaaec6fc755447a1d056765b11b24d8ff2b81366 (patch)
treea7f4167960ee1df86739905b6ccdeb95465bfe5f /sound/core/Kconfig
parent08d85f3ea99f1eeafc4e8507936190e86a16ee8c (diff)
x86/irq: Make irq activate operations symmetric
The recent commit which prevents double activation of interrupts unearthed interesting code in x86. The code (ab)uses irq_domain_activate_irq() to reconfigure an already activated interrupt. That trips over the prevention code now. Fix it by deactivating the interrupt before activating the new configuration. Fixes: 08d85f3ea99f1 "irqdomain: Avoid activating interrupts more than once" Reported-and-tested-by: Mike Galbraith <efault@gmx.de> Reported-and-tested-by: Borislav Petkov <bp@alien8.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Andrey Ryabinin <aryabinin@virtuozzo.com> Cc: Marc Zyngier <marc.zyngier@arm.com> Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1701311901580.3457@nanos
Diffstat (limited to 'sound/core/Kconfig')