Browse Source

V4L/DVB (6853): xc2028: check HAS_IF flag against table

When searching for the right S-Code table to load, check the HAS_IF flag
against the firmware we are checking instead of against the the "type"
requested.  We already ignore the scode type requested if the caller passed
an int_freq; this makes the search by frequency consistent with that behaviour.

Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Chris Pascoe 17 years ago
parent
commit
9ca01e780f
1 changed files with 2 additions and 2 deletions
  1. 2 2
      drivers/media/video/tuner-xc2028.c

+ 2 - 2
drivers/media/video/tuner-xc2028.c

@@ -592,7 +592,7 @@ static int load_scode(struct dvb_frontend *fe, unsigned int type,
 	} else {
 		for (pos = 0; pos < priv->firm_size; pos++) {
 			if ((priv->firm[pos].int_freq == int_freq) &&
-			    (type & HAS_IF))
+			    (priv->firm[pos].type & HAS_IF))
 				break;
 		}
 		if (pos == priv->firm_size)
@@ -601,7 +601,7 @@ static int load_scode(struct dvb_frontend *fe, unsigned int type,
 
 	p = priv->firm[pos].ptr;
 
-	if (type & HAS_IF) {
+	if (priv->firm[pos].type & HAS_IF) {
 		if (priv->firm[pos].size != 12 * 16 || scode >= 16)
 			return -EINVAL;
 		p += 12 * scode;