Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Aug 2002 02:37:36 +0900 (JST)
From:      Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org>
To:        marks@ripe.net
Cc:        acpi-jp@jp.FreeBSD.org, current@FreeBSD.ORG
Subject:   Re: Call for testers: acpica-unix-20020815
Message-ID:  <20020826.023736.128622794.iwasaki@jp.FreeBSD.org>
In-Reply-To: <20020825165945.GC2121@laptop.6bone.nl>
References:  <20020822.235142.48538213.iwasaki@jp.FreeBSD.org> <20020825165945.GC2121@laptop.6bone.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
> I applied the patches, and I still have the same results on my laptop.
> 
> I have a Dell Latitude C640 and my screen won't come back after a suspend.
> The machine works fine besides that.

OK, I think this is not related with ACPI CA code update.
Our device driver (maybe syscons?) or X server issue.

> Do you have any idea/advice how this can be debugged?

If you have this problem w/ X running, and don't have w/o X,
please try attached patches.

Thanks

Index: isa/syscons_isa.c
===================================================================
RCS file: /home/ncvs/src/sys/isa/syscons_isa.c,v
retrieving revision 1.17
diff -u -r1.17 syscons_isa.c
--- isa/syscons_isa.c	30 Jun 2001 10:15:06 -0000	1.17
+++ isa/syscons_isa.c	16 Feb 2002 13:11:50 -0000
@@ -88,6 +88,39 @@
 	return sc_attach_unit(device_get_unit(dev), device_get_flags(dev));
 }
 
+static int	sc_cur_scr;
+
+static int
+scsuspend(device_t dev)
+{
+	int		retry = 10;
+	static int	dummy;
+	sc_softc_t	*sc;
+
+	sc = &main_softc;
+	sc_cur_scr = sc->cur_scp->index;
+	do {
+		sc_switch_scr(sc, 0);
+		if (!sc->switch_in_progress) {
+			break;
+		}
+		tsleep(&dummy, 0, "scsuspend", 100);
+	} while (retry--);
+
+	return (0);
+}
+
+static int
+scresume(device_t dev)
+{
+	sc_softc_t	*sc;
+
+	sc = &main_softc;
+	sc_switch_scr(sc, sc_cur_scr);
+
+	return (0);
+}
+
 int
 sc_max_unit(void)
 {
@@ -230,6 +263,8 @@
 	DEVMETHOD(device_identify,	scidentify),
 	DEVMETHOD(device_probe,         scprobe),
 	DEVMETHOD(device_attach,        scattach),
+	DEVMETHOD(device_suspend,       scsuspend),
+	DEVMETHOD(device_resume,        scresume),
 	{ 0, 0 }
 };
 

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020826.023736.128622794.iwasaki>