V4L/DVB (6640): xc2028: correctly select 8MHz firmware
authorChris Pascoe <c.pascoe@itee.uq.edu.au>
Mon, 19 Nov 2007 09:33:16 +0000 (06:33 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Fri, 25 Jan 2008 21:02:26 +0000 (19:02 -0200)
We were using priv->bandwidth to select the base firmware to load, not the
requested bandwidth value, oops.  Also, 7MHz Digital TV needs 8MHz base
firmware loaded.

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.c

index e85992f..adef80e 100644 (file)
@@ -608,7 +608,8 @@ static int check_firmware(struct dvb_frontend *fe, enum tuner_mode new_mode,
                if (priv->ctrl.type == XC2028_FIRM_MTS)
                        type0 |= MTS;
 
-               if (priv->bandwidth == 8)
+               if (bandwidth == BANDWIDTH_7_MHZ ||
+                   bandwidth == BANDWIDTH_8_MHZ)
                        type0 |= F8MHZ;
 
                /* FIXME: How to load FM and FM|INPUT1 firmwares? */
@@ -814,7 +815,8 @@ static int xc2028_set_tv_freq(struct dvb_frontend *fe,
        tuner_dbg("%s called\n", __FUNCTION__);
 
        return generic_set_tv_freq(fe, 62500l * p->frequency, T_ANALOG_TV,
-                                  p->std, BANDWIDTH_8_MHZ /* NOT USED */);
+                                  p->std, BANDWIDTH_8_MHZ);
+                                  /* XXX Are some analog standards 6MHz? */
 }
 
 static int xc2028_set_params(struct dvb_frontend *fe,