1 /*************************************************************************** 2 * Copyright (c) 2005-2009, Broadcom Corporation. 3 * 4 * Name: crystalhd_lnx . h 5 * 6 * Description: 7 * BCM70012 Linux driver 8 * 9 * HISTORY: 10 * 11 ********************************************************************** 12 * This file is part of the crystalhd device driver. 13 * 14 * This driver is free software; you can redistribute it and/or modify 15 * it under the terms of the GNU General Public License as published by 16 * the Free Software Foundation, version 2 of the License. 17 * 18 * This driver is distributed in the hope that it will be useful, 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 * GNU General Public License for more details. 22 * 23 * You should have received a copy of the GNU General Public License 24 * along with this driver. If not, see <http://www.gnu.org/licenses/>. 25 **********************************************************************/ 26 27 #ifndef _CRYSTALHD_LNX_H_ 28 #define _CRYSTALHD_LNX_H_ 29 30 #include <linux/module.h> 31 #include <linux/kernel.h> 32 #include <linux/errno.h> 33 #include <linux/string.h> 34 #include <linux/mm.h> 35 #include <linux/tty.h> 36 #include <linux/slab.h> 37 #include <linux/delay.h> 38 #include <linux/fb.h> 39 #include <linux/pci.h> 40 #include <linux/init.h> 41 #include <linux/interrupt.h> 42 #include <linux/pagemap.h> 43 #include <linux/vmalloc.h> 44 45 #include <linux/io.h> 46 #include <asm/irq.h> 47 #include <asm/pgtable.h> 48 #include <linux/uaccess.h> 49 50 #include "crystalhd.h" 51 52 #define CRYSTAL_HD_NAME "Broadcom Crystal HD Decoder (BCM70012) Driver" 53 54 /* OS specific PCI information structure and adapter information. */ 55 struct crystalhd_adp { 56 /* Hardware borad/PCI specifics */ 57 char name[32]; 58 struct pci_dev *pdev; 59 60 unsigned long pci_mem_start; 61 uint32_t pci_mem_len; 62 void *addr; 63 64 unsigned long pci_i2o_start; 65 uint32_t pci_i2o_len; 66 void *i2o_addr; 67 68 unsigned int drv_data; 69 unsigned int dmabits; /* 32 | 64 */ 70 unsigned int registered; 71 unsigned int present; 72 unsigned int msi; 73 74 spinlock_t lock; 75 76 /* API Related */ 77 int chd_dec_major; 78 unsigned int cfg_users; 79 80 struct crystalhd_ioctl_data *idata_free_head; /* ioctl data pool */ 81 struct crystalhd_elem *elem_pool_head; /* Queue element pool */ 82 83 struct crystalhd_cmd cmds; 84 85 struct crystalhd_dio_req *ua_map_free_head; 86 struct pci_pool *fill_byte_pool; 87 }; 88 89 90 struct crystalhd_adp *chd_get_adp(void); 91 void chd_set_log_level(struct crystalhd_adp *adp, char *arg); 92 93 #endif 94 95