/* * 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"); move'>logtreecommitdiff
ntext' onchange='this.form.submit();'>
AgeCommit message (Expand)AuthorFilesLines
space:
mode:
authorzhong jiang <zhongjiang@huawei.com>2017-01-24 15:18:52 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2017-01-24 16:26:14 -0800
commit3277953de2f31dd03c6375e9a9f680ac37fc9d27 (patch)
tree6ba22924faa1b82ef2f0277db10a3f5abdc44157 /include/net/act_api.h
parent3705ccfdd1e8b539225ce20e3925a945cc788d67 (diff)
mm: do not export ioremap_page_range symbol for external module
Recently, I've found cases in which ioremap_page_range was used incorrectly, in external modules, leading to crashes. This can be partly attributed to the fact that ioremap_page_range is lower-level, with fewer protections, as compared to the other functions that an external module would typically call. Those include: ioremap_cache ioremap_nocache ioremap_prot ioremap_uc ioremap_wc ioremap_wt ...each of which wraps __ioremap_caller, which in turn provides a safer way to achieve the mapping. Therefore, stop EXPORT-ing ioremap_page_range. Link: http://lkml.kernel.org/r/1485173220-29010-1-git-send-email-zhongjiang@huawei.com Signed-off-by: zhong jiang <zhongjiang@huawei.com> Reviewed-by: John Hubbard <jhubbard@nvidia.com> Suggested-by: John Hubbard <jhubbard@nvidia.com> Acked-by: Michal Hocko <mhocko@suse.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/net/act_api.h')