cregit-Linux how code gets into the kernel

Release 4.16 include/linux/of_dma.h

Directory: include/linux
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * OF helpers for DMA request / controller
 *
 * Based on of_gpio.h
 *
 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
 */

#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 Hunter13737.85%110.00%
Peter Ujfalusi10228.18%220.00%
Vinod Koul9425.97%220.00%
Alexander Popov215.80%110.00%
Lars-Peter Clausen30.83%110.00%
Markus Pargmann20.55%110.00%
Rob Herring20.55%110.00%
Kuninori Morimoto10.28%110.00%
Total362100.00%10100.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.