Lines Matching refs:power_zone

25 	struct powercap_zone *power_zone = to_powercap_zone(dev); \
27 if (power_zone->ops->get_##_attr) { \
28 if (!power_zone->ops->get_##_attr(power_zone, &value)) \
42 struct powercap_zone *power_zone = to_powercap_zone(dev); \
50 if (power_zone->ops->reset_##_attr) { \
51 if (!power_zone->ops->reset_##_attr(power_zone)) \
66 struct powercap_zone *power_zone = to_powercap_zone(dev); \
72 if (id >= power_zone->const_id_cnt) \
74 pconst = &power_zone->constraints[id]; \
76 if (!pconst->ops->get_##_attr(power_zone, id, &value)) \
91 struct powercap_zone *power_zone = to_powercap_zone(dev); \
97 if (id >= power_zone->const_id_cnt) \
99 pconst = &power_zone->constraints[id]; \
104 if (!pconst->ops->set_##_attr(power_zone, id, value)) \
159 struct powercap_zone *power_zone = to_powercap_zone(dev); in show_constraint_name() local
166 if (id >= power_zone->const_id_cnt) in show_constraint_name()
168 pconst = &power_zone->constraints[id]; in show_constraint_name()
171 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 dev_set_name(&power_zone->dev, "%s:%x", in powercap_register_zone()
534 dev_name(power_zone->dev.parent), in powercap_register_zone()
535 power_zone->id); in powercap_register_zone()
536 power_zone->constraints = kcalloc(nr_constraints, in powercap_register_zone()
537 sizeof(*power_zone->constraints), in powercap_register_zone()
539 if (!power_zone->constraints) in powercap_register_zone()
544 power_zone->zone_dev_attrs = kcalloc(nr_attrs, sizeof(void *), in powercap_register_zone()
546 if (!power_zone->zone_dev_attrs) in powercap_register_zone()
548 create_power_zone_common_attributes(power_zone); in powercap_register_zone()
549 result = create_constraints(power_zone, nr_constraints, const_ops); in powercap_register_zone()
553 power_zone->zone_dev_attrs[power_zone->zone_attr_count] = NULL; in powercap_register_zone()
554 power_zone->dev_zone_attr_group.attrs = power_zone->zone_dev_attrs; in powercap_register_zone()
555 power_zone->dev_attr_groups[0] = &power_zone->dev_zone_attr_group; in powercap_register_zone()
556 power_zone->dev_attr_groups[1] = NULL; in powercap_register_zone()
557 power_zone->dev.groups = power_zone->dev_attr_groups; in powercap_register_zone()
558 result = device_register(&power_zone->dev); in powercap_register_zone()
565 return power_zone; in powercap_register_zone()
568 kfree(power_zone->zone_dev_attrs); in powercap_register_zone()
570 kfree(power_zone->constraints); in powercap_register_zone()
572 kfree(power_zone->name); in powercap_register_zone()
574 idr_remove(power_zone->parent_idr, power_zone->id); in powercap_register_zone()
576 if (power_zone->allocated) in powercap_register_zone()
577 kfree(power_zone); in powercap_register_zone()
585 struct powercap_zone *power_zone) in powercap_unregister_zone() argument
587 if (!power_zone || !control_type) in powercap_unregister_zone()
594 device_unregister(&power_zone->dev); in powercap_unregister_zone()