Commit f0289efa authored by Klaas de Waal's avatar Klaas de Waal Committed by Mauro Carvalho Chehab

V4L/DVB: dst: fixes for DVB-C Twinhan VP2031

Remove check  "state->dst_type == DST_DTYPE_IS_CABLE"  in function
dst_get_tuna (around line 1352) to select the correct checksum
computation

Fill in the .caps field in struct dst_dvbc_ops (around line 1824) with
all the supported QAM modulation methods to match the capabilities of
the card as implemented in function dst_set_modulation (around line
502). Note that beginning with linux kernel version 2.6.32 the
modulation method is checked (by function
dvb_frontend_check_parameters in file
drivers/media/dvb/dvb-core/dvb_frontend.c) and thus tuning fails if
you use a modulation method that is not present in the .caps field.

This patch has been tested on a Twinhan VP2031A DVB-C card with the
2.6.32.2 kernel.
Signed-off-by: default avatarKlaas de Waal <klaas.de.waal@gmail.com>
Signed-off-by: default avatarManu Abraham <manu@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent dd6ed861
...@@ -1352,8 +1352,7 @@ static int dst_get_tuna(struct dst_state *state) ...@@ -1352,8 +1352,7 @@ static int dst_get_tuna(struct dst_state *state)
return retval; return retval;
} }
if ((state->type_flags & DST_TYPE_HAS_VLF) && if ((state->type_flags & DST_TYPE_HAS_VLF) &&
!(state->dst_type == DST_TYPE_IS_CABLE) && !(state->dst_type == DST_TYPE_IS_ATSC)) {
!(state->dst_type == DST_TYPE_IS_ATSC)) {
if (state->rx_tuna[9] != dst_check_sum(&state->rx_tuna[0], 9)) { if (state->rx_tuna[9] != dst_check_sum(&state->rx_tuna[0], 9)) {
dprintk(verbose, DST_INFO, 1, "checksum failure ? "); dprintk(verbose, DST_INFO, 1, "checksum failure ? ");
...@@ -1820,8 +1819,13 @@ static struct dvb_frontend_ops dst_dvbc_ops = { ...@@ -1820,8 +1819,13 @@ static struct dvb_frontend_ops dst_dvbc_ops = {
.frequency_max = 858000000, .frequency_max = 858000000,
.symbol_rate_min = 1000000, .symbol_rate_min = 1000000,
.symbol_rate_max = 45000000, .symbol_rate_max = 45000000,
/* . symbol_rate_tolerance = ???,*/ .caps = FE_CAN_FEC_AUTO |
.caps = FE_CAN_FEC_AUTO | FE_CAN_QAM_AUTO FE_CAN_QAM_AUTO |
FE_CAN_QAM_16 |
FE_CAN_QAM_32 |
FE_CAN_QAM_64 |
FE_CAN_QAM_128 |
FE_CAN_QAM_256
}, },
.release = dst_release, .release = dst_release,
......
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