On 7/29/24 13:52, Wolfram Sang wrote:
The code I am suggesting is bascially yours without the retries
variable:
status = device_for_each_child(&ara->adapter->dev, &data,
smbus_do_alert);
if (data.addr == prev_addr && status != -EBUSY) {
device_for_each_child(&ara->adapter->dev, &data,
smbus_do_alert_force);
break;
}
prev_addr = data.addr;
Makes sense or am I missing something?
Yes, that should work and is indeed simpler. You are correct, the
additional loop should not be necessary since smbus_do_alert_force()
should already call all connected drivers and hopefully clear
the alert condition on those.
Great that we are aligned now! Do you have time to rework and test the
patch?
I'll give it a try.
Guenter