/* * Copyright (c) 2008-2009 QUALCOMM USA, INC. * * All source code in this file is licensed under the following license * * 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. * * This program is distributed in the hope that 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, you can find it at http://www.fsf.org */ #ifndef _GSL_DRIVER_H #define _GSL_DRIVER_H #include #include #include #include #include #include #include #include #include #include #include "kgsl_device.h" #include "kgsl_sharedmem.h" #define DRIVER_NAME "kgsl" struct kgsl_driver { struct miscdevice misc; struct platform_device *pdev; atomic_t open_count; struct mutex mutex; int interrupt_num; int have_irq; struct clk *grp_clk; struct clk *imem_clk; struct clk *ebi1_clk; #ifdef CONFIG_ARCH_MSM7227 struct clk *grp_pclk; #endif struct kgsl_devconfig yamato_config; uint32_t flags_debug; struct kgsl_sharedmem shmem; struct kgsl_device yamato_device; struct list_head client_list; bool active; int active_cnt; struct timer_list standby_timer; struct wake_lock wake_lock; }; extern struct kgsl_driver kgsl_driver; struct kgsl_mem_entry { struct kgsl_memdesc memdesc; struct file *pmem_file; struct list_head list; struct list_head free_list; uint32_t free_timestamp; /* back pointer to private structure under whose context this * allocation is made */ struct kgsl_file_private *priv; }; void kgsl_remove_mem_entry(struct kgsl_mem_entry *entry); #endif /* _GSL_DRIVER_H */