From: Antti Palosaari Date: Tue, 13 Sep 2011 10:30:11 +0000 (-0300) Subject: [media] tda10071: do not download last byte of fw X-Git-Tag: MMI-PSA29.97-13-9~18177^2~142 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=75d404ec041ef0e036e3100f730391f6e0818019;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git [media] tda10071: do not download last byte of fw Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/dvb/frontends/tda10071.c b/drivers/media/dvb/frontends/tda10071.c index 26b52cc83c61..352ddc656ad6 100644 --- a/drivers/media/dvb/frontends/tda10071.c +++ b/drivers/media/dvb/frontends/tda10071.c @@ -839,7 +839,7 @@ static int tda10071_init(struct dvb_frontend *fe) { struct tda10071_priv *priv = fe->demodulator_priv; struct tda10071_cmd cmd; - int ret, i, len, remaining; + int ret, i, len, remaining, fw_size; const struct firmware *fw; u8 *fw_file = TDA10071_DEFAULT_FIRMWARE; u8 tmp, buf[4]; @@ -968,14 +968,17 @@ static int tda10071_init(struct dvb_frontend *fe) info("downloading firmware from file '%s'", fw_file); - for (remaining = fw->size; remaining > 0; + /* do not download last byte */ + fw_size = fw->size - 1; + + for (remaining = fw_size; remaining > 0; remaining -= (priv->cfg.i2c_wr_max - 1)) { len = remaining; if (len > (priv->cfg.i2c_wr_max - 1)) len = (priv->cfg.i2c_wr_max - 1); ret = tda10071_wr_regs(priv, 0xfa, - (u8 *) &fw->data[fw->size - remaining], len); + (u8 *) &fw->data[fw_size - remaining], len); if (ret) { err("firmware download failed=%d", ret); if (ret)