Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi...
[linux-2.6-microblaze.git] / drivers / staging / crystalhd / crystalhd_lnx.h
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/interrupt.h>
41 #include <linux/pagemap.h>
42 #include <linux/vmalloc.h>
43
44 #include <linux/io.h>
45 #include <asm/irq.h>
46 #include <asm/pgtable.h>
47 #include <linux/uaccess.h>
48
49 #include "crystalhd.h"
50
51 #define CRYSTAL_HD_NAME         "Broadcom Crystal HD Decoder (BCM70012) Driver"
52
53 /* OS specific PCI information structure and adapter information. */
54 struct crystalhd_adp {
55         /* Hardware board/PCI specifics */
56         char                    name[32];
57         struct pci_dev          *pdev;
58
59         unsigned long           pci_mem_start;
60         uint32_t                pci_mem_len;
61         void                    *addr;
62
63         unsigned long           pci_i2o_start;
64         uint32_t                pci_i2o_len;
65         void                    *i2o_addr;
66
67         unsigned int            drv_data;
68         unsigned int            dmabits;        /* 32 | 64 */
69         unsigned int            registered;
70         unsigned int            present;
71         unsigned int            msi;
72
73         spinlock_t              lock;
74
75         /* API Related */
76         int             chd_dec_major;
77         unsigned int            cfg_users;
78
79         struct crystalhd_ioctl_data     *idata_free_head; /* ioctl data pool */
80         struct crystalhd_elem   *elem_pool_head; /* Queue element pool */
81
82         struct crystalhd_cmd    cmds;
83
84         struct crystalhd_dio_req        *ua_map_free_head;
85         struct pci_pool         *fill_byte_pool;
86 };
87
88
89 struct crystalhd_adp *chd_get_adp(void);
90 void chd_set_log_level(struct crystalhd_adp *adp, char *arg);
91
92 #endif
93