Lines Matching refs:dev

101 static ssize_t control_show(struct device *dev, struct device_attribute *attr,  in control_show()  argument
105 dev->power.runtime_auto ? ctrl_auto : ctrl_on); in control_show()
108 static ssize_t control_store(struct device * dev, struct device_attribute *attr, in control_store() argument
111 device_lock(dev); in control_store()
113 pm_runtime_allow(dev); in control_store()
115 pm_runtime_forbid(dev); in control_store()
118 device_unlock(dev); in control_store()
124 static ssize_t runtime_active_time_show(struct device *dev, in runtime_active_time_show() argument
128 u64 tmp = pm_runtime_active_time(dev); in runtime_active_time_show()
137 static ssize_t runtime_suspended_time_show(struct device *dev, in runtime_suspended_time_show() argument
141 u64 tmp = pm_runtime_suspended_time(dev); in runtime_suspended_time_show()
150 static ssize_t runtime_status_show(struct device *dev, in runtime_status_show() argument
155 if (dev->power.runtime_error) { in runtime_status_show()
157 } else if (dev->power.disable_depth) { in runtime_status_show()
160 switch (dev->power.runtime_status) { in runtime_status_show()
182 static ssize_t autosuspend_delay_ms_show(struct device *dev, in autosuspend_delay_ms_show() argument
186 if (!dev->power.use_autosuspend) in autosuspend_delay_ms_show()
189 return sysfs_emit(buf, "%d\n", dev->power.autosuspend_delay); in autosuspend_delay_ms_show()
192 static ssize_t autosuspend_delay_ms_store(struct device *dev, in autosuspend_delay_ms_store() argument
197 if (!dev->power.use_autosuspend) in autosuspend_delay_ms_store()
203 device_lock(dev); in autosuspend_delay_ms_store()
204 pm_runtime_set_autosuspend_delay(dev, delay); in autosuspend_delay_ms_store()
205 device_unlock(dev); in autosuspend_delay_ms_store()
211 static ssize_t pm_qos_resume_latency_us_show(struct device *dev, in pm_qos_resume_latency_us_show() argument
215 s32 value = dev_pm_qos_requested_resume_latency(dev); in pm_qos_resume_latency_us_show()
225 static ssize_t pm_qos_resume_latency_us_store(struct device *dev, in pm_qos_resume_latency_us_store() argument
248 ret = dev_pm_qos_update_request(dev->power.qos->resume_latency_req, in pm_qos_resume_latency_us_store()
255 static ssize_t pm_qos_latency_tolerance_us_show(struct device *dev, in pm_qos_latency_tolerance_us_show() argument
259 s32 value = dev_pm_qos_get_user_latency_tolerance(dev); in pm_qos_latency_tolerance_us_show()
269 static ssize_t pm_qos_latency_tolerance_us_store(struct device *dev, in pm_qos_latency_tolerance_us_store() argument
288 ret = dev_pm_qos_update_user_latency_tolerance(dev, value); in pm_qos_latency_tolerance_us_store()
294 static ssize_t pm_qos_no_power_off_show(struct device *dev, in pm_qos_no_power_off_show() argument
298 return sysfs_emit(buf, "%d\n", !!(dev_pm_qos_requested_flags(dev) in pm_qos_no_power_off_show()
302 static ssize_t pm_qos_no_power_off_store(struct device *dev, in pm_qos_no_power_off_store() argument
314 ret = dev_pm_qos_update_flags(dev, PM_QOS_FLAG_NO_POWER_OFF, ret); in pm_qos_no_power_off_store()
324 static ssize_t wakeup_show(struct device *dev, struct device_attribute *attr, in wakeup_show() argument
327 return sysfs_emit(buf, "%s\n", device_can_wakeup(dev) in wakeup_show()
328 ? (device_may_wakeup(dev) ? _enabled : _disabled) in wakeup_show()
332 static ssize_t wakeup_store(struct device *dev, struct device_attribute *attr, in wakeup_store() argument
335 if (!device_can_wakeup(dev)) in wakeup_store()
339 device_set_wakeup_enable(dev, 1); in wakeup_store()
341 device_set_wakeup_enable(dev, 0); in wakeup_store()
349 static ssize_t wakeup_count_show(struct device *dev, in wakeup_count_show() argument
355 spin_lock_irq(&dev->power.lock); in wakeup_count_show()
356 if (dev->power.wakeup) { in wakeup_count_show()
357 count = dev->power.wakeup->wakeup_count; in wakeup_count_show()
360 spin_unlock_irq(&dev->power.lock); in wakeup_count_show()
369 static ssize_t wakeup_active_count_show(struct device *dev, in wakeup_active_count_show() argument
376 spin_lock_irq(&dev->power.lock); in wakeup_active_count_show()
377 if (dev->power.wakeup) { in wakeup_active_count_show()
378 count = dev->power.wakeup->active_count; in wakeup_active_count_show()
381 spin_unlock_irq(&dev->power.lock); in wakeup_active_count_show()
390 static ssize_t wakeup_abort_count_show(struct device *dev, in wakeup_abort_count_show() argument
397 spin_lock_irq(&dev->power.lock); in wakeup_abort_count_show()
398 if (dev->power.wakeup) { in wakeup_abort_count_show()
399 count = dev->power.wakeup->wakeup_count; in wakeup_abort_count_show()
402 spin_unlock_irq(&dev->power.lock); in wakeup_abort_count_show()
411 static ssize_t wakeup_expire_count_show(struct device *dev, in wakeup_expire_count_show() argument
418 spin_lock_irq(&dev->power.lock); in wakeup_expire_count_show()
419 if (dev->power.wakeup) { in wakeup_expire_count_show()
420 count = dev->power.wakeup->expire_count; in wakeup_expire_count_show()
423 spin_unlock_irq(&dev->power.lock); in wakeup_expire_count_show()
432 static ssize_t wakeup_active_show(struct device *dev, in wakeup_active_show() argument
438 spin_lock_irq(&dev->power.lock); in wakeup_active_show()
439 if (dev->power.wakeup) { in wakeup_active_show()
440 active = dev->power.wakeup->active; in wakeup_active_show()
443 spin_unlock_irq(&dev->power.lock); in wakeup_active_show()
452 static ssize_t wakeup_total_time_ms_show(struct device *dev, in wakeup_total_time_ms_show() argument
459 spin_lock_irq(&dev->power.lock); in wakeup_total_time_ms_show()
460 if (dev->power.wakeup) { in wakeup_total_time_ms_show()
461 msec = ktime_to_ms(dev->power.wakeup->total_time); in wakeup_total_time_ms_show()
464 spin_unlock_irq(&dev->power.lock); in wakeup_total_time_ms_show()
473 static ssize_t wakeup_max_time_ms_show(struct device *dev, in wakeup_max_time_ms_show() argument
479 spin_lock_irq(&dev->power.lock); in wakeup_max_time_ms_show()
480 if (dev->power.wakeup) { in wakeup_max_time_ms_show()
481 msec = ktime_to_ms(dev->power.wakeup->max_time); in wakeup_max_time_ms_show()
484 spin_unlock_irq(&dev->power.lock); in wakeup_max_time_ms_show()
493 static ssize_t wakeup_last_time_ms_show(struct device *dev, in wakeup_last_time_ms_show() argument
500 spin_lock_irq(&dev->power.lock); in wakeup_last_time_ms_show()
501 if (dev->power.wakeup) { in wakeup_last_time_ms_show()
502 msec = ktime_to_ms(dev->power.wakeup->last_time); in wakeup_last_time_ms_show()
505 spin_unlock_irq(&dev->power.lock); in wakeup_last_time_ms_show()
512 static inline int dpm_sysfs_wakeup_change_owner(struct device *dev, kuid_t kuid, in dpm_sysfs_wakeup_change_owner() argument
515 if (dev->power.wakeup && dev->power.wakeup->dev) in dpm_sysfs_wakeup_change_owner()
516 return device_change_owner(dev->power.wakeup->dev, kuid, kgid); in dpm_sysfs_wakeup_change_owner()
523 static ssize_t wakeup_prevent_sleep_time_ms_show(struct device *dev, in wakeup_prevent_sleep_time_ms_show() argument
530 spin_lock_irq(&dev->power.lock); in wakeup_prevent_sleep_time_ms_show()
531 if (dev->power.wakeup) { in wakeup_prevent_sleep_time_ms_show()
532 msec = ktime_to_ms(dev->power.wakeup->prevent_sleep_time); in wakeup_prevent_sleep_time_ms_show()
535 spin_unlock_irq(&dev->power.lock); in wakeup_prevent_sleep_time_ms_show()
545 static inline int dpm_sysfs_wakeup_change_owner(struct device *dev, kuid_t kuid, in dpm_sysfs_wakeup_change_owner() argument
553 static ssize_t runtime_usage_show(struct device *dev, in runtime_usage_show() argument
556 return sysfs_emit(buf, "%d\n", atomic_read(&dev->power.usage_count)); in runtime_usage_show()
560 static ssize_t runtime_active_kids_show(struct device *dev, in runtime_active_kids_show() argument
564 return sysfs_emit(buf, "%d\n", dev->power.ignore_children ? in runtime_active_kids_show()
565 0 : atomic_read(&dev->power.child_count)); in runtime_active_kids_show()
569 static ssize_t runtime_enabled_show(struct device *dev, in runtime_enabled_show() argument
574 if (dev->power.disable_depth && !dev->power.runtime_auto) in runtime_enabled_show()
576 else if (dev->power.disable_depth) in runtime_enabled_show()
578 else if (!dev->power.runtime_auto) in runtime_enabled_show()
588 static ssize_t async_show(struct device *dev, struct device_attribute *attr, in async_show() argument
592 device_async_suspend_enabled(dev) ? in async_show()
596 static ssize_t async_store(struct device *dev, struct device_attribute *attr, in async_store() argument
600 device_enable_async_suspend(dev); in async_store()
602 device_disable_async_suspend(dev); in async_store()
694 int dpm_sysfs_add(struct device *dev) in dpm_sysfs_add() argument
699 if (device_pm_not_required(dev)) in dpm_sysfs_add()
702 rc = sysfs_create_group(&dev->kobj, &pm_attr_group); in dpm_sysfs_add()
706 if (!pm_runtime_has_no_callbacks(dev)) { in dpm_sysfs_add()
707 rc = sysfs_merge_group(&dev->kobj, &pm_runtime_attr_group); in dpm_sysfs_add()
711 if (device_can_wakeup(dev)) { in dpm_sysfs_add()
712 rc = sysfs_merge_group(&dev->kobj, &pm_wakeup_attr_group); in dpm_sysfs_add()
716 if (dev->power.set_latency_tolerance) { in dpm_sysfs_add()
717 rc = sysfs_merge_group(&dev->kobj, in dpm_sysfs_add()
722 rc = pm_wakeup_source_sysfs_add(dev); in dpm_sysfs_add()
728 sysfs_unmerge_group(&dev->kobj, &pm_qos_latency_tolerance_attr_group); in dpm_sysfs_add()
730 sysfs_unmerge_group(&dev->kobj, &pm_wakeup_attr_group); in dpm_sysfs_add()
732 sysfs_unmerge_group(&dev->kobj, &pm_runtime_attr_group); in dpm_sysfs_add()
734 sysfs_remove_group(&dev->kobj, &pm_attr_group); in dpm_sysfs_add()
738 int dpm_sysfs_change_owner(struct device *dev, kuid_t kuid, kgid_t kgid) in dpm_sysfs_change_owner() argument
742 if (device_pm_not_required(dev)) in dpm_sysfs_change_owner()
745 rc = sysfs_group_change_owner(&dev->kobj, &pm_attr_group, kuid, kgid); in dpm_sysfs_change_owner()
749 if (!pm_runtime_has_no_callbacks(dev)) { in dpm_sysfs_change_owner()
751 &dev->kobj, &pm_runtime_attr_group, kuid, kgid); in dpm_sysfs_change_owner()
756 if (device_can_wakeup(dev)) { in dpm_sysfs_change_owner()
757 rc = sysfs_group_change_owner(&dev->kobj, &pm_wakeup_attr_group, in dpm_sysfs_change_owner()
762 rc = dpm_sysfs_wakeup_change_owner(dev, kuid, kgid); in dpm_sysfs_change_owner()
767 if (dev->power.set_latency_tolerance) { in dpm_sysfs_change_owner()
769 &dev->kobj, &pm_qos_latency_tolerance_attr_group, kuid, in dpm_sysfs_change_owner()
777 int wakeup_sysfs_add(struct device *dev) in wakeup_sysfs_add() argument
779 int ret = sysfs_merge_group(&dev->kobj, &pm_wakeup_attr_group); in wakeup_sysfs_add()
782 kobject_uevent(&dev->kobj, KOBJ_CHANGE); in wakeup_sysfs_add()
787 void wakeup_sysfs_remove(struct device *dev) in wakeup_sysfs_remove() argument
789 sysfs_unmerge_group(&dev->kobj, &pm_wakeup_attr_group); in wakeup_sysfs_remove()
790 kobject_uevent(&dev->kobj, KOBJ_CHANGE); in wakeup_sysfs_remove()
793 int pm_qos_sysfs_add_resume_latency(struct device *dev) in pm_qos_sysfs_add_resume_latency() argument
795 return sysfs_merge_group(&dev->kobj, &pm_qos_resume_latency_attr_group); in pm_qos_sysfs_add_resume_latency()
798 void pm_qos_sysfs_remove_resume_latency(struct device *dev) in pm_qos_sysfs_remove_resume_latency() argument
800 sysfs_unmerge_group(&dev->kobj, &pm_qos_resume_latency_attr_group); in pm_qos_sysfs_remove_resume_latency()
803 int pm_qos_sysfs_add_flags(struct device *dev) in pm_qos_sysfs_add_flags() argument
805 return sysfs_merge_group(&dev->kobj, &pm_qos_flags_attr_group); in pm_qos_sysfs_add_flags()
808 void pm_qos_sysfs_remove_flags(struct device *dev) in pm_qos_sysfs_remove_flags() argument
810 sysfs_unmerge_group(&dev->kobj, &pm_qos_flags_attr_group); in pm_qos_sysfs_remove_flags()
813 int pm_qos_sysfs_add_latency_tolerance(struct device *dev) in pm_qos_sysfs_add_latency_tolerance() argument
815 return sysfs_merge_group(&dev->kobj, in pm_qos_sysfs_add_latency_tolerance()
819 void pm_qos_sysfs_remove_latency_tolerance(struct device *dev) in pm_qos_sysfs_remove_latency_tolerance() argument
821 sysfs_unmerge_group(&dev->kobj, &pm_qos_latency_tolerance_attr_group); in pm_qos_sysfs_remove_latency_tolerance()
824 void rpm_sysfs_remove(struct device *dev) in rpm_sysfs_remove() argument
826 sysfs_unmerge_group(&dev->kobj, &pm_runtime_attr_group); in rpm_sysfs_remove()
829 void dpm_sysfs_remove(struct device *dev) in dpm_sysfs_remove() argument
831 if (device_pm_not_required(dev)) in dpm_sysfs_remove()
833 sysfs_unmerge_group(&dev->kobj, &pm_qos_latency_tolerance_attr_group); in dpm_sysfs_remove()
834 dev_pm_qos_constraints_destroy(dev); in dpm_sysfs_remove()
835 rpm_sysfs_remove(dev); in dpm_sysfs_remove()
836 sysfs_unmerge_group(&dev->kobj, &pm_wakeup_attr_group); in dpm_sysfs_remove()
837 sysfs_remove_group(&dev->kobj, &pm_attr_group); in dpm_sysfs_remove()