--- w1_therm.c_org 2017-06-06 04:05:48.028105363 +0200 +++ w1_therm.c 2017-06-06 04:05:36.883914878 +0200 @@ -245,7 +245,7 @@ w1_write_8(dev, W1_COPY_SCRATCHPAD); - if (external_power) { + if (external_power && w1_strong_pullup != 2) { mutex_unlock(&dev->bus_mutex); sleep_rem = msleep_interruptible(tm); @@ -473,7 +473,7 @@ w1_write_8(dev, W1_CONVERT_TEMP); - if (external_power) { + if (external_power && w1_strong_pullup != 2) { mutex_unlock(&dev->bus_mutex); sleep_rem = msleep_interruptible(tm);