diff -r f96f68c4e5d9 linux/drivers/media/dvb/dvb-usb/dib0700_core.c --- a/linux/drivers/media/dvb/dvb-usb/dib0700_core.c Thu Jul 19 18:06:54 2007 -0300 +++ b/linux/drivers/media/dvb/dvb-usb/dib0700_core.c Fri Jul 20 13:58:07 2007 +0200 @@ -238,6 +238,9 @@ int dib0700_streaming_ctrl(struct dvb_us struct dib0700_state *st = adap->dev->priv; u8 b[4]; + if ((onoff != 2) && (onoff != 3)) + return 0; + b[0] = REQUEST_ENABLE_VIDEO; b[1] = 0x00; b[2] = (0x01 << 4); /* Master mode */ @@ -245,7 +248,7 @@ int dib0700_streaming_ctrl(struct dvb_us deb_info("modifying (%d) streaming state for %d\n", onoff, adap->id); - if (onoff) + if (onoff == 2) st->channel_state |= 1 << adap->id; else st->channel_state &= ~(1 << adap->id); diff -r f96f68c4e5d9 linux/drivers/media/dvb/frontends/dib3000mc.c --- a/linux/drivers/media/dvb/frontends/dib3000mc.c Thu Jul 19 18:06:54 2007 -0300 +++ b/linux/drivers/media/dvb/frontends/dib3000mc.c Sat Jul 21 14:30:51 2007 +0200 @@ -21,6 +21,7 @@ #include "dvb_frontend.h" #include "dib3000mc.h" +#include "dvb-usb.h" static int debug; module_param(debug, int, 0644); @@ -316,6 +317,7 @@ static int dib3000mc_init(struct dvb_fro { struct dib3000mc_state *state = demod->demodulator_priv; struct dibx000_agc_config *agc = state->cfg->agc; + struct dvb_usb_adapter *adap = demod->dvb->priv; // Restart Configuration dib3000mc_write_word(state, 1027, 0x8000); @@ -429,12 +431,17 @@ static int dib3000mc_init(struct dvb_fro /* close the i2c-gate */ dib3000mc_write_word(state, 769, (1 << 7) ); + adap->props.streaming_ctrl(adap,2); + return 0; } static int dib3000mc_sleep(struct dvb_frontend *demod) { struct dib3000mc_state *state = demod->demodulator_priv; + struct dvb_usb_adapter *adap = demod->dvb->priv; + + adap->props.streaming_ctrl(adap,3); dib3000mc_write_word(state, 1031, 0xFFFF); dib3000mc_write_word(state, 1032, 0xFFFF);