mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-19 07:27:50 +00:00
i2c: mv64xxx: refactor send_start
For start and restart, we are doing the same thing. Let's consolidate that. Tested-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
This commit is contained in:
parent
ceccd298f6
commit
4c5b38e881
@ -422,6 +422,17 @@ mv64xxx_i2c_fsm(struct mv64xxx_i2c_data *drv_data, u32 status)
|
||||
}
|
||||
}
|
||||
|
||||
static void mv64xxx_i2c_send_start(struct mv64xxx_i2c_data *drv_data)
|
||||
{
|
||||
/* Can we offload this msg ? */
|
||||
if (mv64xxx_i2c_offload_msg(drv_data) < 0) {
|
||||
/* No, switch to standard path */
|
||||
mv64xxx_i2c_prepare_for_io(drv_data, drv_data->msgs);
|
||||
writel(drv_data->cntl_bits | MV64XXX_I2C_REG_CONTROL_START,
|
||||
drv_data->reg_base + drv_data->reg_offsets.control);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
mv64xxx_i2c_do_action(struct mv64xxx_i2c_data *drv_data)
|
||||
{
|
||||
@ -438,14 +449,8 @@ mv64xxx_i2c_do_action(struct mv64xxx_i2c_data *drv_data)
|
||||
|
||||
drv_data->msgs++;
|
||||
drv_data->num_msgs--;
|
||||
if (mv64xxx_i2c_offload_msg(drv_data) < 0) {
|
||||
drv_data->cntl_bits |= MV64XXX_I2C_REG_CONTROL_START;
|
||||
writel(drv_data->cntl_bits,
|
||||
drv_data->reg_base + drv_data->reg_offsets.control);
|
||||
mv64xxx_i2c_send_start(drv_data);
|
||||
|
||||
/* Setup for the next message */
|
||||
mv64xxx_i2c_prepare_for_io(drv_data, drv_data->msgs);
|
||||
}
|
||||
if (drv_data->errata_delay)
|
||||
udelay(5);
|
||||
|
||||
@ -463,13 +468,7 @@ mv64xxx_i2c_do_action(struct mv64xxx_i2c_data *drv_data)
|
||||
break;
|
||||
|
||||
case MV64XXX_I2C_ACTION_SEND_START:
|
||||
/* Can we offload this msg ? */
|
||||
if (mv64xxx_i2c_offload_msg(drv_data) < 0) {
|
||||
/* No, switch to standard path */
|
||||
mv64xxx_i2c_prepare_for_io(drv_data, drv_data->msgs);
|
||||
writel(drv_data->cntl_bits | MV64XXX_I2C_REG_CONTROL_START,
|
||||
drv_data->reg_base + drv_data->reg_offsets.control);
|
||||
}
|
||||
mv64xxx_i2c_send_start(drv_data);
|
||||
break;
|
||||
|
||||
case MV64XXX_I2C_ACTION_SEND_ADDR_1:
|
||||
|
Loading…
Reference in New Issue
Block a user