From: Chris Pascoe Date: Sun, 2 Dec 2007 09:54:17 +0000 (-0300) Subject: V4L/DVB (6853): xc2028: check HAS_IF flag against table X-Git-Tag: firefly_0821_release~23728^2~170 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=9ca01e780f8966a7a94f88ef5c54f340e117abea;p=firefly-linux-kernel-4.4.55.git 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 Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/video/tuner-xc2028.c b/drivers/media/video/tuner-xc2028.c index 81cc7f607d4e..a6b05dfd6703 100644 --- a/drivers/media/video/tuner-xc2028.c +++ b/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;