mirror of https://gitee.com/openkylin/linux.git
i2c: sh_mobile: remove get_data function
It makes the code much easier comprehensible to explicitly code that the first byte will be client address and all the following bytes are the actual data. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
This commit is contained in:
parent
5b3e3b43b0
commit
1f32fbdfc1
|
@ -358,18 +358,6 @@ static bool sh_mobile_i2c_is_first_byte(struct sh_mobile_i2c_data *pd)
|
||||||
return pd->pos == -1;
|
return pd->pos == -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sh_mobile_i2c_get_data(struct sh_mobile_i2c_data *pd,
|
|
||||||
unsigned char *buf)
|
|
||||||
{
|
|
||||||
switch (pd->pos) {
|
|
||||||
case -1:
|
|
||||||
*buf = i2c_8bit_addr_from_msg(pd->msg);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
*buf = pd->msg->buf[pd->pos];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static int sh_mobile_i2c_isr_tx(struct sh_mobile_i2c_data *pd)
|
static int sh_mobile_i2c_isr_tx(struct sh_mobile_i2c_data *pd)
|
||||||
{
|
{
|
||||||
unsigned char data;
|
unsigned char data;
|
||||||
|
@ -379,8 +367,13 @@ static int sh_mobile_i2c_isr_tx(struct sh_mobile_i2c_data *pd)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sh_mobile_i2c_get_data(pd, &data);
|
if (sh_mobile_i2c_is_first_byte(pd)) {
|
||||||
i2c_op(pd, sh_mobile_i2c_is_first_byte(pd) ? OP_TX_FIRST : OP_TX, data);
|
data = i2c_8bit_addr_from_msg(pd->msg);
|
||||||
|
i2c_op(pd, OP_TX_FIRST, data);
|
||||||
|
} else {
|
||||||
|
data = pd->msg->buf[pd->pos];
|
||||||
|
i2c_op(pd, OP_TX, data);
|
||||||
|
}
|
||||||
|
|
||||||
pd->pos++;
|
pd->pos++;
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -393,7 +386,7 @@ static int sh_mobile_i2c_isr_rx(struct sh_mobile_i2c_data *pd)
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if (sh_mobile_i2c_is_first_byte(pd)) {
|
if (sh_mobile_i2c_is_first_byte(pd)) {
|
||||||
sh_mobile_i2c_get_data(pd, &data);
|
data = i2c_8bit_addr_from_msg(pd->msg);
|
||||||
i2c_op(pd, OP_TX_FIRST, data);
|
i2c_op(pd, OP_TX_FIRST, data);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue