aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2012-01-13 08:09:23 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-01-15 08:12:21 -0500
commitf4b1952a453f4b4b4c4cd3436b9cd632bf4202aa (patch)
tree9d7c355e12f36bc3022bad280ef01e30944b2f7a /drivers/media/dvb
parent126400033940afb658123517a2e80eb68259fbd7 (diff)
[media] dvb-core: fix a regression with MythTV
As reported by Lawrence[1], MythTV 0.24.1 does the wrong thing with a DVBv5 call: it fills the delivery system with SYS_UNDEFINED, expecting that the DVB core would work with that. This used to work by accident, as the DVB core were missing the check for the supported delivery systems. Yet, fixing it is easy, so let's add a logic to handle this case, to provide backward compatibility. [1] http://patchwork.linuxtv.org/patch/8314/ Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb')
-rw-r--r--drivers/media/dvb/dvb-core/dvb_frontend.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
index b15db4fe347b..2ad7faf4529d 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -1413,6 +1413,15 @@ static int set_delivery_system(struct dvb_frontend *fe, u32 desired_system)
1413 struct dtv_frontend_properties *c = &fe->dtv_property_cache; 1413 struct dtv_frontend_properties *c = &fe->dtv_property_cache;
1414 enum dvbv3_emulation_type type; 1414 enum dvbv3_emulation_type type;
1415 1415
1416 /*
1417 * It was reported that some old DVBv5 applications were
1418 * filling delivery_system with SYS_UNDEFINED. If this happens,
1419 * assume that the application wants to use the first supported
1420 * delivery system.
1421 */
1422 if (c->delivery_system == SYS_UNDEFINED)
1423 c->delivery_system = fe->ops.delsys[0];
1424
1416 if (desired_system == SYS_UNDEFINED) { 1425 if (desired_system == SYS_UNDEFINED) {
1417 /* 1426 /*
1418 * A DVBv3 call doesn't know what's the desired system. 1427 * A DVBv3 call doesn't know what's the desired system.