Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb...
[pandora-kernel.git] / drivers / staging / crystalhd / crystalhd_lnx.h
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         unsigned 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