Re: cpufreq longhaul locks up

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I found one line which wasn't were it should be. Probably this will not 
fix Your problem with powersave governor, but it is a bit related. 
Looks like Longhaul isn't skipping frequency transtition when it is asked 
to set f which is already set. Now after first transition it will not 
try to set same frequency again. Second part contains some magic 
because I don't have CN400 datasheet. It is NDA protected :-( Should 
print You one byte in hex and will try to set one register. I don't 
know if anything will change but it is worth testing.

Fingers crossed
Rafał

---
 arch/i386/kernel/cpu/cpufreq/longhaul.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/i386/kernel/cpu/cpufreq/longhaul.c b/arch/i386/kernel/cpu/cpufreq/longhaul.c
index 2b030d6..5548e5b 100644
--- a/arch/i386/kernel/cpu/cpufreq/longhaul.c
+++ b/arch/i386/kernel/cpu/cpufreq/longhaul.c
@@ -88,6 +88,7 @@ static int clock_ratio[32];
 static int eblcr_table[32];
 static int longhaul_version;
 static struct cpufreq_frequency_table *longhaul_table;
+static unsigned int old_ratio = -1;
 
 #ifdef CONFIG_CPU_FREQ_DEBUG
 static char speedbuffer[8];
@@ -252,7 +253,6 @@ static void longhaul_setstate(unsigned int clock_ratio_index)
 {
 	int speed, mult;
 	struct cpufreq_freqs freqs;
-	static unsigned int old_ratio=-1;
 	unsigned long flags;
 	unsigned int pic1_mask, pic2_mask;
 
@@ -603,7 +603,12 @@ static int enable_arbiter_disable(void)
 		/* Find CN400 V-Link host bridge */
 		if (dev == NULL)
 			dev = pci_find_device(PCI_VENDOR_ID_VIA, 0x7259, NULL);
-
+		if (dev != NULL) {
+			pci_read_config_byte(dev, 0x47, &pci_cmd);
+			printk(KERN_INFO PFX "%#02x\n", pci_cmd);
+			pci_cmd |= 0xf;
+			pci_write_config_byte(dev, 0x47, pci_cmd);
+		}
 	}
 	if (dev != NULL) {
 		/* Enable access to port 0x22 */
-- 



----------------------------------------------------------------------
Po meczu.....kurde...:)
>>> http://link.interia.pl/f1a72

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux