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