From ea21463bae06622a4eea9ff5afff063ac2ada0f4 Mon Sep 17 00:00:00 2001 From: Antti Palosaari Date: Wed, 12 Sep 2012 20:23:45 -0300 Subject: [PATCH] --- yaml --- r: 331063 b: refs/heads/master c: 0d2d603124fe08a226d348495f345acd9a399214 h: refs/heads/master i: 331061: 06a925241e944e61a36ff8afbcb8a9ea83a811a9 331059: 26027141a30372fe6b0802b6628172f74a1ad209 331055: 2e7307c9a95a1b2b8e33638c8c64fb5d4d4425f6 v: v3 --- [refs] | 2 +- trunk/drivers/media/dvb-frontends/ec100.c | 45 +++++++++++++++-------- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/[refs] b/[refs] index 935a935229c2..2e6bbe03133f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 20399b3b0e3494ccd4a74bdd86cd870847f196fe +refs/heads/master: 0d2d603124fe08a226d348495f345acd9a399214 diff --git a/trunk/drivers/media/dvb-frontends/ec100.c b/trunk/drivers/media/dvb-frontends/ec100.c index b4ea34c2d09f..9d424809d06b 100644 --- a/trunk/drivers/media/dvb-frontends/ec100.c +++ b/trunk/drivers/media/dvb-frontends/ec100.c @@ -33,24 +33,33 @@ struct ec100_state { /* write single register */ static int ec100_write_reg(struct ec100_state *state, u8 reg, u8 val) { + int ret; u8 buf[2] = {reg, val}; - struct i2c_msg msg = { - .addr = state->config.demod_address, - .flags = 0, - .len = 2, - .buf = buf}; - - if (i2c_transfer(state->i2c, &msg, 1) != 1) { - dev_warn(&state->i2c->dev, "%s: i2c wr failed reg=%02x\n", - KBUILD_MODNAME, reg); - return -EREMOTEIO; + struct i2c_msg msg[1] = { + { + .addr = state->config.demod_address, + .flags = 0, + .len = sizeof(buf), + .buf = buf, + } + }; + + ret = i2c_transfer(state->i2c, msg, 1); + if (ret == 1) { + ret = 0; + } else { + dev_warn(&state->i2c->dev, "%s: i2c wr failed=%d reg=%02x\n", + KBUILD_MODNAME, ret, reg); + ret = -EREMOTEIO; } - return 0; + + return ret; } /* read single register */ static int ec100_read_reg(struct ec100_state *state, u8 reg, u8 *val) { + int ret; struct i2c_msg msg[2] = { { .addr = state->config.demod_address, @@ -65,12 +74,16 @@ static int ec100_read_reg(struct ec100_state *state, u8 reg, u8 *val) } }; - if (i2c_transfer(state->i2c, msg, 2) != 2) { - dev_warn(&state->i2c->dev, "%s: i2c rd failed reg=%02x\n", - KBUILD_MODNAME, reg); - return -EREMOTEIO; + ret = i2c_transfer(state->i2c, msg, 2); + if (ret == 2) { + ret = 0; + } else { + dev_warn(&state->i2c->dev, "%s: i2c rd failed=%d reg=%02x\n", + KBUILD_MODNAME, ret, reg); + ret = -EREMOTEIO; } - return 0; + + return ret; } static int ec100_set_frontend(struct dvb_frontend *fe)