public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Pavel Machek <pavel-+ZI9xUNit7I@public.gmane.org>
To: Michael Frank <mflt1-DTdK3Ks6N5kHTnRCetW4+N0b+6lKrnBL@public.gmane.org>
Cc: acpi-devel-pyega4qmqnRoyOMFzWx49A@public.gmane.org
Subject: Re: 2.5.69 - S3
Date: Mon, 19 May 2003 10:53:24 +0200	[thread overview]
Message-ID: <20030519085323.GC130@elf.ucw.cz> (raw)
In-Reply-To: <200305191153.51196.mflt1-DTdK3Ks6N5kHTnRCetW4+N0b+6lKrnBL@public.gmane.org>

Hi!

> > > and mode 6)
> > >
> > >   System hangs after all tasks left fridge with disk led on.
> > >
> > > I suppose IDE gets false interupt upon resume.
> >
> > Spurious interrupts should be handled gracefully by IDE. On velo I
> > ran my machine with IDE interrupt connected to 1kHz timer, and it
> > more or less worked ("IDE0: spurious interrupt", "Last message
> > repeated 1539 times").
> 
> Cute, Your velo S3 OK (before it died) ? - Do you know of any machines that really work with S3?

I just fixed mtrrs and suspended/resumed that desktop ~10 times... It
seems okay. [Not yet applicable to mainline, I guess, as mtrr is not
in].

								Pavel

--- /usr/src/tmp/linux/arch/i386/kernel/cpu/mtrr/main.c	2003-05-19 10:44:09.000000000 +0200
+++ /usr/src/linux/arch/i386/kernel/cpu/mtrr/main.c	2003-05-19 10:43:10.000000000 +0200
@@ -648,33 +648,33 @@
 };
  
 #ifdef CONFIG_PM
-struct mtrr_suspend_state
-{
+struct mtrr_suspend_one {
 	mtrr_type ltype;
 	unsigned long lbase;
 	unsigned int lsize;
 };
 
-/* We return a pointer ptr on an area of *ptr bytes
-   beginning at ptr+sizeof(int)
-   This buffer has to be saved in some way during suspension */
-static int *mtrr_save_state(void)
+struct mtrr_suspend_state {
+	int len;
+	struct mtrr_suspend_one mtrr[0];
+};
+
+/* This buffer has to be saved in some way during suspension */
+struct mtrr_suspend_state *mtrr_save_state(void)
 {
 	int i, len;
-	int *ptr = NULL;
-	static struct mtrr_suspend_state *mtrr_suspend_buffer=NULL;
+	static struct mtrr_suspend_state *ptr = NULL;
+	static struct mtrr_suspend_one *mtrr_suspend_buffer=NULL;
      
 	if(!mtrr_suspend_buffer)
 	{
-		len = num_var_ranges * sizeof (struct mtrr_suspend_state) + sizeof(int);
+		len = num_var_ranges * sizeof (struct mtrr_suspend_one) + sizeof(int);
 		ptr = kmalloc (len, GFP_KERNEL);
 		if (ptr == NULL)
 			return(NULL);
-		*ptr = len;
-		ptr++;
-		mtrr_suspend_buffer = (struct mtrr_suspend_state *)ptr;
-		ptr--;
+		ptr->len = len;
 	}
+	mtrr_suspend_buffer = &ptr->mtrr;
 	for (i = 0; i < num_var_ranges; ++i,mtrr_suspend_buffer++)
 		mtrr_if->get (i,
 			      &(mtrr_suspend_buffer->lbase),
@@ -684,19 +684,17 @@
 }
 
 /* We restore mtrrs from buffer ptr */
-static void mtrr_restore_state(int *ptr)
+static void mtrr_restore_state(struct mtrr_suspend_state *ptr)
 {
 	int i, len;
-	struct mtrr_suspend_state *mtrr_suspend_buffer;
+	struct mtrr_suspend_one *mtrr_suspend_buffer;
      
-	len = num_var_ranges * sizeof (struct mtrr_suspend_state) + sizeof(int);
-	if(*ptr != len)
-	{
-		printk ("mtrr: Resuming failed due to different number of MTRRs\n");
+	len = num_var_ranges * sizeof (struct mtrr_suspend_one) + sizeof(int);
+	if(ptr->len != len) {
+		printk (KERN_CRIT "mtrr: Resuming failed due to different number of MTRRs\n");
 		return;
 	}
-	ptr++;
-	mtrr_suspend_buffer=(struct mtrr_suspend_state *)ptr;
+	mtrr_suspend_buffer = &ptr->mtrr;
 	for (i = 0; i < num_var_ranges; ++i,mtrr_suspend_buffer++)     
 		if (mtrr_suspend_buffer->lsize)	  
 			set_mtrr(i,
@@ -705,7 +703,7 @@
 				 mtrr_suspend_buffer->ltype);
 }
 
-static void *mtrr_state;
+static struct mtrr_suspend_state *mtrr_state;
 
 static int mtrr_suspend(struct device *dev, u32 state, u32 level)
 {


-- 
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]


-------------------------------------------------------
This SF.net email is sponsored by: If flattening out C++ or Java
code to make your application fit in a relational database is painful, 
don't do it! Check out ObjectStore. Now part of Progress Software.
http://www.objectstore.net/sourceforge

  parent reply	other threads:[~2003-05-19  8:53 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-13 17:40 2.5.69 - S3 Michael Frank
     [not found] ` <20030516111120.GA686@zaurus.ucw.cz>
     [not found]   ` <20030516111120.GA686-VNkyu7EogrqGmfs5Z0+9fw@public.gmane.org>
2003-05-17 21:23     ` Michael Frank
     [not found]       ` <200305180523.25157.mflt1-DTdK3Ks6N5kHTnRCetW4+N0b+6lKrnBL@public.gmane.org>
2003-05-18 10:48         ` Pavel Machek
     [not found]           ` <20030518104852.GA324-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2003-05-18 12:05             ` Michael Frank
     [not found]               ` <200305182005.30192.mflt1-DTdK3Ks6N5kHTnRCetW4+N0b+6lKrnBL@public.gmane.org>
2003-05-18 21:12                 ` Pavel Machek
     [not found]                   ` <20030518211245.GA452-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2003-05-19  3:53                     ` Michael Frank
     [not found]                       ` <200305191153.51196.mflt1-DTdK3Ks6N5kHTnRCetW4+N0b+6lKrnBL@public.gmane.org>
2003-05-19  8:07                         ` Karol Kozimor
2003-05-19  8:31                         ` Pavel Machek
2003-05-19  8:53                         ` Pavel Machek [this message]
     [not found] ` <200305191731.34692.mflt1@micrologica.com.hk>
     [not found]   ` <20030519100135.GA18034@atrey.karlin.mff.cuni.cz>
     [not found]     ` <20030519100135.GA18034-jyMamyUUXNJG4ohzP4jBZS1Fcj925eT/@public.gmane.org>
2003-05-19 10:22       ` Michael Frank

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030519085323.GC130@elf.ucw.cz \
    --to=pavel-+zi9xunit7i@public.gmane.org \
    --cc=acpi-devel-pyega4qmqnRoyOMFzWx49A@public.gmane.org \
    --cc=mflt1-DTdK3Ks6N5kHTnRCetW4+N0b+6lKrnBL@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox