低功耗问题

低功耗问题

我们用了一颗MCU,待机时通过它切断主板电源。

由于采用的是silicon tuner,为了保证其在待机状态下的loop through性能,
需要继续给tuner模块供电,同时为了保证总功耗低于1W,要求置tuner于待机模式,即关闭pll.

从linux/drivers/media/dvb/dvb-core/dvb_frontend.c
函数: dvb_frontend_thread()
看出:我们关闭所有打开的frontend文件句柄,将退出该thread,并且调用tuner的sleep函数。
但是:我们不知道是否其它模块有打开frontend文件,更重要的是,我们希望close frontend文件描述符后,tuner 进入standby会立即生效,因为我们需要通过MCU切断主板电源。

鉴于这些问题的存在,最后决定通过ioctl实现。

即:
在相同的文件函数dvb_frontend_ioctl(),    
           case FE_SET_LOWPOWER_MODE:
                if (fe->ops.tuner_ops.sleep) {
                    fe->ops.tuner_ops.sleep(fe);
                }

这样,在切断主板电源之前,通过该ioctl让tuner进入standby.

你可能感兴趣的:(职场,休闲,standby,tuner)