Lines Matching full:fan
3 * acpi_fan.c - ACPI Fan Driver ($Revision: 29 $)
20 MODULE_DESCRIPTION("ACPI Fan Driver");
80 .name = "acpi-fan",
91 struct acpi_fan *fan = acpi_driver_data(device); in fan_get_max_state() local
93 if (fan->acpi4) in fan_get_max_state()
94 *state = fan->fps_count - 1; in fan_get_max_state()
103 struct acpi_fan *fan = acpi_driver_data(device); in fan_get_state_acpi4() local
110 dev_err(&device->dev, "Get fan state failed\n"); in fan_get_state_acpi4()
124 for (i = 0; i < fan->fps_count; i++) { in fan_get_state_acpi4()
127 * corresponding to maximum fan->fps[i].control in fan_get_state_acpi4()
129 * fan->fps[] is sorted array with increasing speed. in fan_get_state_acpi4()
131 if (fan->fif.fine_grain_ctrl && control < fan->fps[i].control) { in fan_get_state_acpi4()
134 } else if (control == fan->fps[i].control) { in fan_get_state_acpi4()
138 if (i == fan->fps_count) { in fan_get_state_acpi4()
170 struct acpi_fan *fan = acpi_driver_data(device); in fan_get_cur_state() local
172 if (fan->acpi4) in fan_get_cur_state()
189 struct acpi_fan *fan = acpi_driver_data(device); in fan_set_state_acpi4() local
192 if (state >= fan->fps_count) in fan_set_state_acpi4()
196 fan->fps[state].control); in fan_set_state_acpi4()
209 struct acpi_fan *fan = acpi_driver_data(device); in fan_set_cur_state() local
211 if (fan->acpi4) in fan_set_cur_state()
239 struct acpi_fan *fan = acpi_driver_data(device); in acpi_fan_get_fif() local
241 struct acpi_buffer fif = { sizeof(fan->fif), &fan->fif }; in acpi_fan_get_fif()
309 struct acpi_fan *fan = acpi_driver_data(device); in acpi_fan_get_fps() local
326 fan->fps_count = obj->package.count - 1; /* minus revision field */ in acpi_fan_get_fps()
327 fan->fps = devm_kcalloc(&device->dev, in acpi_fan_get_fps()
328 fan->fps_count, sizeof(struct acpi_fan_fps), in acpi_fan_get_fps()
330 if (!fan->fps) { in acpi_fan_get_fps()
335 for (i = 0; i < fan->fps_count; i++) { in acpi_fan_get_fps()
338 &fan->fps[i] }; in acpi_fan_get_fps()
347 /* sort the state array according to fan speed in increase order */ in acpi_fan_get_fps()
348 sort(fan->fps, fan->fps_count, sizeof(*fan->fps), in acpi_fan_get_fps()
351 for (i = 0; i < fan->fps_count; ++i) { in acpi_fan_get_fps()
352 struct acpi_fan_fps *fps = &fan->fps[i]; in acpi_fan_get_fps()
365 sysfs_remove_file(&device->dev.kobj, &fan->fps[j].dev_attr.attr); in acpi_fan_get_fps()
379 struct acpi_fan *fan; in acpi_fan_probe() local
383 fan = devm_kzalloc(&pdev->dev, sizeof(*fan), GFP_KERNEL); in acpi_fan_probe()
384 if (!fan) { in acpi_fan_probe()
385 dev_err(&device->dev, "No memory for fan\n"); in acpi_fan_probe()
388 device->driver_data = fan; in acpi_fan_probe()
389 platform_set_drvdata(pdev, fan); in acpi_fan_probe()
400 fan->acpi4 = true; in acpi_fan_probe()
410 name = "Fan"; in acpi_fan_probe()
423 fan->cdev = cdev; in acpi_fan_probe()
441 if (fan->acpi4) { in acpi_fan_probe()
444 for (i = 0; i < fan->fps_count; ++i) in acpi_fan_probe()
445 sysfs_remove_file(&device->dev.kobj, &fan->fps[i].dev_attr.attr); in acpi_fan_probe()
453 struct acpi_fan *fan = platform_get_drvdata(pdev); in acpi_fan_remove() local
455 if (fan->acpi4) { in acpi_fan_remove()
459 for (i = 0; i < fan->fps_count; ++i) in acpi_fan_remove()
460 sysfs_remove_file(&device->dev.kobj, &fan->fps[i].dev_attr.attr); in acpi_fan_remove()
463 sysfs_remove_link(&fan->cdev->device.kobj, "device"); in acpi_fan_remove()
464 thermal_cooling_device_unregister(fan->cdev); in acpi_fan_remove()
472 struct acpi_fan *fan = dev_get_drvdata(dev); in acpi_fan_suspend() local
473 if (fan->acpi4) in acpi_fan_suspend()
484 struct acpi_fan *fan = dev_get_drvdata(dev); in acpi_fan_resume() local
486 if (fan->acpi4) in acpi_fan_resume()
491 dev_err(dev, "Error updating fan power state\n"); in acpi_fan_resume()