Am 08.03.2017 um 08:53 schrieb Ben Dooks: > Probably a bad idea. Zero data could just be an address is there check > Thanks for pointing out. > On 8 Mar 2017 06:51, "Heiner Kallweit" <hkallweit1@xxxxxxxxx <mailto:hkallweit1@xxxxxxxxx>> wrote: > > Explicitely ignore messages with length zero. This also allows to > remove some now unneeded checks during message processing. > > Signed-off-by: Heiner Kallweit <hkallweit1@xxxxxxxxx <mailto:hkallweit1@xxxxxxxxx>> > --- > drivers/i2c/busses/i2c-meson.c | 20 +++++++++----------- > 1 file changed, 9 insertions(+), 11 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-meson.c b/drivers/i2c/busses/i2c-meson.c > index b3b881f9..58414699 100644 > --- a/drivers/i2c/busses/i2c-meson.c > +++ b/drivers/i2c/busses/i2c-meson.c > @@ -196,12 +196,10 @@ static void meson_i2c_prepare_xfer(struct meson_i2c *i2c) > for (i = 0; i < i2c->count - 1; i++) > meson_i2c_add_token(i2c, TOKEN_DATA); > > - if (i2c->count) { > - if (write || i2c->pos + i2c->count < i2c->msg->len) > - meson_i2c_add_token(i2c, TOKEN_DATA); > - else > - meson_i2c_add_token(i2c, TOKEN_DATA_LAST); > - } > + if (write || i2c->pos + i2c->count < i2c->msg->len) > + meson_i2c_add_token(i2c, TOKEN_DATA); > + else > + meson_i2c_add_token(i2c, TOKEN_DATA_LAST); > > if (write) > meson_i2c_put_data(i2c, i2c->msg->buf + i2c->pos, i2c->count); > @@ -257,11 +255,8 @@ static irqreturn_t meson_i2c_irq(int irqno, void *dev_id) > > switch (i2c->state) { > case STATE_READ: > - if (i2c->count > 0) { > - meson_i2c_get_data(i2c, i2c->msg->buf + i2c->pos, > - i2c->count); > - i2c->pos += i2c->count; > - } > + meson_i2c_get_data(i2c, i2c->msg->buf + i2c->pos, i2c->count); > + i2c->pos += i2c->count; > > if (i2c->pos >= i2c->msg->len) { > meson_i2c_stop(i2c); > @@ -371,6 +366,9 @@ static int meson_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, > clk_enable(i2c->clk); > > for (i = 0; i < num; i++) { > + /* ignore messages with length 0 */ > + if (!msgs[i].len) > + continue; > ret = meson_i2c_xfer_msg(i2c, &msgs[i], i == num - 1); > if (ret) > break; > -- > 2.12.0 > > > > _______________________________________________ > linux-amlogic mailing list > linux-amlogic@xxxxxxxxxxxxxxxxxxx <mailto:linux-amlogic@xxxxxxxxxxxxxxxxxxx> > http://lists.infradead.org/mailman/listinfo/linux-amlogic <http://lists.infradead.org/mailman/listinfo/linux-amlogic> > -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html