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