V4L/DVB (4657): Power control of the device for dual board

Corrected power control of the device for dual boards

Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-init.c b/drivers/media/dvb/dvb-usb/dvb-usb-init.c
index 0dd90d1..ffdde83 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb-init.c
+++ b/drivers/media/dvb/dvb-usb/dvb-usb-init.c
@@ -136,7 +136,7 @@
 		if (d->priv == NULL) {
 			err("no memory for priv in 'struct dvb_usb_device'");
 			return -ENOMEM;
-	}
+		}
 	}
 
 /* check the capabilities and set appropriate variables */
@@ -197,8 +197,13 @@
 
 int dvb_usb_device_power_ctrl(struct dvb_usb_device *d, int onoff)
 {
-	if (d->powered == !onoff) {
-		d->powered = onoff;
+	if (onoff)
+		d->powered++;
+	else
+		d->powered--;
+
+	if (d->powered == 0 || (onoff && d->powered == 1)) { // when switching from 1 to 0 or from 0 to 1
+		deb_info("power control: %d\n", onoff);
 		if (d->props.power_ctrl)
 			return d->props.power_ctrl(d, onoff);
 	}