V4L/DVB (6651): xc2028: mask off type correctly when searching for standard-specific...
Chris Pascoe [Tue, 20 Nov 2007 02:18:36 +0000 (23:18 -0300)]
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>

drivers/media/video/tuner-xc2028-types.h
drivers/media/video/tuner-xc2028.c

index 6cee481..c0dc6ec 100644 (file)
@@ -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)
  */
index 115738d..5b646fe 100644 (file)
@@ -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++) {