hw/i2c: Fix early lock drop
hw/i2c: Fix early lock drop

When interacting with an I2C master the p8-i2c driver (common to p9)
aquires a per-master lock which it holds for the duration of it's
interaction with the master.  Unfortunately, when
p8_i2c_check_initial_status() detects that the master is busy with
another transaction it drops the lock and returns OPAL_BUSY. This is
contrary to the driver's locking strategy which requires that the
caller aquire and drop the lock. This leads to a crash due to the
double unlock(), which skiboot treats as fatal.

Signed-off-by: Oliver O'Halloran <3dfaff8fa6ae977f042064a112a6aac576279b9b@gmail.com>
Signed-off-by: Stewart Smith <ec31ab75ddf977353c8f660f92ea8b23f64aef25@linux.vnet.ibm.com>

stewart-ibm/skiboot,legoater/skiboot,qemu/skiboot,open-power/skiboot,open-power/skiboot,mikey/skiboot,open-power/skiboot,shenki/skiboot,shenki/skiboot,mikey/skiboot,stewart-ibm/skiboot,shenki/skiboot,legoater/skiboot,open-power/skiboot,qemu/skiboot,shenki/skiboot,qemu/skiboot,legoater/skiboot,shenki/skiboot,stewart-ibm/skiboot,qemu/skiboot,mikey/skiboot,qemu/skiboot,legoater/skiboot,legoater/skiboot,open-power/skiboot