summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Pascoe <c.pascoe@itee.uq.edu.au>2007-11-20 12:18:36 +1000
committerChris Pascoe <c.pascoe@itee.uq.edu.au>2007-11-20 12:18:36 +1000
commit3a034bbce9479557da6ef26bf7b61c500af20f61 (patch)
tree1e69617f03a8f54df32fc98dfd16ecce3e1c7f12
parent545a81a2d6cb78a1bae885df41f2c8f0f8a2b574 (diff)
downloadmediapointer-dvb-s2-3a034bbce9479557da6ef26bf7b61c500af20f61.tar.gz
mediapointer-dvb-s2-3a034bbce9479557da6ef26bf7b61c500af20f61.tar.bz2
xc2028: mask off type correctly when searching for standard-specific types
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> 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 <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--linux/drivers/media/video/tuner-xc2028-types.h2
-rw-r--r--linux/drivers/media/video/tuner-xc2028.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/linux/drivers/media/video/tuner-xc2028-types.h b/linux/drivers/media/video/tuner-xc2028-types.h
index 6cee48193..c0dc6ec19 100644
--- a/linux/drivers/media/video/tuner-xc2028-types.h
+++ b/linux/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/linux/drivers/media/video/tuner-xc2028.c b/linux/drivers/media/video/tuner-xc2028.c
index a435b8f2a..c70e3316d 100644
--- a/linux/drivers/media/video/tuner-xc2028.c
+++ b/linux/drivers/media/video/tuner-xc2028.c
@@ -418,7 +418,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++) {