Lines Matching full:fan
3 * fan_core.c - ACPI Fan core Driver
20 #include "fan.h"
33 struct acpi_fan *fan = acpi_driver_data(device); in fan_get_max_state() local
35 if (fan->acpi4) { in fan_get_max_state()
36 if (fan->fif.fine_grain_ctrl) in fan_get_max_state()
37 *state = 100 / fan->fif.step_size; in fan_get_max_state()
39 *state = fan->fps_count - 1; in fan_get_max_state()
85 struct acpi_fan *fan = acpi_driver_data(device); in fan_get_state_acpi4() local
93 if (fan->fif.fine_grain_ctrl) { in fan_get_state_acpi4()
100 *state = (int) fst.control / fan->fif.step_size; in fan_get_state_acpi4()
105 for (i = 0; i < fan->fps_count; i++) { in fan_get_state_acpi4()
106 if (fst.control == fan->fps[i].control) in fan_get_state_acpi4()
109 if (i == fan->fps_count) { in fan_get_state_acpi4()
138 struct acpi_fan *fan = acpi_driver_data(device); in fan_get_cur_state() local
140 if (fan->acpi4) in fan_get_cur_state()
157 struct acpi_fan *fan = acpi_driver_data(device); in fan_set_state_acpi4() local
162 if (fan->fif.fine_grain_ctrl) in fan_set_state_acpi4()
163 max_state = 100 / fan->fif.step_size; in fan_set_state_acpi4()
165 max_state = fan->fps_count - 1; in fan_set_state_acpi4()
170 if (fan->fif.fine_grain_ctrl) { in fan_set_state_acpi4()
171 value *= fan->fif.step_size; in fan_set_state_acpi4()
173 if (value + fan->fif.step_size > 100) in fan_set_state_acpi4()
176 value = fan->fps[state].control; in fan_set_state_acpi4()
192 struct acpi_fan *fan = acpi_driver_data(device); in fan_set_cur_state() local
194 if (fan->acpi4) in fan_set_cur_state()
214 struct acpi_fan *fan = acpi_driver_data(device); in acpi_fan_get_fif() local
239 fan->fif.revision = fields[0]; in acpi_fan_get_fif()
240 fan->fif.fine_grain_ctrl = fields[1]; in acpi_fan_get_fif()
241 fan->fif.step_size = fields[2]; in acpi_fan_get_fif()
242 fan->fif.low_speed_notification = fields[3]; in acpi_fan_get_fif()
245 if (!fan->fif.step_size) in acpi_fan_get_fif()
246 fan->fif.step_size = 1; in acpi_fan_get_fif()
248 else if (fan->fif.step_size > 9) in acpi_fan_get_fif()
249 fan->fif.step_size = 9; in acpi_fan_get_fif()
264 struct acpi_fan *fan = acpi_driver_data(device); in acpi_fan_get_fps() local
281 fan->fps_count = obj->package.count - 1; /* minus revision field */ in acpi_fan_get_fps()
282 fan->fps = devm_kcalloc(&device->dev, in acpi_fan_get_fps()
283 fan->fps_count, sizeof(struct acpi_fan_fps), in acpi_fan_get_fps()
285 if (!fan->fps) { in acpi_fan_get_fps()
290 for (i = 0; i < fan->fps_count; i++) { in acpi_fan_get_fps()
293 &fan->fps[i] }; in acpi_fan_get_fps()
302 /* sort the state array according to fan speed in increase order */ in acpi_fan_get_fps()
303 sort(fan->fps, fan->fps_count, sizeof(*fan->fps), in acpi_fan_get_fps()
315 struct acpi_fan *fan; in acpi_fan_probe() local
322 fan = devm_kzalloc(&pdev->dev, sizeof(*fan), GFP_KERNEL); in acpi_fan_probe()
323 if (!fan) { in acpi_fan_probe()
324 dev_err(&device->dev, "No memory for fan\n"); in acpi_fan_probe()
328 fan->handle = device->handle; in acpi_fan_probe()
329 device->driver_data = fan; in acpi_fan_probe()
330 platform_set_drvdata(pdev, fan); in acpi_fan_probe()
333 fan->has_fst = true; in acpi_fan_probe()
334 fan->acpi4 = acpi_has_method(device->handle, "_FIF") && in acpi_fan_probe()
339 if (fan->acpi4) { in acpi_fan_probe()
349 if (fan->has_fst) { in acpi_fan_probe()
359 if (!fan->acpi4) { in acpi_fan_probe()
368 name = "Fan"; in acpi_fan_probe()
381 fan->cdev = cdev; in acpi_fan_probe()
405 if (fan->has_fst) in acpi_fan_probe()
413 struct acpi_fan *fan = platform_get_drvdata(pdev); in acpi_fan_remove() local
415 if (fan->has_fst) { in acpi_fan_remove()
421 sysfs_remove_link(&fan->cdev->device.kobj, "device"); in acpi_fan_remove()
422 thermal_cooling_device_unregister(fan->cdev); in acpi_fan_remove()
428 struct acpi_fan *fan = dev_get_drvdata(dev); in acpi_fan_suspend() local
429 if (fan->acpi4) in acpi_fan_suspend()
440 struct acpi_fan *fan = dev_get_drvdata(dev); in acpi_fan_resume() local
442 if (fan->acpi4) in acpi_fan_resume()
447 dev_err(dev, "Error updating fan power state\n"); in acpi_fan_resume()
470 .name = "acpi-fan",
479 MODULE_DESCRIPTION("ACPI Fan Driver");