power_limits
smu->user_dpm_profile.power_limits[limit_type] = limit;
if (!smu->user_dpm_profile.power_limits[i])
smu->user_dpm_profile.power_limits[i]);
uint32_t power_limits[SMU_LIMIT_TYPE_COUNT];
memcpy(&body->longbow.power_limits,
struct p54_channel_output_limit_longbow power_limits;
ac_rog_tunables->power_limits = ac_limits;
dc_rog_tunables->power_limits = dc_limits;
const struct power_limits *power_limits;
static bool has_valid_limit(const char *name, const struct power_limits *limits)
const struct power_limits *limits;
if (ac_rog_tunables && ac_rog_tunables->power_limits &&
limits = ac_rog_tunables->power_limits;
const struct power_limits *ac_limits, *dc_limits;
dmi_id = dmi_first_match(power_limits);
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
if (!tunables || !tunables->power_limits) \
return sysfs_emit(buf, "%d\n", tunables->power_limits->_val); \
if (!tunables || !tunables->power_limits) \
tunables->power_limits->_attrname##_def ? \
tunables->power_limits->_attrname##_def : \
tunables->power_limits->_attrname##_max); \
if (!tunables || !tunables->power_limits) \
if (tunables->power_limits->_attr##_min == \
tunables->power_limits->_attr##_max) \
tunables->power_limits->_attr##_min, \
tunables->power_limits->_attr##_max, \
const struct power_limits *ac_data;
const struct power_limits *dc_data;
static const struct dmi_system_id power_limits[] = {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
.dc_data = &(struct power_limits) {
.ac_data = &(struct power_limits) {
struct victus_power_limits power_limits;
power_limits.pl1 = pl1;
power_limits.pl2 = pl2;
power_limits.pl4 = HP_POWER_LIMIT_NO_CHANGE;
power_limits.cpu_gpu_concurrent_limit = HP_POWER_LIMIT_NO_CHANGE;
&power_limits, sizeof(power_limits), 0);
proc_priv->power_limits[i].index = ppcc[0].integer.value;
proc_priv->power_limits[i].min_uw = ppcc[1].integer.value;
proc_priv->power_limits[i].max_uw = ppcc[2].integer.value;
proc_priv->power_limits[i].tmin_us = ppcc[3].integer.value;
proc_priv->power_limits[i].tmax_us = ppcc[4].integer.value;
proc_priv->power_limits[i].step_uw = ppcc[5].integer.value;
(unsigned long)proc_dev->power_limits[index].suffix * 1000); \
struct power_config power_limits[2];