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()
282 static int create_constraints(struct powercap_zone *power_zone, in create_constraints() argument
291 if (!power_zone || !const_ops || !const_ops->get_power_limit_uw || in create_constraints()
297 count = power_zone->zone_attr_count; in create_constraints()
299 pconst = &power_zone->constraints[i]; in create_constraints()
301 pconst->id = power_zone->const_id_cnt; in create_constraints()
302 power_zone->const_id_cnt++; in create_constraints()
303 power_zone->zone_dev_attrs[count++] = in create_constraints()
305 power_zone->zone_dev_attrs[count++] = in create_constraints()
308 power_zone->zone_dev_attrs[count++] = in create_constraints()
311 power_zone->zone_dev_attrs[count++] = in create_constraints()
314 power_zone->zone_dev_attrs[count++] = in create_constraints()
317 power_zone->zone_dev_attrs[count++] = in create_constraints()
320 power_zone->zone_dev_attrs[count++] = in create_constraints()
323 power_zone->zone_attr_count = count; in create_constraints()
350 struct powercap_zone *power_zone = to_powercap_zone(dev); in name_show() local
352 return sysfs_emit(buf, "%s\n", power_zone->name); in name_show()
359 struct powercap_zone *power_zone) in create_power_zone_common_attributes() argument
363 power_zone->zone_dev_attrs[count++] = &dev_attr_name.attr; in create_power_zone_common_attributes()
364 if (power_zone->ops->get_max_energy_range_uj) in create_power_zone_common_attributes()
365 power_zone->zone_dev_attrs[count++] = in create_power_zone_common_attributes()
367 if (power_zone->ops->get_energy_uj) { in create_power_zone_common_attributes()
368 if (power_zone->ops->reset_energy_uj) in create_power_zone_common_attributes()
372 power_zone->zone_dev_attrs[count++] = in create_power_zone_common_attributes()
375 if (power_zone->ops->get_power_uw) in create_power_zone_common_attributes()
376 power_zone->zone_dev_attrs[count++] = in create_power_zone_common_attributes()
378 if (power_zone->ops->get_max_power_range_uw) in create_power_zone_common_attributes()
379 power_zone->zone_dev_attrs[count++] = in create_power_zone_common_attributes()
381 power_zone->zone_dev_attrs[count] = NULL; in create_power_zone_common_attributes()
382 power_zone->zone_attr_count = count; in create_power_zone_common_attributes()
390 struct powercap_zone *power_zone = to_powercap_zone(dev); in powercap_release() local
393 allocated = power_zone->allocated; in powercap_release()
395 idr_remove(power_zone->parent_idr, power_zone->id); in powercap_release()
397 idr_destroy(&power_zone->idr); in powercap_release()
398 kfree(power_zone->name); in powercap_release()
399 kfree(power_zone->zone_dev_attrs); in powercap_release()
400 kfree(power_zone->constraints); in powercap_release()
401 if (power_zone->ops->release) in powercap_release()
402 power_zone->ops->release(power_zone); in powercap_release()
404 kfree(power_zone); in powercap_release()
428 struct powercap_zone *power_zone = to_powercap_zone(dev); in enabled_show() local
429 if (power_zone->ops->get_enable) in enabled_show()
430 if (power_zone->ops->get_enable(power_zone, &mode)) in enabled_show()
452 struct powercap_zone *power_zone = to_powercap_zone(dev); in enabled_store() local
453 if (power_zone->ops->set_enable) in enabled_store()
454 if (!power_zone->ops->set_enable(power_zone, mode)) in enabled_store()
482 struct powercap_zone *power_zone, in powercap_register_zone() argument
499 if (power_zone) { in powercap_register_zone()
502 memset(power_zone, 0, sizeof(*power_zone)); in powercap_register_zone()
504 power_zone = kzalloc_obj(*power_zone); in powercap_register_zone()
505 if (!power_zone) in powercap_register_zone()
507 power_zone->allocated = true; in powercap_register_zone()
509 power_zone->ops = ops; in powercap_register_zone()
510 power_zone->control_type_inst = control_type; in powercap_register_zone()
512 power_zone->dev.parent = &control_type->dev; in powercap_register_zone()
513 power_zone->parent_idr = &control_type->idr; in powercap_register_zone()
515 power_zone->dev.parent = &parent->dev; in powercap_register_zone()
516 power_zone->parent_idr = &parent->idr; in powercap_register_zone()
518 power_zone->dev.class = &powercap_class; in powercap_register_zone()
522 result = idr_alloc(power_zone->parent_idr, NULL, 0, 0, GFP_KERNEL); in powercap_register_zone()
526 power_zone->id = result; in powercap_register_zone()
527 idr_init(&power_zone->idr); in powercap_register_zone()
529 power_zone->name = kstrdup(name, GFP_KERNEL); in powercap_register_zone()
530 if (!power_zone->name) in powercap_register_zone()
532 power_zone->constraints = kzalloc_objs(*power_zone->constraints, in powercap_register_zone()
534 if (!power_zone->constraints) in powercap_register_zone()
539 power_zone->zone_dev_attrs = kcalloc(nr_attrs, sizeof(void *), in powercap_register_zone()
541 if (!power_zone->zone_dev_attrs) in powercap_register_zone()
543 create_power_zone_common_attributes(power_zone); in powercap_register_zone()
544 result = create_constraints(power_zone, nr_constraints, const_ops); in powercap_register_zone()
548 power_zone->zone_dev_attrs[power_zone->zone_attr_count] = NULL; in powercap_register_zone()
549 power_zone->dev_zone_attr_group.attrs = power_zone->zone_dev_attrs; in powercap_register_zone()
550 power_zone->dev_attr_groups[0] = &power_zone->dev_zone_attr_group; in powercap_register_zone()
551 power_zone->dev_attr_groups[1] = NULL; in powercap_register_zone()
552 power_zone->dev.groups = power_zone->dev_attr_groups; in powercap_register_zone()
553 dev_set_name(&power_zone->dev, "%s:%x", in powercap_register_zone()
554 dev_name(power_zone->dev.parent), in powercap_register_zone()
555 power_zone->id); in powercap_register_zone()
556 result = device_register(&power_zone->dev); in powercap_register_zone()
558 put_device(&power_zone->dev); in powercap_register_zone()
567 return power_zone; in powercap_register_zone()
570 kfree(power_zone->zone_dev_attrs); in powercap_register_zone()
572 kfree(power_zone->constraints); in powercap_register_zone()
574 kfree(power_zone->name); in powercap_register_zone()
576 idr_remove(power_zone->parent_idr, power_zone->id); in powercap_register_zone()
578 if (power_zone->allocated) in powercap_register_zone()
579 kfree(power_zone); in powercap_register_zone()
587 struct powercap_zone *power_zone) in powercap_unregister_zone() argument
589 if (!power_zone || !control_type) in powercap_unregister_zone()
596 device_unregister(&power_zone->dev); in powercap_unregister_zone()