From: Pavel Machek <pavel@suse.cz>
To: "Grover, Andrew" <andrew.grover@intel.com>
Cc: "'Woller, Thomas'" <twoller@crystal.cirrus.com>,
"'linux-kernel@vger.kernel.org'" <linux-kernel@vger.kernel.org>
Subject: Re: Incorrect mdelay() results on Power Managed Machines x86
Date: Mon, 26 Mar 2001 00:00:49 +0000 [thread overview]
Message-ID: <20010326000048.A50@(none)> (raw)
In-Reply-To: <4148FEAAD879D311AC5700A0C969E8905DE7A2@orsmsx35.jf.intel.com>; from andrew.grover@intel.com on Thu, Mar 22, 2001 at 02:53:35PM -0800
Hi!
> > During resume the IBM thinkpad with the cs46xx driver needs
> > to delay 700
> > milleseconds, so if the machine is booted up on battery power, then to
> > ensure that the delay is long enough, then a value of 3000
> > milleseconds is
> > must be programmed into the driver (3 seconds!). all the
> > mdelay and udelay
> > wait times are incorrect by the same factor, resulting in some serious
> > problems when attempting to wait specific delay times in
> > other parts of the
> > driver.
>
> Well yes this is a problem, but only when starting out with a low effective
> CPU freq and going high - the reverse is usually OK because longer than
> anticipated waits are OK.
>
> However, you can alleviate this problem by not using udelay (or mdelay) but
> using a kernel timer. I would think you should be doing this anyway (700ms
> is a LONG TIME) but this should also work regardless of effective CPU freq.
Going from 59usec to 19usec is probably as fatal as going from 10sec to 3sec.
> A grep of the kernel source shows cs46xx isn't even doing the biggest
> mdelay. I can understand the use of spinning on a calibrated loop for less
> than a clock tick, but I gotta think there are better ways for longer
> periods.
>
> I wonder if there is a way to modify mdelay to use a kernel timer if
> interval > 10msec? I am not familiar with this section of the kernel, but I
> do know that Microsoft's similar function KeStallExecutionProcessor is not
> recommended for more than 50 *micro*seconds.
You can't use kernel timer from within interrupts.
--
Philips Velo 1: 1"x4"x8", 300gram, 60, 12MB, 40bogomips, linux, mutt,
details at http://atrey.karlin.mff.cuni.cz/~pavel/velo/index.html.
next prev parent reply other threads:[~2001-03-28 20:57 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-03-22 22:53 Incorrect mdelay() results on Power Managed Machines x86 Grover, Andrew
2001-03-22 23:07 ` Alan Cox
2001-03-26 0:00 ` Pavel Machek [this message]
-- strict thread matches above, loose matches on Subject: below --
2001-03-30 17:17 Grover, Andrew
2001-03-29 18:30 Woller, Thomas
2001-03-28 23:12 Grover, Andrew
2001-03-29 4:10 ` Alan Cox
2001-03-24 3:55 sfr
2001-03-23 16:43 Woller, Thomas
2001-03-23 4:00 sfr
2001-03-23 9:54 ` Alan Cox
2001-03-26 0:06 ` Pavel Machek
2001-03-22 23:26 Woller, Thomas
2001-03-22 23:37 ` Alan Cox
2001-03-23 1:42 ` Tim Wright
2001-03-23 9:45 ` Alan Cox
2001-03-22 20:29 Woller, Thomas
2001-03-22 21:26 ` Alan Cox
2001-03-23 6:43 ` Dave Zarzycki
2001-03-22 23:29 ` Pavel Machek
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='20010326000048.A50@(none)' \
--to=pavel@suse.cz \
--cc=andrew.grover@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=twoller@crystal.cirrus.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.