in intel_rapl_common.c [792:817]
static int rapl_write_data_raw(struct rapl_domain *rd,
enum rapl_primitives prim,
unsigned long long value)
{
enum rapl_primitives prim_fixed = prim_fixups(rd, prim);
struct rapl_primitive_info *rp = &rpi[prim_fixed];
int cpu;
u64 bits;
struct reg_action ra;
int ret;
cpu = rd->rp->lead_cpu;
bits = rapl_unit_xlate(rd, rp->unit, value, 1);
bits <<= rp->shift;
bits &= rp->mask;
memset(&ra, 0, sizeof(ra));
ra.reg = rd->regs[rp->id];
ra.mask = rp->mask;
ra.value = bits;
ret = rd->rp->priv->write_raw(cpu, &ra);
return ret;
}