Jelajahi Sumber

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 <c.pascoe@itee.uq.edu.au>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Chris Pascoe 17 tahun lalu
induk
melakukan
11a9eff9b6

+ 2 - 0
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)
  */

+ 3 - 1
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++) {