1 /*************************************************************************** 2 * Copyright (c) 2005-2009, Broadcom Corporation. 3 * 4 * Name: crystalhd_lnx . c 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 <asm/system.h> 49 #include <linux/uaccess.h> 50 51 #include "crystalhd_cmds.h" 52 53 #define CRYSTAL_HD_NAME "Broadcom Crystal HD Decoder (BCM70012) Driver" 54 55 56 /* OS specific PCI information structure and adapter information. */ 57 struct crystalhd_adp { 58 /* Hardware borad/PCI specifics */ 59 char name[32]; 60 struct pci_dev *pdev; 61 62 unsigned long pci_mem_start; 63 uint32_t pci_mem_len; 64 void *addr; 65 66 unsigned long pci_i2o_start; 67 uint32_t pci_i2o_len; 68 void *i2o_addr; 69 70 unsigned int drv_data; 71 unsigned int dmabits; /* 32 | 64 */ 72 unsigned int registered; 73 unsigned int present; 74 unsigned int msi; 75 76 spinlock_t lock; 77 78 /* API Related */ 79 int chd_dec_major; 80 unsigned int cfg_users; 81 82 struct crystalhd_ioctl_data *idata_free_head; /* ioctl data pool */ 83 struct crystalhd_elem *elem_pool_head; /* Queue element pool */ 84 85 struct crystalhd_cmd cmds; 86 87 struct crystalhd_dio_req *ua_map_free_head; 88 struct pci_pool *fill_byte_pool; 89 }; 90 91 92 struct crystalhd_adp *chd_get_adp(void); 93 void chd_set_log_level(struct crystalhd_adp *adp, char *arg); 94 95 #endif 96 97