Skip to contentSkip to conversation

[[email protected]: Re: hp omnibook xe4500 hangs while loading acpi module]

[email protected]: Re: hp omnibook xe4500 hangs while loading acpi module Dominik Brodowski 1 participant 1 message Dec 20, 2003

lore
Share & tools
lore
#0 lore raw

Hi Len,

The patch "[ACPI] GV3 IO port is 16-bits" to the arch/i386/kernel/cpu/cpufreq/acpi.c file broke at least some of the GV1/2 support. Any idea on how to fix it up so that it works for both?

Happy holidays,
Dominik

----- Forwarded message from Martin Schreiber <[email protected]> -----

Subject: Re: hp omnibook xe4500 hangs while loading acpi module
From: Martin Schreiber <[email protected]>
To: Dominik Brodowski <[email protected]>
Cc: [email protected]
In-Reply-To: <[email protected]>
X-Mailer: Ximian Evolution 1.4.5
Date: Sat, 20 Dec 2003 17:13:47 +0100

the acpi cpufreq (kernel 2.6.0) works now on omnibook xe4500 with the attached patch.

thanks!

Quoted 8 lines · Dominik Brodowski

Hi,

Can you please try the attached patch (for 2.6.0)? It reverts a change done during the time frame you mention: I assume this patch "[ACPI] GV3 IO port is 16-bits (Venkatesh Pallipadi)" caused the trouble. Please CC <[email protected]> in your reply [the cpufreq mailing list], so that other cpufreq developers can investigate this issue as well.

Quoted 37 lines

Thanks,
Dominik

Quoted 33 lines · Martin Schreiber

hi!

my "hp omnibook xe4500" hangs, if i load the acpi module for cpufreq. there's no kernel error message. it just blocks everything.

the cpufreq works fine up to test-6
with test-7, the kernel hangs, if i load the module.

can i help you, to fix this problem?

just say, what you need.

i'm completely new to the kernel!

ciao,
martini

Martin Schreiber
Im Muehltal 48
91171 Greding

http://www.martin-schreiber.net
[email protected]

Stürmt und schneit's Silvester nicht, ist das Neujahr auch in Sicht.

--BEGIN GEEK CODE BLOCK--
Version: 3.12
GCS d s+: a-- C++ UL++ P+ L+++ E-- W+++ N o K- w-- O- M- V- PS+++ PE+ Y PGP++ t 5+ X R+ tv++ b+ DI- D++ G e h-- r-- y+
--END GEEK CODE BLOCK--

Martin Schreiber
Im Muehltal 48
91171 Greding

http://www.martin-schreiber.net
[email protected]

Wenn du kritisiert wirst, dann mußt du irgend etwas richtig machen. Denn man greift nur denjenigen an, der den Ball hat.
-- Bruce Lee

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d s+: a-- C++ UL++ P+ L+++ E-- W+++ N o K- w--- O- M- V- PS+++ PE+ Y PGP++ t 5+ X R+ tv++ b+ DI- D++ G e h-- r-- y+
------END GEEK CODE BLOCK------

arch/i386/kernel/cpu/cpufreq/acpi.c +7 -7
@@ -231,7 +231,7 @@
 	int			state)
 {
 	u16			port = 0;
-	u16			value = 0;
+	u8			value = 0;
 	int			i = 0;
 	struct cpufreq_freqs    cpufreq_freqs;
 
@@ -282,9 +282,9 @@
 	value = (u16) perf->states[state].control;
 
 	ACPI_DEBUG_PRINT((ACPI_DB_INFO, 
-		"Writing 0x%04x to port 0x%04x\n", value, port));
+		"Writing 0x%02x to port 0x%02x\n", value, port));
 
-	outw(value, port); 
+	outb(value, port); 
 
 	/*
 	 * Then we read the 'status_register' and compare the value with the
@@ -296,11 +296,11 @@
 	port = perf->status_register;
 
 	ACPI_DEBUG_PRINT((ACPI_DB_INFO, 
-		"Looking for 0x%04x from port 0x%04x\n",
-		(u16) perf->states[state].status, port));
+		"Looking for 0x%02x from port 0x%02x\n",
+		(u8) perf->states[state].status, port));
 
 	for (i=0; i<100; i++) {
-		value = inw(port);
+		value = inb(port);
 		if (value == (u16) perf->states[state].status)
 			break;
 		udelay(10);
@@ -309,7 +309,7 @@
 	/* notify cpufreq */
 	cpufreq_notify_transition(&cpufreq_freqs, CPUFREQ_POSTCHANGE);
 
-	if (value != (u16) perf->states[state].status) {
+	if (value != perf->states[state].status) {
 		unsigned int tmp = cpufreq_freqs.new;
 		cpufreq_freqs.new = cpufreq_freqs.old;
 		cpufreq_freqs.old = tmp;

----- End forwarded message -----