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: Klaas de Waal <klaas.de.w...@gmail.com>

------------------------------------------

diff -r b6b82258cf5e linux/drivers/media/dvb/bt8xx/dst.c
--- a/linux/drivers/media/dvb/bt8xx/dst.c       Thu Dec 31 19:14:54 2009 -0200
+++ b/linux/drivers/media/dvb/bt8xx/dst.c       Sat Jan 09 11:41:52 2010 +0100
@@ -1352,7 +1352,7 @@
                return retval;
        }
        if ((state->type_flags & DST_TYPE_HAS_VLF) &&
-               !(state->dst_type == DST_TYPE_IS_CABLE) &&
+               /* !(state->dst_type == DST_TYPE_IS_CABLE) && */
                !(state->dst_type == DST_TYPE_IS_ATSC)) {

                if (state->rx_tuna[9] != dst_check_sum(&state->rx_tuna[0], 9)) {
@@ -1821,7 +1821,7 @@
                .symbol_rate_min = 1000000,
                .symbol_rate_max = 45000000,
        /*     . symbol_rate_tolerance  =       ???,*/
-               .caps = FE_CAN_FEC_AUTO | FE_CAN_QAM_AUTO
+               .caps = FE_CAN_FEC_AUTO | FE_CAN_QAM_16 | FE_CAN_QAM_32 |
FE_CAN_QAM_64 | FE_CAN_QAM_128 | FE_CAN_QAM_256
        },

        .release = dst_release,
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to