diff options
-rw-r--r-- | drivers/media/pci/ddbridge/ddbridge-mci.c | 21 | ||||
-rw-r--r-- | drivers/media/pci/ddbridge/ddbridge-mci.h | 4 |
2 files changed, 15 insertions, 10 deletions
diff --git a/drivers/media/pci/ddbridge/ddbridge-mci.c b/drivers/media/pci/ddbridge/ddbridge-mci.c index a85ff3e6b919..8d9592e75ad5 100644 --- a/drivers/media/pci/ddbridge/ddbridge-mci.c +++ b/drivers/media/pci/ddbridge/ddbridge-mci.c | |||
@@ -38,10 +38,10 @@ struct mci_base { | |||
38 | struct mutex mci_lock; /* concurrent MCI access lock */ | 38 | struct mutex mci_lock; /* concurrent MCI access lock */ |
39 | int count; | 39 | int count; |
40 | 40 | ||
41 | u8 tuner_use_count[4]; | 41 | u8 tuner_use_count[MCI_TUNER_MAX]; |
42 | u8 assigned_demod[8]; | 42 | u8 assigned_demod[MCI_DEMOD_MAX]; |
43 | u32 used_ldpc_bitrate[8]; | 43 | u32 used_ldpc_bitrate[MCI_DEMOD_MAX]; |
44 | u8 demod_in_use[8]; | 44 | u8 demod_in_use[MCI_DEMOD_MAX]; |
45 | u32 iq_mode; | 45 | u32 iq_mode; |
46 | }; | 46 | }; |
47 | 47 | ||
@@ -193,7 +193,7 @@ static int stop(struct dvb_frontend *fe) | |||
193 | u32 input = state->tuner; | 193 | u32 input = state->tuner; |
194 | 194 | ||
195 | memset(&cmd, 0, sizeof(cmd)); | 195 | memset(&cmd, 0, sizeof(cmd)); |
196 | if (state->demod != 0xff) { | 196 | if (state->demod != DEMOD_UNUSED) { |
197 | cmd.command = MCI_CMD_STOP; | 197 | cmd.command = MCI_CMD_STOP; |
198 | cmd.demod = state->demod; | 198 | cmd.demod = state->demod; |
199 | mci_cmd(state, &cmd, NULL); | 199 | mci_cmd(state, &cmd, NULL); |
@@ -209,10 +209,11 @@ static int stop(struct dvb_frontend *fe) | |||
209 | state->base->tuner_use_count[input]--; | 209 | state->base->tuner_use_count[input]--; |
210 | if (!state->base->tuner_use_count[input]) | 210 | if (!state->base->tuner_use_count[input]) |
211 | mci_set_tuner(fe, input, 0); | 211 | mci_set_tuner(fe, input, 0); |
212 | state->base->demod_in_use[state->demod] = 0; | 212 | if (state->demod < MCI_DEMOD_MAX) |
213 | state->base->demod_in_use[state->demod] = 0; | ||
213 | state->base->used_ldpc_bitrate[state->nr] = 0; | 214 | state->base->used_ldpc_bitrate[state->nr] = 0; |
214 | state->demod = 0xff; | 215 | state->demod = DEMOD_UNUSED; |
215 | state->base->assigned_demod[state->nr] = 0xff; | 216 | state->base->assigned_demod[state->nr] = DEMOD_UNUSED; |
216 | state->base->iq_mode = 0; | 217 | state->base->iq_mode = 0; |
217 | mutex_unlock(&state->base->tuner_lock); | 218 | mutex_unlock(&state->base->tuner_lock); |
218 | state->started = 0; | 219 | state->started = 0; |
@@ -250,7 +251,7 @@ static int start(struct dvb_frontend *fe, u32 flags, u32 modmask, u32 ts_config) | |||
250 | stat = -EBUSY; | 251 | stat = -EBUSY; |
251 | goto unlock; | 252 | goto unlock; |
252 | } | 253 | } |
253 | for (i = 0; i < 8; i++) { | 254 | for (i = 0; i < MCI_DEMOD_MAX; i++) { |
254 | used_ldpc_bitrate += state->base->used_ldpc_bitrate[i]; | 255 | used_ldpc_bitrate += state->base->used_ldpc_bitrate[i]; |
255 | if (state->base->demod_in_use[i]) | 256 | if (state->base->demod_in_use[i]) |
256 | used_demods++; | 257 | used_demods++; |
@@ -342,7 +343,7 @@ static int start_iq(struct dvb_frontend *fe, u32 ts_config) | |||
342 | stat = -EBUSY; | 343 | stat = -EBUSY; |
343 | goto unlock; | 344 | goto unlock; |
344 | } | 345 | } |
345 | for (i = 0; i < 8; i++) | 346 | for (i = 0; i < MCI_DEMOD_MAX; i++) |
346 | if (state->base->demod_in_use[i]) | 347 | if (state->base->demod_in_use[i]) |
347 | used_demods++; | 348 | used_demods++; |
348 | if (used_demods > 0) { | 349 | if (used_demods > 0) { |
diff --git a/drivers/media/pci/ddbridge/ddbridge-mci.h b/drivers/media/pci/ddbridge/ddbridge-mci.h index c4193c5ee095..453dcb9f8208 100644 --- a/drivers/media/pci/ddbridge/ddbridge-mci.h +++ b/drivers/media/pci/ddbridge/ddbridge-mci.h | |||
@@ -19,6 +19,10 @@ | |||
19 | #ifndef _DDBRIDGE_MCI_H_ | 19 | #ifndef _DDBRIDGE_MCI_H_ |
20 | #define _DDBRIDGE_MCI_H_ | 20 | #define _DDBRIDGE_MCI_H_ |
21 | 21 | ||
22 | #define MCI_DEMOD_MAX 8 | ||
23 | #define MCI_TUNER_MAX 4 | ||
24 | #define DEMOD_UNUSED (0xFF) | ||
25 | |||
22 | #define MCI_CONTROL (0x500) | 26 | #define MCI_CONTROL (0x500) |
23 | #define MCI_COMMAND (0x600) | 27 | #define MCI_COMMAND (0x600) |
24 | #define MCI_RESULT (0x680) | 28 | #define MCI_RESULT (0x680) |