/* * Copyright 2009 Sascha Hauer * * This code is based on code copyrighted by Freescale, * Liam Girdwood, Javier Martin and probably others. * * 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 _IMX_PCM_H #define _IMX_PCM_H #include /* * Do not change this as the FIQ handler depends on this size */ #define IMX_SSI_DMABUF_SIZE (64 * 1024) #define IMX_DEFAULT_DMABUF_SIZE (64 * 1024) #define IMX_SAI_DMABUF_SIZE (64 * 1024) #define IMX_SPDIF_DMABUF_SIZE (64 * 1024) #define IMX_ESAI_DMABUF_SIZE (256 * 1024) static inline void imx_pcm_dma_params_init_data(struct imx_dma_data *dma_data, int dma, enum sdma_peripheral_type peripheral_type) { dma_data->dma_request = dma; dma_data->priority = DMA_PRIO_HIGH; dma_data->peripheral_type = peripheral_type; } struct imx_pcm_fiq_params { int irq; void __iomem *base; /* Pointer to original ssi driver to setup tx rx sizes */ struct snd_dmaengine_dai_dma_data *dma_params_rx; struct snd_dmaengine_dai_dma_data *dma_params_tx; }; #if IS_ENABLED(CONFIG_SND_SOC_IMX_PCM_DMA) int imx_pcm_dma_init(struct platform_device *pdev, size_t size); #else static inline int imx_pcm_dma_init(struct platform_device *pdev, size_t size) { return -ENODEV; } #endif #if IS_ENABLED(CONFIG_SND_SOC_IMX_PCM_FIQ) int imx_pcm_fiq_init(struct platform_device *pdev, struct imx_pcm_fiq_params *params); void imx_pcm_fiq_exit(struct platform_device *pdev); #else static inline int imx_pcm_fiq_init(struct platform_device *pdev, struct imx_pcm_fiq_params *params) { return -ENODEV; } static inline void imx_pcm_fiq_exit(struct platform_device *pdev) { } #endif #endif /* _IMX_PCM_H */ pinctrl/mt7623-pinfunc.h?id=dfef358bd1beb4e7b5c94eca944be9cd23dfc752'>treecommitdiff
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2017-01-30 13:15:41 +0100
committerBjorn Helgaas <bhelgaas@google.com>2017-02-02 10:35:46 -0600
commitdfef358bd1beb4e7b5c94eca944be9cd23dfc752 (patch)
treeb9a2afb38a4c2ac8ad31f49ec0d71fe9e5b1994c /include/dt-bindings/pinctrl/mt7623-pinfunc.h
parent030305d69fc6963c16003f50d7e8d74b02d0a143 (diff)
PCI/MSI: Don't apply affinity if there aren't enough vectors left
Bart reported a problem wіth an out of bounds access in the low-level IRQ affinity code, which we root caused to the qla2xxx driver assigning all its MSI-X vectors to the pre and post vectors, and not having any left for the actually spread IRQs. Fix this issue by not asking for affinity assignment when there are no vectors to assign left. Fixes: 402723ad5c62 ("PCI/MSI: Provide pci_alloc_irq_vectors_affinity()") Link: https://lkml.kernel.org/r/1485359225.3093.3.camel@sandisk.com Reported-by: Bart Van Assche <bart.vanassche@sandisk.com> Tested-by: Bart Van Assche <bart.vanassche@sandisk.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'include/dt-bindings/pinctrl/mt7623-pinfunc.h')