Hi Wolfram,
On 2021-01-05 20:57, Wolfram Sang wrote:
+ 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.
In context to the previous comment [1], I have implemented this way.
But, yeah anything is fine for me.
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.
In geni_i2c_abort_xfer() function gi2c->cur will be made NULL, so
copying it before to "cur" is needed here.
Reset looks good!
[1]
https://patchwork.kernel.org/project/linux-arm-msm/patch/20200820103522.26242-3-rojay@xxxxxxxxxxxxxx/#23560541
Thanks,
Roja