Lines Matching refs:power_zone

26 	struct powercap_zone *power_zone = to_powercap_zone(dev); \
28 if (power_zone->ops->get_##_attr) { \
29 if (!power_zone->ops->get_##_attr(power_zone, &value)) \
43 struct powercap_zone *power_zone = to_powercap_zone(dev); \
51 if (power_zone->ops->reset_##_attr) { \
52 if (!power_zone->ops->reset_##_attr(power_zone)) \
67 struct powercap_zone *power_zone = to_powercap_zone(dev); \
73 if (id >= power_zone->const_id_cnt) \
75 pconst = &power_zone->constraints[id]; \
77 if (!pconst->ops->get_##_attr(power_zone, id, &value)) \
92 struct powercap_zone *power_zone = to_powercap_zone(dev); \
98 if (id >= power_zone->const_id_cnt) \
100 pconst = &power_zone->constraints[id]; \
105 if (!pconst->ops->set_##_attr(power_zone, id, value)) \
160 struct powercap_zone *power_zone = to_powercap_zone(dev); in show_constraint_name() local
167 if (id >= power_zone->const_id_cnt) in show_constraint_name()
169 pconst = &power_zone->constraints[id]; in show_constraint_name()
172 name = pconst->ops->get_name(power_zone, id); in show_constraint_name()
283 static int create_constraints(struct powercap_zone *power_zone, in create_constraints() argument
292 if (!power_zone || !const_ops || !const_ops->get_power_limit_uw || in create_constraints()
298 count = power_zone->zone_attr_count; in create_constraints()
300 pconst = &power_zone->constraints[i]; in create_constraints()
302 pconst->id = power_zone->const_id_cnt; in create_constraints()
303 power_zone->const_id_cnt++; in create_constraints()
304 power_zone->zone_dev_attrs[count++] = in create_constraints()
306 power_zone->zone_dev_attrs[count++] = in create_constraints()
309 power_zone->zone_dev_attrs[count++] = in create_constraints()
312 power_zone->zone_dev_attrs[count++] = in create_constraints()
315 power_zone->zone_dev_attrs[count++] = in create_constraints()
318 power_zone->zone_dev_attrs[count++] = in create_constraints()
321 power_zone->zone_dev_attrs[count++] = in create_constraints()
324 power_zone->zone_attr_count = count; in create_constraints()
351 struct powercap_zone *power_zone = to_powercap_zone(dev); in name_show() local
353 return sprintf(buf, "%s\n", power_zone->name); in name_show()
360 struct powercap_zone *power_zone) in create_power_zone_common_attributes() argument
364 power_zone->zone_dev_attrs[count++] = &dev_attr_name.attr; in create_power_zone_common_attributes()
365 if (power_zone->ops->get_max_energy_range_uj) in create_power_zone_common_attributes()
366 power_zone->zone_dev_attrs[count++] = in create_power_zone_common_attributes()
368 if (power_zone->ops->get_energy_uj) { in create_power_zone_common_attributes()
369 if (power_zone->ops->reset_energy_uj) in create_power_zone_common_attributes()
373 power_zone->zone_dev_attrs[count++] = in create_power_zone_common_attributes()
376 if (power_zone->ops->get_power_uw) in create_power_zone_common_attributes()
377 power_zone->zone_dev_attrs[count++] = in create_power_zone_common_attributes()
379 if (power_zone->ops->get_max_power_range_uw) in create_power_zone_common_attributes()
380 power_zone->zone_dev_attrs[count++] = in create_power_zone_common_attributes()
382 power_zone->zone_dev_attrs[count] = NULL; in create_power_zone_common_attributes()
383 power_zone->zone_attr_count = count; in create_power_zone_common_attributes()
391 struct powercap_zone *power_zone = to_powercap_zone(dev); in powercap_release() local
394 allocated = power_zone->allocated; in powercap_release()
396 idr_remove(power_zone->parent_idr, power_zone->id); in powercap_release()
398 idr_destroy(&power_zone->idr); in powercap_release()
399 kfree(power_zone->name); in powercap_release()
400 kfree(power_zone->zone_dev_attrs); in powercap_release()
401 kfree(power_zone->constraints); in powercap_release()
402 if (power_zone->ops->release) in powercap_release()
403 power_zone->ops->release(power_zone); in powercap_release()
405 kfree(power_zone); in powercap_release()
429 struct powercap_zone *power_zone = to_powercap_zone(dev); in enabled_show() local
430 if (power_zone->ops->get_enable) in enabled_show()
431 if (power_zone->ops->get_enable(power_zone, &mode)) in enabled_show()
453 struct powercap_zone *power_zone = to_powercap_zone(dev); in enabled_store() local
454 if (power_zone->ops->set_enable) in enabled_store()
455 if (!power_zone->ops->set_enable(power_zone, mode)) in enabled_store()
483 struct powercap_zone *power_zone, in powercap_register_zone() argument
500 if (power_zone) { in powercap_register_zone()
503 memset(power_zone, 0, sizeof(*power_zone)); in powercap_register_zone()
505 power_zone = kzalloc(sizeof(*power_zone), GFP_KERNEL); in powercap_register_zone()
506 if (!power_zone) in powercap_register_zone()
508 power_zone->allocated = true; in powercap_register_zone()
510 power_zone->ops = ops; in powercap_register_zone()
511 power_zone->control_type_inst = control_type; in powercap_register_zone()
513 power_zone->dev.parent = &control_type->dev; in powercap_register_zone()
514 power_zone->parent_idr = &control_type->idr; in powercap_register_zone()
516 power_zone->dev.parent = &parent->dev; in powercap_register_zone()
517 power_zone->parent_idr = &parent->idr; in powercap_register_zone()
519 power_zone->dev.class = &powercap_class; in powercap_register_zone()
523 result = idr_alloc(power_zone->parent_idr, NULL, 0, 0, GFP_KERNEL); in powercap_register_zone()
527 power_zone->id = result; in powercap_register_zone()
528 idr_init(&power_zone->idr); in powercap_register_zone()
530 power_zone->name = kstrdup(name, GFP_KERNEL); in powercap_register_zone()
531 if (!power_zone->name) in powercap_register_zone()
533 power_zone->constraints = kcalloc(nr_constraints, in powercap_register_zone()
534 sizeof(*power_zone->constraints), in powercap_register_zone()
536 if (!power_zone->constraints) in powercap_register_zone()
541 power_zone->zone_dev_attrs = kcalloc(nr_attrs, sizeof(void *), in powercap_register_zone()
543 if (!power_zone->zone_dev_attrs) in powercap_register_zone()
545 create_power_zone_common_attributes(power_zone); in powercap_register_zone()
546 result = create_constraints(power_zone, nr_constraints, const_ops); in powercap_register_zone()
550 power_zone->zone_dev_attrs[power_zone->zone_attr_count] = NULL; in powercap_register_zone()
551 power_zone->dev_zone_attr_group.attrs = power_zone->zone_dev_attrs; in powercap_register_zone()
552 power_zone->dev_attr_groups[0] = &power_zone->dev_zone_attr_group; in powercap_register_zone()
553 power_zone->dev_attr_groups[1] = NULL; in powercap_register_zone()
554 power_zone->dev.groups = power_zone->dev_attr_groups; in powercap_register_zone()
555 dev_set_name(&power_zone->dev, "%s:%x", in powercap_register_zone()
556 dev_name(power_zone->dev.parent), in powercap_register_zone()
557 power_zone->id); in powercap_register_zone()
558 result = device_register(&power_zone->dev); in powercap_register_zone()
560 put_device(&power_zone->dev); in powercap_register_zone()
569 return power_zone; in powercap_register_zone()
572 kfree(power_zone->zone_dev_attrs); in powercap_register_zone()
574 kfree(power_zone->constraints); in powercap_register_zone()
576 kfree(power_zone->name); in powercap_register_zone()
578 idr_remove(power_zone->parent_idr, power_zone->id); in powercap_register_zone()
580 if (power_zone->allocated) in powercap_register_zone()
581 kfree(power_zone); in powercap_register_zone()
589 struct powercap_zone *power_zone) in powercap_unregister_zone() argument
591 if (!power_zone || !control_type) in powercap_unregister_zone()
598 device_unregister(&power_zone->dev); in powercap_unregister_zone()