| /*************************************************************************** |
| * Copyright (c) 2005-2009, Broadcom Corporation. |
| * |
| * Name: crystalhd_lnx . c |
| * |
| * Description: |
| * BCM70012 Linux driver |
| * |
| * HISTORY: |
| * |
| ********************************************************************** |
| * This file is part of the crystalhd device driver. |
| * |
| * This driver is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation, version 2 of the License. |
| * |
| * This driver 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 driver. If not, see <http://www.gnu.org/licenses/>. |
| **********************************************************************/ |
| |
| #ifndef _CRYSTALHD_LNX_H_ |
| #define _CRYSTALHD_LNX_H_ |
| |
| #include <linux/module.h> |
| #include <linux/kernel.h> |
| #include <linux/errno.h> |
| #include <linux/string.h> |
| #include <linux/mm.h> |
| #include <linux/tty.h> |
| #include <linux/slab.h> |
| #include <linux/delay.h> |
| #include <linux/fb.h> |
| #include <linux/pci.h> |
| #include <linux/init.h> |
| #include <linux/interrupt.h> |
| #include <linux/pagemap.h> |
| #include <linux/vmalloc.h> |
| |
| #include <linux/io.h> |
| #include <asm/irq.h> |
| #include <asm/pgtable.h> |
| #include <asm/system.h> |
| #include <linux/uaccess.h> |
| |
| #include "crystalhd_cmds.h" |
| |
| #define CRYSTAL_HD_NAME "Broadcom Crystal HD Decoder (BCM70012) Driver" |
| |
| |
| /* OS specific PCI information structure and adapter information. */ |
| struct crystalhd_adp { |
| /* Hardware borad/PCI specifics */ |
| char name[32]; |
| struct pci_dev *pdev; |
| |
| unsigned long pci_mem_start; |
| uint32_t pci_mem_len; |
| void *addr; |
| |
| unsigned long pci_i2o_start; |
| uint32_t pci_i2o_len; |
| void *i2o_addr; |
| |
| unsigned int drv_data; |
| unsigned int dmabits; /* 32 | 64 */ |
| unsigned int registered; |
| unsigned int present; |
| unsigned int msi; |
| |
| spinlock_t lock; |
| |
| /* API Related */ |
| int chd_dec_major; |
| unsigned int cfg_users; |
| |
| struct crystalhd_ioctl_data *idata_free_head; /* ioctl data pool */ |
| struct crystalhd_elem *elem_pool_head; /* Queue element pool */ |
| |
| struct crystalhd_cmd cmds; |
| |
| struct crystalhd_dio_req *ua_map_free_head; |
| struct pci_pool *fill_byte_pool; |
| }; |
| |
| |
| struct crystalhd_adp *chd_get_adp(void); |
| void chd_set_log_level(struct crystalhd_adp *adp, char *arg); |
| |
| #endif |
| |