Re: Stopping devices

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

 



On 29/05/06, Rafał Bilski <rafalbilski@xxxxxxxxxx> wrote:> I have annoyed kernel maintainers with my patches,> because I didn't know that such group exists. So> before I start annoying them again I ask here.>> For longhaul cpufreq driver it is necessary to stop> PCI bus and processor for >=1ms to let processor> sync internal PLL.>> This is start:> +       freeze_processes();> +       device_suspend(PMSG_FREEZE);> +       clear_bus_master();> +       local_irq_save(flags);> This is end:> +       local_irq_restore(flags);> +       restore_bus_master();> +       device_resume();> +       thaw_processes();>>> freeze_processes() will let me do anything in this time?> No more "scheduling while atomic" messages?> PMSG_FREEZE is not implemented yet for most devices, but> "will fix later". If I'm using this do I have to still> poke PIC registers or all device interrupts will be> disabled? Will tick (INT0) interrupt be left enabled> (i'm depending on this - this int wakeup processor)?> Can I use PM for this? It works - but is this proper?>
Maybe I'm misunderstanding what it is you are trying to do, but how about :
local_irq_save(flags);preempt_disable();msleep(2);preempt_enable();local_irq_restore(flags);

-- Jesper Juhl <jesper.juhl@xxxxxxxxx>Don't top-post  http://www.catb.org/~esr/jargon/html/T/top-post.htmlPlain text mails only, please      http://www.expita.com/nomime.html˙ň?ŽwĽ?ě;?ë˙éiy§!˘Ř^ŽW?Žv?˘ëm?ââ?ědzšŢ?đ+rŻ{řmś?˙ţf˘?ůĺţX§ťčŽäzšŢ?w°n'ŹüPţm§˙˙?ęçzYŢÁ¸?łú+?÷Ú


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux