V4L/DVB (6651): xc2028: mask off type correctly when searching for standard-specific...
authorChris Pascoe <c.pascoe@itee.uq.edu.au>
Tue, 20 Nov 2007 02:18:36 +0000 (23:18 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Fri, 25 Jan 2008 21:02:32 +0000 (19:02 -0200)
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 6cee48193c471ae282464e4864def25070084eeb..c0dc6ec19f098fde1ca01eeaf32ba200c9135e2b 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 115738d75f3e4991620485cdb5933a3242749330..5b646fed340fcff3a93629964493359dda2d1b3b 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++) {