mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-19 13:07:13 +07:00
b9a1a74381
ARM64 allmodconfig produces a bunch of warnings when building the samsung ASoC code: sound/soc/samsung/dmaengine.c: In function 'samsung_asoc_init_dma_data': sound/soc/samsung/dmaengine.c:53:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] playback_data->filter_data = (void *)playback->channel; sound/soc/samsung/dmaengine.c:60:31: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] capture_data->filter_data = (void *)capture->channel; We could easily shut up the warning by adding an intermediate cast, but there is a bigger underlying problem: The use of IORESOURCE_DMA to pass data from platform code to device drivers is dubious to start with, as what we really want is a pointer that can be passed into a filter function. Note that on s3c64xx, the pl08x DMA data is already a pointer, but gets cast to resource_size_t so we can pass it as a resource, and it then gets converted back to a pointer. In contrast, the data we pass for s3c24xx is an index into a device specific table, and we artificially convert that into a pointer for the filter function. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Mark Brown <broonie@kernel.org>
31 lines
801 B
C
31 lines
801 B
C
/*
|
|
* dma.h --
|
|
*
|
|
* 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.
|
|
*
|
|
* ALSA PCM interface for the Samsung SoC
|
|
*/
|
|
|
|
#ifndef _S3C_AUDIO_H
|
|
#define _S3C_AUDIO_H
|
|
|
|
#include <sound/dmaengine_pcm.h>
|
|
|
|
struct s3c_dma_params {
|
|
void *slave; /* Channel ID */
|
|
dma_addr_t dma_addr;
|
|
int dma_size; /* Size of the DMA transfer */
|
|
char *ch_name;
|
|
struct snd_dmaengine_dai_dma_data dma_data;
|
|
};
|
|
|
|
void samsung_asoc_init_dma_data(struct snd_soc_dai *dai,
|
|
struct s3c_dma_params *playback,
|
|
struct s3c_dma_params *capture);
|
|
int samsung_asoc_dma_platform_register(struct device *dev);
|
|
|
|
#endif
|