From: Mauro Carvalho Chehab Date: Sun, 1 Jan 2012 19:11:15 +0000 (-0300) Subject: [media] dvb-core: Fix ISDB-T defaults X-Git-Tag: v3.3-rc1~48^2~203 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=a520ca97a51941f13a802b9e00ed27fc26e0ead6;p=karo-tx-linux.git [media] dvb-core: Fix ISDB-T defaults using -1 for ISDB-T parameters do the wrong thing. Fix it. Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c index c1b3b30a2e6d..ea3d0a37a33c 100644 --- a/drivers/media/dvb/dvb-core/dvb_frontend.c +++ b/drivers/media/dvb/dvb-core/dvb_frontend.c @@ -951,17 +951,17 @@ static int dvb_frontend_clear_cache(struct dvb_frontend *fe) c->sectone = SEC_TONE_OFF; c->pilot = PILOT_AUTO; - c->isdbt_partial_reception = -1; - c->isdbt_sb_mode = -1; - c->isdbt_sb_subchannel = -1; - c->isdbt_sb_segment_idx = -1; - c->isdbt_sb_segment_count = -1; - c->isdbt_layer_enabled = 0x7; + c->isdbt_partial_reception = 0; + c->isdbt_sb_mode = 0; + c->isdbt_sb_subchannel = 0; + c->isdbt_sb_segment_idx = 0; + c->isdbt_sb_segment_count = 0; + c->isdbt_layer_enabled = 0; for (i = 0; i < 3; i++) { c->layer[i].fec = FEC_AUTO; c->layer[i].modulation = QAM_AUTO; - c->layer[i].interleaving = -1; - c->layer[i].segment_count = -1; + c->layer[i].interleaving = 0; + c->layer[i].segment_count = 0; } c->isdbs_ts_id = 0; @@ -1528,28 +1528,28 @@ static int set_delivery_system(struct dvb_frontend *fe, u32 desired_system) __func__, delsys, desired_system); /* - * For now, uses it for ISDB-T, DMBTH and DVB-T2 - * For DVB-S2 and DVB-TURBO, assumes that the DVB-S parameters are enough. + * For now, handles ISDB-T calls. More code may be needed here for the + * other emulated stuff */ if (type == DVBV3_OFDM) { - c->modulation = QAM_AUTO; - c->code_rate_HP = FEC_AUTO; - c->code_rate_LP = FEC_AUTO; - c->transmission_mode = TRANSMISSION_MODE_AUTO; - c->guard_interval = GUARD_INTERVAL_AUTO; - c->hierarchy = HIERARCHY_AUTO; - - c->isdbt_partial_reception = -1; - c->isdbt_sb_mode = -1; - c->isdbt_sb_subchannel = -1; - c->isdbt_sb_segment_idx = -1; - c->isdbt_sb_segment_count = -1; - c->isdbt_layer_enabled = 0x7; - for (i = 0; i < 3; i++) { - c->layer[i].fec = FEC_AUTO; - c->layer[i].modulation = QAM_AUTO; - c->layer[i].interleaving = -1; - c->layer[i].segment_count = -1; + if (c->delivery_system == SYS_ISDBT) { + dprintk("%s() Using defaults for SYS_ISDBT\n", + __func__); + if (!c->bandwidth_hz) + c->bandwidth_hz = 6000000; + + c->isdbt_partial_reception = 0; + c->isdbt_sb_mode = 0; + c->isdbt_sb_subchannel = 0; + c->isdbt_sb_segment_idx = 0; + c->isdbt_sb_segment_count = 0; + c->isdbt_layer_enabled = 0; + for (i = 0; i < 3; i++) { + c->layer[i].fec = FEC_AUTO; + c->layer[i].modulation = QAM_AUTO; + c->layer[i].interleaving = 0; + c->layer[i].segment_count = 0; + } } } return 0;