+ geni_status = readl_relaxed(gi2c->se.base + SE_GENI_STATUS);
+ if (!(geni_status & M_GENI_CMD_ACTIVE))
+ goto out;
+
+ cur = gi2c->cur;
+ geni_i2c_abort_xfer(gi2c);
+ if (cur->flags & I2C_M_RD)
+ geni_i2c_rx_msg_cleanup(gi2c, cur);
+ else
+ geni_i2c_tx_msg_cleanup(gi2c, cur);
+out:
+ pm_runtime_put_sync_suspend(gi2c->se.dev);
+}
The use of 'goto' is not needed here IMHO. I think:
if (geni_status & M_GENI_CMD_ACTIVE) {
do_the_stuff
}
pm_runtime_put_sync_suspend(...);
is more readable, in fact.
Also, I don't think we really need the 'cur'
variable and just use 'gi2c->cur' but that's very minor and you can keep
it if you like it.
Reset looks good!