Hi, Coming back to $subject: Something like the patch below should work I think, with dvb_{resume|suspend}_frontend() being called by the power management functions of the adapter driver, i.e. cx88-dvb for example. It's untested through. Comments? Gerd Index: linux-2.6.11-rc3/drivers/media/dvb/dvb-core/dvb_frontend.c =================================================================== --- linux-2.6.11-rc3.orig/drivers/media/dvb/dvb-core/dvb_frontend.c 2005-02-04 11:23:37.000000000 +0100 +++ linux-2.6.11-rc3/drivers/media/dvb/dvb-core/dvb_frontend.c 2005-02-04 13:46:00.000000000 +0100 @@ -919,3 +919,24 @@ int dvb_unregister_frontend(struct dvb_f return 0; } EXPORT_SYMBOL(dvb_unregister_frontend); + +void dvb_suspend_frontend(struct dvb_frontend* fe) +{ + if (fe->ops->sleep) + fe->ops->sleep(fe); +} +EXPORT_SYMBOL(dvb_suspend_frontend); + +void dvb_resume_frontend(struct dvb_frontend* fe) +{ + struct dvb_frontend_private *fepriv = fe->frontend_priv; + + if (fe->ops->init) + fe->ops->init(fe); + fepriv->state = FESTATE_RETUNE; + dvb_frontend_wakeup(fe); + dvb_frontend_add_event (fe, 0); + fepriv->status = 0; +} +EXPORT_SYMBOL(dvb_resume_frontend); + Index: linux-2.6.11-rc3/drivers/media/dvb/dvb-core/dvb_frontend.h =================================================================== --- linux-2.6.11-rc3.orig/drivers/media/dvb/dvb-core/dvb_frontend.h 2005-02-04 11:25:55.000000000 +0100 +++ linux-2.6.11-rc3/drivers/media/dvb/dvb-core/dvb_frontend.h 2005-02-04 13:43:20.000000000 +0100 @@ -122,5 +122,7 @@ extern int dvb_register_frontend(struct struct dvb_frontend* fe); extern int dvb_unregister_frontend(struct dvb_frontend* fe); +extern void dvb_suspend_frontend(struct dvb_frontend* fe); +extern void dvb_resume_frontend(struct dvb_frontend* fe); #endif