[d-kernel] Re: I: new -wks26 kernel
Alex Yustasov
snmon на server.by
Ср Янв 5 15:38:35 MSK 2005
On Tue, Jan 04, 2005 at 08:41:25PM +0300, Konstantin A. Lepikhov wrote:
> интересно, есть способ сделать это культурно (раньше можно было сказать
> service sound stop, как сейчас?)
Если звуковые модули не заняты, то работает (или service sound stop или
выгружаются все модули). Если что-то использует эти модули (xmms например),
тогда звук ломается.
Сейчас посмотрел на swsusp-2.4.28-2.1.5.7 трезвым взглядом - оказывается
он не посылает PM_SUSPEND/PM_RESUME никому.
Вообщем
Для 2.4.28 на http://snmon.at.tut.by/swsusp-2.4.28-2.1.5.7.tar.bz2
5b3f0b0a1b15f8260ca73a8ea38fcd0c swsusp-2.4.28-2.1.5.7.tar.bz2
плюс патч в аттаче. Исправляет только звук.
>
> > Похоже alsa-1.0.7 не поможет.
> >
> > Прошу прощения за вопрос, но как работать с cvs?
> это к rider@ наверное, он доступом туда рулит.
Помнится, доступ он обещал всем, кто для ядра что-то делает.
Вот как что-то положить, а то страшно что поломаю.
-------------- next part --------------
--- old/kernel/power/suspend.c 2004-11-25 13:51:15 +0200
+++ new/kernel/power/suspend.c 2004-11-25 13:51:45 +0200
@@ -53,6 +53,7 @@
#include <linux/module.h>
#include <linux/console.h>
#include <linux/version.h>
+#include <linux/pm.h>
#include <asm/uaccess.h>
#include "suspend.h"
@@ -91,6 +91,8 @@
SUSPEND_DRIVERS_PRE_POWERDOWN,
};
+static int pm_suspend_state = 0;
+
void suspend_drivers_resume(int stage)
{
switch (stage) {
@@ -100,6 +102,12 @@
case SUSPEND_DRIVERS_USED_DEVICES_IRQS_ENABLED:
BUG_ON(irqs_disabled());
+ if (pm_suspend_state) {
+ if (pm_send_all(PM_RESUME,(void *)0))
+ printk(name_suspend
+ "Problem while sending resume event\n");
+ pm_suspend_state=0;
+ }
break;
case SUSPEND_DRIVERS_UNUSED_DEVICES_IRQS_DISABLED:
@@ -140,6 +148,14 @@
case SUSPEND_DRIVERS_USED_DEVICES_IRQS_ENABLED:
BUG_ON(irqs_disabled());
+ if (!pm_suspend_state) {
+ if (pm_send_all(PM_SUSPEND,(void *)3)) {
+ printk(name_suspend
+ "Problem while sending suspend event\n");
+ result=1;
+ }
+ pm_suspend_state=1;
+ }
break;
case SUSPEND_DRIVERS_PRE_POWERDOWN: /* Power down system */
Подробная информация о списке рассылки devel-kernel