Dave Jones [Tue, 9 Sep 2003 22:44:43 +0000 (23:44 +0100)]
[CPUFREQ] add cpufreq_update_policy()
Add a new cpufreq_update_policy call:
Certain cpufreq policy notifers have different needs at different times.
Thus it needs to be possible to re-evaluate an already set cpufreq policy.
Note that the cpufreq policy should only be set by one person: the user.
Not any other in-kernel code [with one exception, of course: during
booting].
1. Microsoft Windows XP Document.
we can get the SMI interface values from ax=E980/int15 BIOS call.
2. Intel SpeedStep Applet Document.(from HP.com)
http://h18007.www1.hp.com/support/files/evonotebook/us/download/10631.html
" Adds code to request transition ownership when processing
the system critical resume message. When a critical hibernate occurs,
the Applet does not receive any system level notification. The change forces
the Applet to re-acquire transition ownership upon resume from a critical hibernate. "
This is informative. This saied that something 'ownership' call is needed on SMI
interface first.
3. Grover, Andrew's int 15h patch posted to cpufreq ml
Message-ID: <F760B14C9561B941B89469F59BA3A847E96E28@orsmsx401.jf.intel.com>
code which call BIOS to get SMI values. I included it.
4. Malik Martin's rev engineering results.
call is made with BX, CX, EDI register values.
and need signature 'ISG' when call.
find function values. bx=1(get) and bx=2(set)
5. Marc Lehmann's 'speedstep' utility,
sample of assembler code to call SMI.
6. My work.
find function to return max/min freq which system supportd. (bx=4)
more values are gotten, but I cannot understand...
find 'ownership' function value(bx=0, which is other than 1 2 4..).
ToDo(in pregress)
support governor "auto" and using smi_event call, imprement auto freqchange
feature.
test on 440BX/ZX platform.
Memo
module parameters are override result of an int 15h/eax=E890h call.
these parameter value are gotten from Windows XP registory."
Also includes some bugfixes, updates and workarounds from me.
NB: A lot of BIOS out there are buggy. You might want to try this driver
also with Intel's default values -- smi_cmd = 0x82 and smi_port = 0xb2
cpumask_up.h is broken. It tries to access the "mask" member although
that cpumask_t is an ulong on UP. This breaks archs which uses cpumask
functions even on UP such as s390.
Use different var-names if they are non-static,
configure 4BRI like BRI cards, fixed new /proc entries,
inline declarations for common helper functions.
[PATCH] IDE: Fix Power Management request race on resume
The current IDE Power Management code I wrote has a race on wakeup when
the master device got resumed, it may take a request. At this point, a
PM resume request to a slave device of the same hwgroup would clear
hwgroup->rq and cause an Oops when the master device request completes.
This patch fixes it. Due to the context in which PM resume requests are
sent, just not clearing hwgroup->rq for these is enough.
I also removed a useless debug message in the PM code that was
actually misleading (people though it indicated a problem while it
didn't, it's really useless) and fix a typo in a comment.
[PATCH] IDE: Fix request handling with ide-default & ATAPI
This fixes a bug that happens when a request gets to the IDE layer for a
drive using ide-default (that is with no subdriver attached), like a
Power Management request. In this case, the core will wait for the
device status to match drive->read_stat, but that field contains by
default a value that is not suitable for ATAPI devices. This patch
fixes it.
Russell King [Tue, 9 Sep 2003 14:26:47 +0000 (15:26 +0100)]
[SERIAL] Convert serial config deps to select statements
The dependencies for CONFIG_SERIAL_CORE / CONFIG_SERIAL_CORE_CONSOLE
were becoming very messy. This cset converts the dependencies to
use "select" statements instead.
David Howells [Tue, 9 Sep 2003 03:16:16 +0000 (20:16 -0700)]
[PATCH] RxRPC update
Here's a patch to update the RxRPC driver. Most of it is CodingStyle fixes,
but it also includes a few miscellaneous bug fixes. stdint types are also
turned into C99 forms (eg: u32 -> uint32_t).
Benh saw some bugs where the queue would end up being in an invalid
state, and this could certainly explain one of them. We must not have a
stopped queue on the plug list, and blk_plug_device() right now will
happily plug a stopped queue.
We don't need to have it plugged either, blk_start_queue() will make
sure that request_fn gets run.
Russell King [Mon, 8 Sep 2003 20:28:05 +0000 (21:28 +0100)]
[SERIAL] Make SA11x0 serial driver build.
Update the SA11x0 serial driver for the removal of system devices
from the driver model. The driver becomes a platform device driver.
The driver is now known to the driver model and resource subsytems
as "sa11x0-uart".
Without this, if elv_try_last_merge() returns nonzero, we do not
initialise *req. That results in a subsequent BUG_ON() in
__make_request() because req is NULL (or is just uninitialised).
Arnd's new-and-improved _IOx() argument checking showed two sound
drivers whose microcode load ioctl's used types with sizes that
overflow the ioctl number. Mark them _IOx_BAD() to document the fact.
This new version works with all compiler versions, and also catches the
case where somebody tries to pass in an array as an argument to the
ioctl macros. Thus we verify that only proper types are used.
I have checked now that the object code for arch/s390/kernel/compat_ioctl.o
remains identical and that the whole kernel compiles for s390 and i386,
after fixing the broken ioctl numbers.
Rusty Russell [Sun, 7 Sep 2003 13:46:30 +0000 (06:46 -0700)]
[PATCH] modprobe -q: quieter when modules missing
The kernel invokes "modprobe" on modules which might not exist:
rightfully, modprobe complains by default when this happens. So the
correct response is to invoke "modprobe -q", which is silent on such
errors (but still reports other errors such as config errors).
Also, use MODULE_NAME_LEN from module.h instead of inventing our own.