cregit-Linux how code gets into the kernel

Release 4.12 include/linux/of_dma.h

Directory: include/linux
/*
 * OF helpers for DMA request / controller
 *
 * Based on of_gpio.h
 *
 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
 *
 * 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 __LINUX_OF_DMA_H

#define __LINUX_OF_DMA_H

#include <linux/of.h>
#include <linux/dmaengine.h>

struct device_node;


struct of_dma {
	
struct list_head	of_dma_controllers;
	
struct device_node	*of_node;
	
struct dma_chan		*(*of_dma_xlate)
				(struct of_phandle_args *, struct of_dma *);
	
void			*(*of_dma_route_allocate)
				(struct of_phandle_args *, struct of_dma *);
	
struct dma_router	*dma_router;
	
void			*of_dma_data;
};


struct of_dma_filter_info {
	
dma_cap_mask_t	dma_cap;
	
dma_filter_fn	filter_fn;
};

#ifdef CONFIG_DMA_OF
extern int of_dma_controller_register(struct device_node *np,
		struct dma_chan *(*of_dma_xlate)
		(struct of_phandle_args *, struct of_dma *),
		void *data);
extern void of_dma_controller_free(struct device_node *np);

extern int of_dma_router_register(struct device_node *np,
		void *(*of_dma_route_allocate)
		(struct of_phandle_args *, struct of_dma *),
		struct dma_router *dma_router);

#define of_dma_router_free of_dma_controller_free

extern struct dma_chan *of_dma_request_slave_channel(struct device_node *np,
						     const char *name);
extern struct dma_chan *of_dma_simple_xlate(struct of_phandle_args *dma_spec,
		struct of_dma *ofdma);
extern struct dma_chan *of_dma_xlate_by_chan_id(struct of_phandle_args *dma_spec,
		struct of_dma *ofdma);

#else

static inline int of_dma_controller_register(struct device_node *np,
		struct dma_chan *(*of_dma_xlate)
		(struct of_phandle_args *, struct of_dma *),
		void *data)
{
	return -ENODEV;
}


static inline void of_dma_controller_free(struct device_node *np) { }

Contributors

PersonTokensPropCommitsCommitProp
Vinod Koul981.82%266.67%
Lars-Peter Clausen218.18%133.33%
Total11100.00%3100.00%


static inline int of_dma_router_register(struct device_node *np, void *(*of_dma_route_allocate) (struct of_phandle_args *, struct of_dma *), struct dma_router *dma_router) { return -ENODEV; }

Contributors

PersonTokensPropCommitsCommitProp
Peter Ujfalusi37100.00%1100.00%
Total37100.00%1100.00%

#define of_dma_router_free of_dma_controller_free
static inline struct dma_chan *of_dma_request_slave_channel(struct device_node *np, const char *name) { return ERR_PTR(-ENODEV); }

Contributors

PersonTokensPropCommitsCommitProp
Vinod Koul2076.92%250.00%
Peter Ujfalusi519.23%125.00%
Markus Pargmann13.85%125.00%
Total26100.00%4100.00%


static inline struct dma_chan *of_dma_simple_xlate(struct of_phandle_args *dma_spec, struct of_dma *ofdma) { return NULL; }

Contributors

PersonTokensPropCommitsCommitProp
Vinod Koul22100.00%2100.00%
Total22100.00%2100.00%

#define of_dma_xlate_by_chan_id NULL #endif #endif /* __LINUX_OF_DMA_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Jon Hunter13838.23%111.11%
Peter Ujfalusi10228.25%222.22%
Vinod Koul9426.04%222.22%
Alexander Popov215.82%111.11%
Lars-Peter Clausen30.83%111.11%
Markus Pargmann20.55%111.11%
Kuninori Morimoto10.28%111.11%
Total361100.00%9100.00%
Directory: include/linux
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.