[media] rtl2830: implement own I2C locking
[linux-2.6/btrfs-unstable.git] / drivers / media / dvb-frontends / rtl2830_priv.h
blob517758ab687a9bcabaee84ea02b485fe5476cb40
1 /*
2 * Realtek RTL2830 DVB-T demodulator driver
4 * Copyright (C) 2011 Antti Palosaari <crope@iki.fi>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
18 #ifndef RTL2830_PRIV_H
19 #define RTL2830_PRIV_H
21 #include "dvb_frontend.h"
22 #include "dvb_math.h"
23 #include "rtl2830.h"
24 #include <linux/i2c-mux.h>
25 #include <linux/math64.h>
27 struct rtl2830_dev {
28 struct rtl2830_platform_data *pdata;
29 struct i2c_client *client;
30 struct i2c_adapter *adapter;
31 struct dvb_frontend fe;
32 bool sleeping;
33 struct mutex i2c_mutex;
34 u8 page; /* active register page */
35 unsigned long filters;
36 struct delayed_work stat_work;
37 fe_status_t fe_status;
38 u64 post_bit_error_prev; /* for old DVBv3 read_ber() calculation */
39 u64 post_bit_error;
40 u64 post_bit_count;
43 struct rtl2830_reg_val_mask {
44 u16 reg;
45 u8 val;
46 u8 mask;
49 #endif /* RTL2830_PRIV_H */