From 11a9eff9b66b1cf860faa84084328d798d18834c Mon Sep 17 00:00:00 2001 From: Chris Pascoe Date: Mon, 19 Nov 2007 23:18:36 -0300 Subject: [PATCH] V4L/DVB (6651): xc2028: mask off type correctly when searching for standard-specific types When searching for standard-specific analog firmware, only certain type bits are valid, much like for DTV. Mask them off when finding the firmware to load. Signed-off-by: Chris Pascoe Signed-off-by: Mauro Carvalho Chehab --- drivers/media/video/tuner-xc2028-types.h | 2 ++ drivers/media/video/tuner-xc2028.c | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/media/video/tuner-xc2028-types.h b/drivers/media/video/tuner-xc2028-types.h index 6cee481..c0dc6ec1 100644 --- a/drivers/media/video/tuner-xc2028-types.h +++ b/drivers/media/video/tuner-xc2028-types.h @@ -43,6 +43,8 @@ /* There's a FM | BASE firmware + FM specific firmware (std=0) */ #define FM (1<<10) +#define STD_SPECIFIC_TYPES (MTS|FM|LCD|NOGD) + /* Applies only for FM firmware Makes it use RF input 1 (pin #2) instead of input 2 (pin #4) */ diff --git a/drivers/media/video/tuner-xc2028.c b/drivers/media/video/tuner-xc2028.c index 115738d..5b646fe 100644 --- a/drivers/media/video/tuner-xc2028.c +++ b/drivers/media/video/tuner-xc2028.c @@ -403,7 +403,9 @@ static int seek_firmware(struct dvb_frontend *fe, unsigned int type, else if (type & SCODE) type &= SCODE_TYPES; else if (type & DTV_TYPES) - type = type & DTV_TYPES; + type &= DTV_TYPES; + else if (type & STD_SPECIFIC_TYPES) + type &= STD_SPECIFIC_TYPES; /* Seek for exact match */ for (i = 0; i < priv->firm_size; i++) { -- 2.7.4