Thoughts about suspending DVB C PCI device transparently

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Hi all.

Once in a time I wrote into Mantis driver Suspend / resume
code. The idea was, that bridge driver (mantis_dvb.c) will
handle the suspend / resume transparently to the application.

With a PCI device this was rather easy to achieve.
With xine, there was just a glitch with video and audio
after resume.

So after suspend, frontend was tuned into the original
frequency, and the DMA transfer state was restored.

Suspend:
1. Turn off possible DMA transfer if active (feeds > 0)
2. Remember tuner power on state.
3. Do tuner and fronted power off.

Resume:
1. Restore frontend and tuner power.
2. (feeds > 0)? Set frequency for the tuner.
3. (feeds > 0)? Restore DMA transfer into previous state.

What do you think about this?
I need some feedback: is it worth coding?
Other needed code is usual suspend / resume stuff.

Is it worth powering off the tuner, if it isn't
used?

For my current usage, powering off the unused tuner
gives more power savings than implementing suspend/resume.

Marko Ristola

------------------------------

// suspend to standby, ram or disk.
int mantis_dvb_suspend(struct mantis_pci *mantis, pm_message_t
    prevState, pm_message_t mesg)
{
        if (mantis->feeds > 0)
mantis_dma_stop(mantis);

        if (mantis->has_power)
                mantis_fe_powerdown(mantis); // power off tuner.

        return 0;
}

void mantis_dvb_resume(struct mantis_pci *mantis, pm_message_t prevMesg)
{
       // power on frontend and tuner.
       mantis_frontend_tuner_init(mantis);

       if (mantis->feeds > 0 && mantis->fe->ops.tuner_ops.init)
                (mantis->fe->ops.init)(mantis->fe);

        if (mantis->feeds > 0) {
                (mantis->fe->ops.set_frontend)(mantis->fe, NULL);
mantis_dma_start(mantis);
        }
}

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux