From 9769cb383926cfa3822ba447054c10128500a376 Mon Sep 17 00:00:00 2001 From: Patrick Boettcher Date: Wed, 20 Sep 2006 06:06:11 -0300 Subject: [PATCH] --- yaml --- r: 38248 b: refs/heads/master c: a37ddced86b092f8f4fd8dc20d4f5dce2e7cc6d3 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/media/dvb/dvb-usb/dvb-usb-init.c | 11 ++++++++--- trunk/drivers/media/dvb/dvb-usb/dvb-usb.h | 2 ++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 6566fbf3ddbb..f403e173a4c4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1d57436040a7ff486fb90a82b6f542fbe275f624 +refs/heads/master: a37ddced86b092f8f4fd8dc20d4f5dce2e7cc6d3 diff --git a/trunk/drivers/media/dvb/dvb-usb/dvb-usb-init.c b/trunk/drivers/media/dvb/dvb-usb/dvb-usb-init.c index 0dd90d1fe67c..ffdde83d1e77 100644 --- a/trunk/drivers/media/dvb/dvb-usb/dvb-usb-init.c +++ b/trunk/drivers/media/dvb/dvb-usb/dvb-usb-init.c @@ -136,7 +136,7 @@ static int dvb_usb_init(struct dvb_usb_device *d) 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 @@ static struct dvb_usb_device_description * dvb_usb_find_device(struct usb_device 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); } diff --git a/trunk/drivers/media/dvb/dvb-usb/dvb-usb.h b/trunk/drivers/media/dvb/dvb-usb/dvb-usb.h index 2ec7c777fcef..376c45a8e779 100644 --- a/trunk/drivers/media/dvb/dvb-usb/dvb-usb.h +++ b/trunk/drivers/media/dvb/dvb-usb/dvb-usb.h @@ -325,6 +325,8 @@ struct dvb_usb_adapter { * @desc: pointer to the device's struct dvb_usb_device_description. * @state: initialization and runtime state of the device. * + * @powered: indicated whether the device is power or not. + * Powered is in/decremented for each call to modify the state. * @udev: pointer to the device's struct usb_device. * * @usb_mutex: semaphore of USB control messages (reading needs two messages)