Commit 9ca01e78 authored by Chris Pascoe's avatar Chris Pascoe Committed by Mauro Carvalho Chehab

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: default avatarChris Pascoe <c.pascoe@itee.uq.edu.au>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent ad35ce9e
...@@ -592,7 +592,7 @@ static int load_scode(struct dvb_frontend *fe, unsigned int type, ...@@ -592,7 +592,7 @@ static int load_scode(struct dvb_frontend *fe, unsigned int type,
} else { } else {
for (pos = 0; pos < priv->firm_size; pos++) { for (pos = 0; pos < priv->firm_size; pos++) {
if ((priv->firm[pos].int_freq == int_freq) && if ((priv->firm[pos].int_freq == int_freq) &&
(type & HAS_IF)) (priv->firm[pos].type & HAS_IF))
break; break;
} }
if (pos == priv->firm_size) if (pos == priv->firm_size)
...@@ -601,7 +601,7 @@ static int load_scode(struct dvb_frontend *fe, unsigned int type, ...@@ -601,7 +601,7 @@ static int load_scode(struct dvb_frontend *fe, unsigned int type,
p = priv->firm[pos].ptr; 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) if (priv->firm[pos].size != 12 * 16 || scode >= 16)
return -EINVAL; return -EINVAL;
p += 12 * scode; p += 12 * scode;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment