2013-03-22 18:34:03 +04:00
/*
* Tegra host1x Channel
*
* Copyright ( c ) 2010 - 2013 , NVIDIA Corporation .
*
* This program is free software ; you can redistribute it and / or modify it
* under the terms and conditions of the GNU General Public License ,
* version 2 , as published by the Free Software Foundation .
*
* This program is distributed in the hope it will be useful , but WITHOUT
* ANY WARRANTY ; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE . See the GNU General Public License for
* more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < http : //www.gnu.org/licenses/>.
*/
# ifndef __HOST1X_CHANNEL_H
# define __HOST1X_CHANNEL_H
# include <linux/io.h>
2017-06-15 02:18:42 +03:00
# include <linux/kref.h>
2013-03-22 18:34:03 +04:00
# include "cdma.h"
struct host1x ;
2017-06-15 02:18:42 +03:00
struct host1x_channel ;
2013-03-22 18:34:03 +04:00
2017-06-15 02:18:42 +03:00
struct host1x_channel_list {
struct host1x_channel * channels ;
unsigned long * allocated_channels ;
} ;
2013-03-22 18:34:03 +04:00
2017-06-15 02:18:42 +03:00
struct host1x_channel {
struct kref refcount ;
2013-03-22 18:34:03 +04:00
unsigned int id ;
struct mutex submitlock ;
void __iomem * regs ;
struct device * dev ;
struct host1x_cdma cdma ;
} ;
/* channel list operations */
2017-06-15 02:18:42 +03:00
int host1x_channel_list_init ( struct host1x_channel_list * chlist ,
unsigned int num_channels ) ;
void host1x_channel_list_free ( struct host1x_channel_list * chlist ) ;
struct host1x_channel * host1x_channel_get_index ( struct host1x * host ,
unsigned int index ) ;
2013-03-22 18:34:03 +04:00
# endif