summarylogtreecommitdiffstats
path: root/use-sysfs.patch
blob: 9b06a5071e0ebe27c5f7c3c8b8ea5fb4a9639203 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
--- src/indicator-cpufreq/indicator_cpufreq/indicator.py	2016-10-23 20:53:24.066983494 +0900
+++ src/indicator-cpufreq/indicator_cpufreq/indicator.py	2017-02-16 01:09:11.625695652 +0900
@@ -29,6 +29,7 @@
 from gettext import gettext as _
 #gettext.textdomain('indicator-cpufreq')
 
+import glob
 
 def readable_throttle(t):
         return t
@@ -101,24 +103,26 @@
 
         # frequency menu items
         #freqs = cpufreq.get_available_frequencies(self.cpus[0])
-        freqs = reversed(sorted(set(cpufreq.get_available_frequencies(self.cpus[0]))))
-        freqmenu = Gtk.Menu()
-        freqm = Gtk.MenuItem("CPU Frequency")
-        freqm.set_submenu(freqmenu)
-        for freq in freqs:
-            menu_item = Gtk.RadioMenuItem.new_with_label(group, readable_frequency(freq))
-            group = menu_item.get_group()
-            freqmenu.append(menu_item)
-            menu_item.connect("activate", self.select_activated, 'frequency', freq)
-            self.select_items[freq] = menu_item
-        menu.append(freqm)
+        #freqs = reversed(sorted(set(cpufreq.get_available_frequencies(self.cpus[0]))))
+        #freqmenu = Gtk.Menu()
+        #freqm = Gtk.MenuItem("CPU Frequency")
+        #freqm.set_submenu(freqmenu)
+        #for freq in freqs:
+        #    menu_item = Gtk.RadioMenuItem.new_with_label(group, readable_frequency(freq))
+        #    group = menu_item.get_group()
+        #    freqmenu.append(menu_item)
+        #    menu_item.connect("activate", self.select_activated, 'frequency', freq)
+        #    self.select_items[freq] = menu_item
+        #menu.append(freqm)
 
         # governor menu items
-        governors = cpufreq.get_available_governors(self.cpus[0])
+        govFile = open("/sys/devices/system/cpu/cpufreq/policy0/scaling_available_governors")
+        governors = govFile.readline().strip("\n")
+        govList = governors.split(" ")
         govmenu = Gtk.Menu()
         govm = Gtk.MenuItem("CPU Governor")
         govm.set_submenu(govmenu)
-        for governor in governors:
+        for governor in govList:
             if governor == 'userspace':
                 continue
             menu_item = Gtk.RadioMenuItem.new_with_label(group, readable_governor(governor))
@@ -127,6 +131,7 @@
             menu_item.connect('activate', self.select_activated, 'governor', governor)
             self.select_items[governor] = menu_item
         menu.append(govm)
+        govFile.close
 
         # p-state turbo menu items
         psturbo = ['on', 'off']
@@ -182,13 +187,29 @@
         for i in self.select_items.values():
             i.handler_block_by_func(self.select_activated)
         
-        fmin, fmax, governor = cpufreq.get_policy(self.cpus[0])
+        govFile = open("/sys/devices/system/cpu/cpufreq/policy0/scaling_governor", 'r')
+        governor = govFile.readline().strip("\n")
+        fmnFile = open("/sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq", 'r')
+        fmin = int(fmnFile.readline().strip("\n"))
+        fmxFile = open("/sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq", 'r')
+        fmax = int(fmxFile.readline().strip("\n"))
         # use the highest freq among cores for display
-        freq = max([cpufreq.get_freq_kernel(cpu) for cpu in self.cpus])
+        freq_list = glob.glob('/sys/devices/system/cpu/cpufreq/policy*/scaling_cur_freq')
+        freqs = []
+        for cur_freq in freq_list:
+            f = open(cur_freq, 'r')
+            freqs.append(int(f.readline().strip("\n")))
+            f.close
+
+        freq = max(freqs)
         
         ratio = min([25, 50, 75, 100], key=lambda x: abs((fmax - fmin) * x / 100.0 - (freq - fmin)))
         if freq < fmax and ratio == 100:
             ratio = 75
+
+        govFile.close
+        fmnFile.close
+        fmxFile.close
         
         #self.set_icon(get_data_file('media', 'indicator-cpufreq-%d.png' % ratio))
         self.ind.set_icon('indicator-cpufreq-%d' % ratio)