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>
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 @@
 	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++) {