diff options
Diffstat (limited to 'arch/powerpc/platforms/cell/cbe_thermal.c')
-rw-r--r-- | arch/powerpc/platforms/cell/cbe_thermal.c | 144 |
1 files changed, 72 insertions, 72 deletions
diff --git a/arch/powerpc/platforms/cell/cbe_thermal.c b/arch/powerpc/platforms/cell/cbe_thermal.c index 4d4c8c16912..94560db788b 100644 --- a/arch/powerpc/platforms/cell/cbe_thermal.c +++ b/arch/powerpc/platforms/cell/cbe_thermal.c | |||
@@ -46,7 +46,7 @@ | |||
46 | */ | 46 | */ |
47 | 47 | ||
48 | #include <linux/module.h> | 48 | #include <linux/module.h> |
49 | #include <linux/sysdev.h> | 49 | #include <linux/device.h> |
50 | #include <linux/kernel.h> | 50 | #include <linux/kernel.h> |
51 | #include <linux/cpu.h> | 51 | #include <linux/cpu.h> |
52 | #include <asm/spu.h> | 52 | #include <asm/spu.h> |
@@ -59,8 +59,8 @@ | |||
59 | #define TEMP_MIN 65 | 59 | #define TEMP_MIN 65 |
60 | #define TEMP_MAX 125 | 60 | #define TEMP_MAX 125 |
61 | 61 | ||
62 | #define SYSDEV_PREFIX_ATTR(_prefix,_name,_mode) \ | 62 | #define DEVICE_PREFIX_ATTR(_prefix,_name,_mode) \ |
63 | struct sysdev_attribute attr_ ## _prefix ## _ ## _name = { \ | 63 | struct device_attribute attr_ ## _prefix ## _ ## _name = { \ |
64 | .attr = { .name = __stringify(_name), .mode = _mode }, \ | 64 | .attr = { .name = __stringify(_name), .mode = _mode }, \ |
65 | .show = _prefix ## _show_ ## _name, \ | 65 | .show = _prefix ## _show_ ## _name, \ |
66 | .store = _prefix ## _store_ ## _name, \ | 66 | .store = _prefix ## _store_ ## _name, \ |
@@ -76,36 +76,36 @@ static inline u8 temp_to_reg(u8 temp) | |||
76 | return ((temp - TEMP_MIN) >> 1) & 0x3f; | 76 | return ((temp - TEMP_MIN) >> 1) & 0x3f; |
77 | } | 77 | } |
78 | 78 | ||
79 | static struct cbe_pmd_regs __iomem *get_pmd_regs(struct sys_device *sysdev) | 79 | static struct cbe_pmd_regs __iomem *get_pmd_regs(struct device *dev) |
80 | { | 80 | { |
81 | struct spu *spu; | 81 | struct spu *spu; |
82 | 82 | ||
83 | spu = container_of(sysdev, struct spu, sysdev); | 83 | spu = container_of(dev, struct spu, dev); |
84 | 84 | ||
85 | return cbe_get_pmd_regs(spu_devnode(spu)); | 85 | return cbe_get_pmd_regs(spu_devnode(spu)); |
86 | } | 86 | } |
87 | 87 | ||
88 | /* returns the value for a given spu in a given register */ | 88 | /* returns the value for a given spu in a given register */ |
89 | static u8 spu_read_register_value(struct sys_device *sysdev, union spe_reg __iomem *reg) | 89 | static u8 spu_read_register_value(struct device *dev, union spe_reg __iomem *reg) |
90 | { | 90 | { |
91 | union spe_reg value; | 91 | union spe_reg value; |
92 | struct spu *spu; | 92 | struct spu *spu; |
93 | 93 | ||
94 | spu = container_of(sysdev, struct spu, sysdev); | 94 | spu = container_of(dev, struct spu, dev); |
95 | value.val = in_be64(®->val); | 95 | value.val = in_be64(®->val); |
96 | 96 | ||
97 | return value.spe[spu->spe_id]; | 97 | return value.spe[spu->spe_id]; |
98 | } | 98 | } |
99 | 99 | ||
100 | static ssize_t spu_show_temp(struct sys_device *sysdev, struct sysdev_attribute *attr, | 100 | static ssize_t spu_show_temp(struct device *dev, struct device_attribute *attr, |
101 | char *buf) | 101 | char *buf) |
102 | { | 102 | { |
103 | u8 value; | 103 | u8 value; |
104 | struct cbe_pmd_regs __iomem *pmd_regs; | 104 | struct cbe_pmd_regs __iomem *pmd_regs; |
105 | 105 | ||
106 | pmd_regs = get_pmd_regs(sysdev); | 106 | pmd_regs = get_pmd_regs(dev); |
107 | 107 | ||
108 | value = spu_read_register_value(sysdev, &pmd_regs->ts_ctsr1); | 108 | value = spu_read_register_value(dev, &pmd_regs->ts_ctsr1); |
109 | 109 | ||
110 | return sprintf(buf, "%d\n", reg_to_temp(value)); | 110 | return sprintf(buf, "%d\n", reg_to_temp(value)); |
111 | } | 111 | } |
@@ -147,48 +147,48 @@ static ssize_t store_throttle(struct cbe_pmd_regs __iomem *pmd_regs, const char | |||
147 | return size; | 147 | return size; |
148 | } | 148 | } |
149 | 149 | ||
150 | static ssize_t spu_show_throttle_end(struct sys_device *sysdev, | 150 | static ssize_t spu_show_throttle_end(struct device *dev, |
151 | struct sysdev_attribute *attr, char *buf) | 151 | struct device_attribute *attr, char *buf) |
152 | { | 152 | { |
153 | return show_throttle(get_pmd_regs(sysdev), buf, 0); | 153 | return show_throttle(get_pmd_regs(dev), buf, 0); |
154 | } | 154 | } |
155 | 155 | ||
156 | static ssize_t spu_show_throttle_begin(struct sys_device *sysdev, | 156 | static ssize_t spu_show_throttle_begin(struct device *dev, |
157 | struct sysdev_attribute *attr, char *buf) | 157 | struct device_attribute *attr, char *buf) |
158 | { | 158 | { |
159 | return show_throttle(get_pmd_regs(sysdev), buf, 8); | 159 | return show_throttle(get_pmd_regs(dev), buf, 8); |
160 | } | 160 | } |
161 | 161 | ||
162 | static ssize_t spu_show_throttle_full_stop(struct sys_device *sysdev, | 162 | static ssize_t spu_show_throttle_full_stop(struct device *dev, |
163 | struct sysdev_attribute *attr, char *buf) | 163 | struct device_attribute *attr, char *buf) |
164 | { | 164 | { |
165 | return show_throttle(get_pmd_regs(sysdev), buf, 16); | 165 | return show_throttle(get_pmd_regs(dev), buf, 16); |
166 | } | 166 | } |
167 | 167 | ||
168 | static ssize_t spu_store_throttle_end(struct sys_device *sysdev, | 168 | static ssize_t spu_store_throttle_end(struct device *dev, |
169 | struct sysdev_attribute *attr, const char *buf, size_t size) | 169 | struct device_attribute *attr, const char *buf, size_t size) |
170 | { | 170 | { |
171 | return store_throttle(get_pmd_regs(sysdev), buf, size, 0); | 171 | return store_throttle(get_pmd_regs(dev), buf, size, 0); |
172 | } | 172 | } |
173 | 173 | ||
174 | static ssize_t spu_store_throttle_begin(struct sys_device *sysdev, | 174 | static ssize_t spu_store_throttle_begin(struct device *dev, |
175 | struct sysdev_attribute *attr, const char *buf, size_t size) | 175 | struct device_attribute *attr, const char *buf, size_t size) |
176 | { | 176 | { |
177 | return store_throttle(get_pmd_regs(sysdev), buf, size, 8); | 177 | return store_throttle(get_pmd_regs(dev), buf, size, 8); |
178 | } | 178 | } |
179 | 179 | ||
180 | static ssize_t spu_store_throttle_full_stop(struct sys_device *sysdev, | 180 | static ssize_t spu_store_throttle_full_stop(struct device *dev, |
181 | struct sysdev_attribute *attr, const char *buf, size_t size) | 181 | struct device_attribute *attr, const char *buf, size_t size) |
182 | { | 182 | { |
183 | return store_throttle(get_pmd_regs(sysdev), buf, size, 16); | 183 | return store_throttle(get_pmd_regs(dev), buf, size, 16); |
184 | } | 184 | } |
185 | 185 | ||
186 | static ssize_t ppe_show_temp(struct sys_device *sysdev, char *buf, int pos) | 186 | static ssize_t ppe_show_temp(struct device *dev, char *buf, int pos) |
187 | { | 187 | { |
188 | struct cbe_pmd_regs __iomem *pmd_regs; | 188 | struct cbe_pmd_regs __iomem *pmd_regs; |
189 | u64 value; | 189 | u64 value; |
190 | 190 | ||
191 | pmd_regs = cbe_get_cpu_pmd_regs(sysdev->id); | 191 | pmd_regs = cbe_get_cpu_pmd_regs(dev->id); |
192 | value = in_be64(&pmd_regs->ts_ctsr2); | 192 | value = in_be64(&pmd_regs->ts_ctsr2); |
193 | 193 | ||
194 | value = (value >> pos) & 0x3f; | 194 | value = (value >> pos) & 0x3f; |
@@ -199,64 +199,64 @@ static ssize_t ppe_show_temp(struct sys_device *sysdev, char *buf, int pos) | |||
199 | 199 | ||
200 | /* shows the temperature of the DTS on the PPE, | 200 | /* shows the temperature of the DTS on the PPE, |
201 | * located near the linear thermal sensor */ | 201 | * located near the linear thermal sensor */ |
202 | static ssize_t ppe_show_temp0(struct sys_device *sysdev, | 202 | static ssize_t ppe_show_temp0(struct device *dev, |
203 | struct sysdev_attribute *attr, char *buf) | 203 | struct device_attribute *attr, char *buf) |
204 | { | 204 | { |
205 | return ppe_show_temp(sysdev, buf, 32); | 205 | return ppe_show_temp(dev, buf, 32); |
206 | } | 206 | } |
207 | 207 | ||
208 | /* shows the temperature of the second DTS on the PPE */ | 208 | /* shows the temperature of the second DTS on the PPE */ |
209 | static ssize_t ppe_show_temp1(struct sys_device *sysdev, | 209 | static ssize_t ppe_show_temp1(struct device *dev, |
210 | struct sysdev_attribute *attr, char *buf) | 210 | struct device_attribute *attr, char *buf) |
211 | { | 211 | { |
212 | return ppe_show_temp(sysdev, buf, 0); | 212 | return ppe_show_temp(dev, buf, 0); |
213 | } | 213 | } |
214 | 214 | ||
215 | static ssize_t ppe_show_throttle_end(struct sys_device *sysdev, | 215 | static ssize_t ppe_show_throttle_end(struct device *dev, |
216 | struct sysdev_attribute *attr, char *buf) | 216 | struct device_attribute *attr, char *buf) |
217 | { | 217 | { |
218 | return show_throttle(cbe_get_cpu_pmd_regs(sysdev->id), buf, 32); | 218 | return show_throttle(cbe_get_cpu_pmd_regs(dev->id), buf, 32); |
219 | } | 219 | } |
220 | 220 | ||
221 | static ssize_t ppe_show_throttle_begin(struct sys_device *sysdev, | 221 | static ssize_t ppe_show_throttle_begin(struct device *dev, |
222 | struct sysdev_attribute *attr, char *buf) | 222 | struct device_attribute *attr, char *buf) |
223 | { | 223 | { |
224 | return show_throttle(cbe_get_cpu_pmd_regs(sysdev->id), buf, 40); | 224 | return show_throttle(cbe_get_cpu_pmd_regs(dev->id), buf, 40); |
225 | } | 225 | } |
226 | 226 | ||
227 | static ssize_t ppe_show_throttle_full_stop(struct sys_device *sysdev, | 227 | static ssize_t ppe_show_throttle_full_stop(struct device *dev, |
228 | struct sysdev_attribute *attr, char *buf) | 228 | struct device_attribute *attr, char *buf) |
229 | { | 229 | { |
230 | return show_throttle(cbe_get_cpu_pmd_regs(sysdev->id), buf, 48); | 230 | return show_throttle(cbe_get_cpu_pmd_regs(dev->id), buf, 48); |
231 | } | 231 | } |
232 | 232 | ||
233 | static ssize_t ppe_store_throttle_end(struct sys_device *sysdev, | 233 | static ssize_t ppe_store_throttle_end(struct device *dev, |
234 | struct sysdev_attribute *attr, const char *buf, size_t size) | 234 | struct device_attribute *attr, const char *buf, size_t size) |
235 | { | 235 | { |
236 | return store_throttle(cbe_get_cpu_pmd_regs(sysdev->id), buf, size, 32); | 236 | return store_throttle(cbe_get_cpu_pmd_regs(dev->id), buf, size, 32); |
237 | } | 237 | } |
238 | 238 | ||
239 | static ssize_t ppe_store_throttle_begin(struct sys_device *sysdev, | 239 | static ssize_t ppe_store_throttle_begin(struct device *dev, |
240 | struct sysdev_attribute *attr, const char *buf, size_t size) | 240 | struct device_attribute *attr, const char *buf, size_t size) |
241 | { | 241 | { |
242 | return store_throttle(cbe_get_cpu_pmd_regs(sysdev->id), buf, size, 40); | 242 | return store_throttle(cbe_get_cpu_pmd_regs(dev->id), buf, size, 40); |
243 | } | 243 | } |
244 | 244 | ||
245 | static ssize_t ppe_store_throttle_full_stop(struct sys_device *sysdev, | 245 | static ssize_t ppe_store_throttle_full_stop(struct device *dev, |
246 | struct sysdev_attribute *attr, const char *buf, size_t size) | 246 | struct device_attribute *attr, const char *buf, size_t size) |
247 | { | 247 | { |
248 | return store_throttle(cbe_get_cpu_pmd_regs(sysdev->id), buf, size, 48); | 248 | return store_throttle(cbe_get_cpu_pmd_regs(dev->id), buf, size, 48); |
249 | } | 249 | } |
250 | 250 | ||
251 | 251 | ||
252 | static struct sysdev_attribute attr_spu_temperature = { | 252 | static struct device_attribute attr_spu_temperature = { |
253 | .attr = {.name = "temperature", .mode = 0400 }, | 253 | .attr = {.name = "temperature", .mode = 0400 }, |
254 | .show = spu_show_temp, | 254 | .show = spu_show_temp, |
255 | }; | 255 | }; |
256 | 256 | ||
257 | static SYSDEV_PREFIX_ATTR(spu, throttle_end, 0600); | 257 | static DEVICE_PREFIX_ATTR(spu, throttle_end, 0600); |
258 | static SYSDEV_PREFIX_ATTR(spu, throttle_begin, 0600); | 258 | static DEVICE_PREFIX_ATTR(spu, throttle_begin, 0600); |
259 | static SYSDEV_PREFIX_ATTR(spu, throttle_full_stop, 0600); | 259 | static DEVICE_PREFIX_ATTR(spu, throttle_full_stop, 0600); |
260 | 260 | ||
261 | 261 | ||
262 | static struct attribute *spu_attributes[] = { | 262 | static struct attribute *spu_attributes[] = { |
@@ -272,19 +272,19 @@ static struct attribute_group spu_attribute_group = { | |||
272 | .attrs = spu_attributes, | 272 | .attrs = spu_attributes, |
273 | }; | 273 | }; |
274 | 274 | ||
275 | static struct sysdev_attribute attr_ppe_temperature0 = { | 275 | static struct device_attribute attr_ppe_temperature0 = { |
276 | .attr = {.name = "temperature0", .mode = 0400 }, | 276 | .attr = {.name = "temperature0", .mode = 0400 }, |
277 | .show = ppe_show_temp0, | 277 | .show = ppe_show_temp0, |
278 | }; | 278 | }; |
279 | 279 | ||
280 | static struct sysdev_attribute attr_ppe_temperature1 = { | 280 | static struct device_attribute attr_ppe_temperature1 = { |
281 | .attr = {.name = "temperature1", .mode = 0400 }, | 281 | .attr = {.name = "temperature1", .mode = 0400 }, |
282 | .show = ppe_show_temp1, | 282 | .show = ppe_show_temp1, |
283 | }; | 283 | }; |
284 | 284 | ||
285 | static SYSDEV_PREFIX_ATTR(ppe, throttle_end, 0600); | 285 | static DEVICE_PREFIX_ATTR(ppe, throttle_end, 0600); |
286 | static SYSDEV_PREFIX_ATTR(ppe, throttle_begin, 0600); | 286 | static DEVICE_PREFIX_ATTR(ppe, throttle_begin, 0600); |
287 | static SYSDEV_PREFIX_ATTR(ppe, throttle_full_stop, 0600); | 287 | static DEVICE_PREFIX_ATTR(ppe, throttle_full_stop, 0600); |
288 | 288 | ||
289 | static struct attribute *ppe_attributes[] = { | 289 | static struct attribute *ppe_attributes[] = { |
290 | &attr_ppe_temperature0.attr, | 290 | &attr_ppe_temperature0.attr, |
@@ -307,7 +307,7 @@ static int __init init_default_values(void) | |||
307 | { | 307 | { |
308 | int cpu; | 308 | int cpu; |
309 | struct cbe_pmd_regs __iomem *pmd_regs; | 309 | struct cbe_pmd_regs __iomem *pmd_regs; |
310 | struct sys_device *sysdev; | 310 | struct device *dev; |
311 | union ppe_spe_reg tpr; | 311 | union ppe_spe_reg tpr; |
312 | union spe_reg str1; | 312 | union spe_reg str1; |
313 | u64 str2; | 313 | u64 str2; |
@@ -349,14 +349,14 @@ static int __init init_default_values(void) | |||
349 | 349 | ||
350 | for_each_possible_cpu (cpu) { | 350 | for_each_possible_cpu (cpu) { |
351 | pr_debug("processing cpu %d\n", cpu); | 351 | pr_debug("processing cpu %d\n", cpu); |
352 | sysdev = get_cpu_sysdev(cpu); | 352 | dev = get_cpu_device(cpu); |
353 | 353 | ||
354 | if (!sysdev) { | 354 | if (!dev) { |
355 | pr_info("invalid sysdev pointer for cbe_thermal\n"); | 355 | pr_info("invalid dev pointer for cbe_thermal\n"); |
356 | return -EINVAL; | 356 | return -EINVAL; |
357 | } | 357 | } |
358 | 358 | ||
359 | pmd_regs = cbe_get_cpu_pmd_regs(sysdev->id); | 359 | pmd_regs = cbe_get_cpu_pmd_regs(dev->id); |
360 | 360 | ||
361 | if (!pmd_regs) { | 361 | if (!pmd_regs) { |
362 | pr_info("invalid CBE regs pointer for cbe_thermal\n"); | 362 | pr_info("invalid CBE regs pointer for cbe_thermal\n"); |
@@ -379,8 +379,8 @@ static int __init thermal_init(void) | |||
379 | int rc = init_default_values(); | 379 | int rc = init_default_values(); |
380 | 380 | ||
381 | if (rc == 0) { | 381 | if (rc == 0) { |
382 | spu_add_sysdev_attr_group(&spu_attribute_group); | 382 | spu_add_dev_attr_group(&spu_attribute_group); |
383 | cpu_add_sysdev_attr_group(&ppe_attribute_group); | 383 | cpu_add_dev_attr_group(&ppe_attribute_group); |
384 | } | 384 | } |
385 | 385 | ||
386 | return rc; | 386 | return rc; |
@@ -389,8 +389,8 @@ module_init(thermal_init); | |||
389 | 389 | ||
390 | static void __exit thermal_exit(void) | 390 | static void __exit thermal_exit(void) |
391 | { | 391 | { |
392 | spu_remove_sysdev_attr_group(&spu_attribute_group); | 392 | spu_remove_dev_attr_group(&spu_attribute_group); |
393 | cpu_remove_sysdev_attr_group(&ppe_attribute_group); | 393 | cpu_remove_dev_attr_group(&ppe_attribute_group); |
394 | } | 394 | } |
395 | module_exit(thermal_exit); | 395 | module_exit(thermal_exit); |
396 | 396 | ||