forked from Minki/linux
6a488979f5
Some fallout from the 3.3. merge window as well as a couple bug fixes for older preexisting bugs that seem valid to include at this time: * sched_clock changes broke picoxcell, fix included * BSYM bugs causing issues with thumb2-built kernels on SMP * Missing module.h include on msm. * A collection of bugfixes for samsung platforms that didn't make it into the first pull requests. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAABAgAGBQJPFRlTAAoJEIwa5zzehBx3vNAP/132diTVp8P5m9+fmgkyKL1Q g6Djzdp7y4sEACCuHxTGIwhusqjwFlfTU1DnjOcQrylvN/GSBEqn1Kdjp3sC++F5 +Zot4psLpcKJk94HgbGvG+kXZ+mD2DaQUybVL/O/9ShfoUK589i4LSWWTUO4Chp8 C2Vi0s64UQW8R2gt/S7LaoaN+qbbNBDQRPj+hWJ/mO15RSH5V3XgpSOGvTq6+/QK nG/kcbVTu4su2z5mOxOZRw+Wx+woEKwpu/4viy5Kfoyj7igHAnWMGww8tkFadOam 4RBGaJwWmqPGiSkAsLoRfpUDKWBwMSAO13FRiMydhEiodL7db9Ug4kddTFT/GIQf pjEz4kscYxmYVzQ4oSjp5tG65berMBUHD3Sy7VZp/htvyF/HmbLiXfseJQF2DP0s dqoZ5W0cS3sXjzaGWzjIqZt7/GlX+ulqgy2eQnHfF/D2oFIqmtMu7YXMH3hj/m4z lrgGjGhy+XzVmRNujGvHs+p4tWZh7G5Hxprs/m3juoEopgcFbNsJGJW/nLHuDahL tOJaP5zD9mptkGBMfdWfwWngpBFJcfrF9Zq2qfHgzbzRAEGWy8hOT8qK2+fad4vN 6I52axIGBFoTZjqAfs5Pg1vc4wZd/WOHA3KjxsVEvHcHLxo/inndDG6vwJoRzQwV DjtiPTl+MRjxTQmh0+qH =+GJ1 -----END PGP SIGNATURE----- Merge tag 'arm-soc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc ARM: fixes for ARM platforms Some fallout from the 3.3. merge window as well as a couple bug fixes for older preexisting bugs that seem valid to include at this time: * sched_clock changes broke picoxcell, fix included * BSYM bugs causing issues with thumb2-built kernels on SMP * Missing module.h include on msm. * A collection of bugfixes for samsung platforms that didn't make it into the first pull requests. * tag 'arm-soc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: make BSYM macro assembly only ARM: highbank: remove incorrect BSYM usage ARM: imx: remove incorrect BSYM usage ARM: exynos: remove incorrect BSYM usage ARM: ux500: add missing ENDPROC to headsmp.S ARM: msm: Add missing ENDPROC to headsmp.S ARM: versatile: Add missing ENDPROC to headsmp.S ARM: EXYNOS: Invert VCLK polarity for framebuffer on ORIGEN ARM: S3C64XX: Fix interrupt configuration for PCA935x on Cragganmore ARM: S3C64XX: Fix the memory mapped GPIOs on Cragganmore ARM: S3C64XX: Remove hsmmc1 from Cragganmore ARM: S3C64XX: Remove unconditional power domain disables ARM: SAMSUNG: Declare struct platform_device in plat/s3c64xx-spi.h ARM: SAMSUNG: dma-ops.h needs mach/dma.h ARM: SAMSUNG: Guard against multiple inclusion of plat/dma.h ARM: picoxcell: fix sched_clock() cleanup fallout ARM: msm: vreg is a module and so needs module.h
66 lines
1.6 KiB
C
66 lines
1.6 KiB
C
/* arch/arm/plat-samsung/include/plat/dma-ops.h
|
|
*
|
|
* Copyright (c) 2011 Samsung Electronics Co., Ltd.
|
|
* http://www.samsung.com
|
|
*
|
|
* Samsung DMA support
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
|
|
#ifndef __SAMSUNG_DMA_OPS_H_
|
|
#define __SAMSUNG_DMA_OPS_H_ __FILE__
|
|
|
|
#include <linux/dmaengine.h>
|
|
#include <mach/dma.h>
|
|
|
|
struct samsung_dma_prep_info {
|
|
enum dma_transaction_type cap;
|
|
enum dma_transfer_direction direction;
|
|
dma_addr_t buf;
|
|
unsigned long period;
|
|
unsigned long len;
|
|
void (*fp)(void *data);
|
|
void *fp_param;
|
|
};
|
|
|
|
struct samsung_dma_info {
|
|
enum dma_transaction_type cap;
|
|
enum dma_transfer_direction direction;
|
|
enum dma_slave_buswidth width;
|
|
dma_addr_t fifo;
|
|
struct s3c2410_dma_client *client;
|
|
struct property *dt_dmach_prop;
|
|
};
|
|
|
|
struct samsung_dma_ops {
|
|
unsigned (*request)(enum dma_ch ch, struct samsung_dma_info *info);
|
|
int (*release)(unsigned ch, struct s3c2410_dma_client *client);
|
|
int (*prepare)(unsigned ch, struct samsung_dma_prep_info *info);
|
|
int (*trigger)(unsigned ch);
|
|
int (*started)(unsigned ch);
|
|
int (*flush)(unsigned ch);
|
|
int (*stop)(unsigned ch);
|
|
};
|
|
|
|
extern void *samsung_dmadev_get_ops(void);
|
|
extern void *s3c_dma_get_ops(void);
|
|
|
|
static inline void *__samsung_dma_get_ops(void)
|
|
{
|
|
if (samsung_dma_is_dmadev())
|
|
return samsung_dmadev_get_ops();
|
|
else
|
|
return s3c_dma_get_ops();
|
|
}
|
|
|
|
/*
|
|
* samsung_dma_get_ops
|
|
* get the set of samsung dma operations
|
|
*/
|
|
#define samsung_dma_get_ops() __samsung_dma_get_ops()
|
|
|
|
#endif /* __SAMSUNG_DMA_OPS_H_ */
|