Lines Matching refs:ddat
58 struct hwm_drvdata ddat;
68 hwm_locked_with_pm_intel_uncore_rmw(struct hwm_drvdata *ddat,
71 struct i915_hwmon *hwmon = ddat->hwmon;
72 struct intel_uncore *uncore = ddat->uncore;
89 hwm_field_read_and_scale(struct hwm_drvdata *ddat, i915_reg_t rgadr,
92 struct intel_uncore *uncore = ddat->uncore;
125 hwm_energy(struct hwm_drvdata *ddat, long *energy)
127 struct intel_uncore *uncore = ddat->uncore;
128 struct i915_hwmon *hwmon = ddat->hwmon;
129 struct hwm_energy_info *ei = &ddat->ei;
134 if (ddat->gt_n >= 0)
159 struct hwm_drvdata *ddat = dev_get_drvdata(dev);
160 struct i915_hwmon *hwmon = ddat->hwmon;
165 with_intel_runtime_pm(ddat->uncore->rpm, wakeref)
166 r = intel_uncore_read(ddat->uncore, hwmon->rg.pkg_rapl_limit);
190 struct hwm_drvdata *ddat = dev_get_drvdata(dev);
191 struct i915_hwmon *hwmon = ddat->hwmon;
235 hwm_locked_with_pm_intel_uncore_rmw(ddat, hwmon->rg.pkg_rapl_limit,
253 struct hwm_drvdata *ddat = dev_get_drvdata(dev);
254 struct i915_hwmon *hwmon = ddat->hwmon;
303 hwm_in_is_visible(const struct hwm_drvdata *ddat, u32 attr)
305 struct drm_i915_private *i915 = ddat->uncore->i915;
316 hwm_in_read(struct hwm_drvdata *ddat, u32 attr, long *val)
318 struct i915_hwmon *hwmon = ddat->hwmon;
324 with_intel_runtime_pm(ddat->uncore->rpm, wakeref)
325 reg_value = intel_uncore_read(ddat->uncore, hwmon->rg.gt_perf_status);
335 hwm_power_is_visible(const struct hwm_drvdata *ddat, u32 attr, int chan)
337 struct drm_i915_private *i915 = ddat->uncore->i915;
338 struct i915_hwmon *hwmon = ddat->hwmon;
363 hwm_power_max_read(struct hwm_drvdata *ddat, long *val)
365 struct i915_hwmon *hwmon = ddat->hwmon;
370 with_intel_runtime_pm(ddat->uncore->rpm, wakeref)
371 r = intel_uncore_read(ddat->uncore, hwmon->rg.pkg_rapl_limit);
377 *val = hwm_field_read_and_scale(ddat,
383 with_intel_runtime_pm(ddat->uncore->rpm, wakeref)
384 r = intel_uncore_read64(ddat->uncore, hwmon->rg.pkg_power_sku);
397 hwm_power_max_write(struct hwm_drvdata *ddat, long val)
399 struct i915_hwmon *hwmon = ddat->hwmon;
409 prepare_to_wait(&ddat->waitq, &wait, TASK_INTERRUPTIBLE);
411 if (!hwmon->ddat.reset_in_progress)
423 finish_wait(&ddat->waitq, &wait);
427 wakeref = intel_runtime_pm_get(ddat->uncore->rpm);
431 intel_uncore_rmw(ddat->uncore, hwmon->rg.pkg_rapl_limit,
433 nval = intel_uncore_read(ddat->uncore, hwmon->rg.pkg_rapl_limit);
444 intel_uncore_rmw(ddat->uncore, hwmon->rg.pkg_rapl_limit,
447 intel_runtime_pm_put(ddat->uncore->rpm, wakeref);
454 hwm_power_read(struct hwm_drvdata *ddat, u32 attr, int chan, long *val)
456 struct i915_hwmon *hwmon = ddat->hwmon;
462 return hwm_power_max_read(ddat, val);
464 *val = hwm_field_read_and_scale(ddat,
471 ret = hwm_pcode_read_i1(ddat->uncore->i915, &uval);
485 hwm_power_write(struct hwm_drvdata *ddat, u32 attr, int chan, long val)
491 return hwm_power_max_write(ddat, val);
494 return hwm_pcode_write_i1(ddat->uncore->i915, uval);
510 hwmon->ddat.reset_in_progress = true;
511 r = intel_uncore_rmw(hwmon->ddat.uncore, hwmon->rg.pkg_rapl_limit,
527 intel_uncore_rmw(hwmon->ddat.uncore, hwmon->rg.pkg_rapl_limit,
529 hwmon->ddat.reset_in_progress = false;
530 wake_up_all(&hwmon->ddat.waitq);
536 hwm_energy_is_visible(const struct hwm_drvdata *ddat, u32 attr)
538 struct i915_hwmon *hwmon = ddat->hwmon;
543 if (ddat->gt_n >= 0)
554 hwm_energy_read(struct hwm_drvdata *ddat, u32 attr, long *val)
558 hwm_energy(ddat, val);
566 hwm_curr_is_visible(const struct hwm_drvdata *ddat, u32 attr)
568 struct drm_i915_private *i915 = ddat->uncore->i915;
581 hwm_curr_read(struct hwm_drvdata *ddat, u32 attr, long *val)
588 ret = hwm_pcode_read_i1(ddat->uncore->i915, &uval);
602 hwm_curr_write(struct hwm_drvdata *ddat, u32 attr, long val)
609 return hwm_pcode_write_i1(ddat->uncore->i915, uval);
619 struct hwm_drvdata *ddat = (struct hwm_drvdata *)drvdata;
623 return hwm_in_is_visible(ddat, attr);
625 return hwm_power_is_visible(ddat, attr, channel);
627 return hwm_energy_is_visible(ddat, attr);
629 return hwm_curr_is_visible(ddat, attr);
639 struct hwm_drvdata *ddat = dev_get_drvdata(dev);
643 return hwm_in_read(ddat, attr, val);
645 return hwm_power_read(ddat, attr, channel, val);
647 return hwm_energy_read(ddat, attr, val);
649 return hwm_curr_read(ddat, attr, val);
659 struct hwm_drvdata *ddat = dev_get_drvdata(dev);
663 return hwm_power_write(ddat, attr, channel, val);
665 return hwm_curr_write(ddat, attr, val);
686 struct hwm_drvdata *ddat = (struct hwm_drvdata *)drvdata;
690 return hwm_energy_is_visible(ddat, attr);
700 struct hwm_drvdata *ddat = dev_get_drvdata(dev);
704 return hwm_energy_read(ddat, attr, val);
725 struct hwm_drvdata *ddat = &hwmon->ddat;
774 hwm_energy(ddat, &energy);
786 struct hwm_drvdata *ddat;
801 ddat = &hwmon->ddat;
803 ddat->hwmon = hwmon;
804 ddat->uncore = &i915->uncore;
805 snprintf(ddat->name, sizeof(ddat->name), "i915");
806 ddat->gt_n = -1;
807 init_waitqueue_head(&ddat->waitq);
821 hwmon_dev = devm_hwmon_device_register_with_info(dev, ddat->name,
822 ddat,
830 ddat->hwmon_dev = hwmon_dev;