mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-23 01:31:30 +03:00
MODS: add mods_tegra_dma platform driver
For upstream dma engine slave_id in <struct dma_slave_config> is obsolete.
The Correct way to specify slave_id is
to call dma_request_chan API along with device name defined in dts node.
mods_tegra_dma: mods_tegra_dma {
compatible = "nvidia,mods_tegra_dma";
dmas = <&gpcdma 15>, <&gpcdma 16>;
dma-names = "spi1_rx", "spi2_tx";
status = "okay";
};
To keep kernel ABI compatibility,
add a new ioctl cmd MODS_ESC_DMA_REQUEST_HANDLE_2.
A new struct MODS_DMA_HANDLE_2 is used together with it.
A new function esc_mods_dma_request_channel_2 is implemented accordingly.
JIRA:TM-728
Change-Id: Ic84f294e2248d800b9aacd597a7ce0a84fc94a1d
Signed-off-by: andersm <andersm@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2711537
Signed-off-by: xueyuanb <xueyuanb@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2753148
Reviewed-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
@@ -1616,9 +1616,30 @@ struct MODS_DMA_HANDLE {
|
||||
/* IN */
|
||||
__u32 dma_type; /* Indicate the DMA Type*/
|
||||
/* OUT */
|
||||
__u32 dma_id; /* Inditify for the DMA */
|
||||
__u32 dma_id; /* Identifier for the DMA */
|
||||
};
|
||||
|
||||
#define MODS_DMA_HANDLE_CTRL_DIR_LEN 20
|
||||
|
||||
/* Used by ioctls:
|
||||
* - MODS_ESC_DMA_REQUEST_HANDLE_2
|
||||
*
|
||||
* Available only on Tegra.
|
||||
*/
|
||||
struct MODS_DMA_HANDLE_2 {
|
||||
/* IN */
|
||||
__u32 dma_type; /* Indicate the DMA Type*/
|
||||
/* OUT */
|
||||
__u32 dma_id; /* Identifier for the DMA */
|
||||
|
||||
/* ctrl#index_dir
|
||||
* for example, spi0_tx, i2c1_rx
|
||||
* to keep back-compatibility, strlen of ctrl_dir is allowed to be zero
|
||||
*/
|
||||
char ctrl_dir[MODS_DMA_HANDLE_CTRL_DIR_LEN];
|
||||
};
|
||||
|
||||
|
||||
enum MODS_DMA_TRANSFER_DIRECTION {
|
||||
MODS_DMA_MEM_TO_MEM,
|
||||
MODS_DMA_MEM_TO_DEV,
|
||||
@@ -1962,6 +1983,7 @@ struct MODS_TEGRA_OIST_STATUS {
|
||||
/* Deprecated */
|
||||
#define MODS_ESC_PCI_UNMAP_RESOURCE MODSIO(W, 79, MODS_PCI_UNMAP_RESOURCE)
|
||||
#define MODS_ESC_DMA_REQUEST_HANDLE MODSIO(R, 80, MODS_DMA_HANDLE)
|
||||
#define MODS_ESC_DMA_REQUEST_HANDLE_2 MODSIO(R, 80, MODS_DMA_HANDLE_2)
|
||||
#define MODS_ESC_DMA_RELEASE_HANDLE MODSIO(W, 81, MODS_DMA_HANDLE)
|
||||
#define MODS_ESC_DMA_SET_CONFIG MODSIO(W, 82, MODS_DMA_CHANNEL_CONFIG)
|
||||
#define MODS_ESC_DMA_TX_SUBMIT MODSIO(W, 83, MODS_DMA_TX_DESC)
|
||||
|
||||
Reference in New Issue
Block a user