Commit 97f7a2ae authored by Andreas Regel's avatar Andreas Regel Committed by Mauro Carvalho Chehab

V4L/DVB (13975): [STV090x] Added internal structure with shared settings and data.

As the STV0900 features two demodulation paths in one chip there is
some information used by both instances of the driver when used in
dual mode. This information is now shared in an internal structure
referenced by I2C adapter and address.

Do initialisation of the demodulator only once when used in dual mode.
Moved global mutex demod_lock to internal structure.
Moved dev_ver and mclk to internal structure.
Removed unused tuner_refclk from stv090x_state.
Signed-off-by: default avatarAndreas Regel <andreas.regel@gmx.de>
Signed-off-by: default avatarManu Abraham <manu@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent b79c6df7
This diff is collapsed.
...@@ -68,8 +68,6 @@ struct stv090x_config { ...@@ -68,8 +68,6 @@ struct stv090x_config {
u32 xtal; /* default: 8000000 */ u32 xtal; /* default: 8000000 */
u8 address; /* default: 0x68 */ u8 address; /* default: 0x68 */
u32 ref_clk; /* default: 16000000 FIXME to tuner config */
u8 ts1_mode; u8 ts1_mode;
u8 ts2_mode; u8 ts2_mode;
......
...@@ -230,11 +230,22 @@ struct stv090x_tab { ...@@ -230,11 +230,22 @@ struct stv090x_tab {
s32 read; s32 read;
}; };
struct stv090x_internal {
struct i2c_adapter *i2c_adap;
u8 i2c_addr;
struct mutex demod_lock; /* Lock access to shared register */
s32 mclk; /* Masterclock Divider factor */
u32 dev_ver;
int num_used;
};
struct stv090x_state { struct stv090x_state {
enum stv090x_device device; enum stv090x_device device;
enum stv090x_demodulator demod; enum stv090x_demodulator demod;
enum stv090x_mode demod_mode; enum stv090x_mode demod_mode;
u32 dev_ver; struct stv090x_internal *internal;
struct i2c_adapter *i2c; struct i2c_adapter *i2c;
const struct stv090x_config *config; const struct stv090x_config *config;
...@@ -256,11 +267,8 @@ struct stv090x_state { ...@@ -256,11 +267,8 @@ struct stv090x_state {
u32 frequency; u32 frequency;
u32 srate; u32 srate;
s32 mclk; /* Masterclock Divider factor */
s32 tuner_bw; s32 tuner_bw;
u32 tuner_refclk;
s32 search_range; s32 search_range;
s32 DemodTimeout; s32 DemodTimeout;
......
...@@ -435,7 +435,6 @@ static struct stv090x_config tt1600_stv090x_config = { ...@@ -435,7 +435,6 @@ static struct stv090x_config tt1600_stv090x_config = {
.xtal = 27000000, .xtal = 27000000,
.address = 0x68, .address = 0x68,
.ref_clk = 27000000,
.ts1_mode = STV090x_TSMODE_DVBCI, .ts1_mode = STV090x_TSMODE_DVBCI,
.ts2_mode = STV090x_TSMODE_SERIAL_CONTINUOUS, .ts2_mode = STV090x_TSMODE_SERIAL_CONTINUOUS,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment