dmc_info
if (dmc->dmc_info[dmc_id].present)
dmc->dmc_info[dmc_id].present = true;
dmc->dmc_info[dmc_id].dmc_offset = fw_info[i].offset;
struct dmc_fw_info *dmc_info = &dmc->dmc_info[dmc_id];
BUILD_BUG_ON(ARRAY_SIZE(dmc_info->mmioaddr) < DMC_V3_MAX_MMIO_COUNT ||
ARRAY_SIZE(dmc_info->mmioaddr) < DMC_V1_MAX_MMIO_COUNT);
dmc_info->mmioaddr[i] = _MMIO(mmioaddr[i]);
dmc_info->mmiodata[i] = mmiodata[i];
dmc_info->mmiodata[i],
dmc_info->mmiodata[i+1],
dmc_info->mmioaddr[i], &dmc_info->mmiodata[i],
dmc_info->mmioaddr[i+1], &dmc_info->mmiodata[i+1]))
i, i915_mmio_reg_offset(dmc_info->mmioaddr[i]),
orig_mmiodata[0], dmc_info->mmiodata[i]);
i+1, i915_mmio_reg_offset(dmc_info->mmioaddr[i+1]),
orig_mmiodata[1], dmc_info->mmiodata[i+1]);
i, i915_mmio_reg_offset(dmc_info->mmioaddr[i]), dmc_info->mmiodata[i],
is_dmc_evt_ctl_reg(display, dmc_id, dmc_info->mmioaddr[i]) ? " (EVT_CTL)" :
is_dmc_evt_htp_reg(display, dmc_id, dmc_info->mmioaddr[i]) ? " (EVT_HTP)" : "",
disable_dmc_evt(display, dmc_id, dmc_info->mmioaddr[i],
dmc_info->mmiodata[i]) ? " (disabling)" : "");
dmc_info->mmio_count = mmio_count;
dmc_info->start_mmioaddr = start_mmioaddr;
dmc_info->dmc_fw_size = dmc_header->fw_size;
dmc_info->payload = kmalloc(payload_size, GFP_KERNEL);
if (!dmc_info->payload)
memcpy(dmc_info->payload, payload, payload_size);
if (!dmc->dmc_info[dmc_id].present)
offset = readcount + dmc->dmc_info[dmc_id].dmc_offset * 4;
kfree(dmc->dmc_info[dmc_id].payload);
intel_de_read(display, DMC_PROGRAM(dmc->dmc_info[DMC_FW_MAIN].start_mmioaddr, 0)));
return dmc ? dmc->dmc_info[dmc_id].start_mmioaddr : 0;
return dmc && dmc->dmc_info[dmc_id].payload;
dmc->dmc_info[dmc_id].mmioaddr[i],
dmc->dmc_info[dmc_id].mmiodata[i]))
return dmc_evt_ctl_disable(dmc->dmc_info[dmc_id].mmiodata[i]);
return dmc->dmc_info[dmc_id].mmiodata[i];
for (i = 0; i < dmc->dmc_info[dmc_id].mmio_count; i++) {
intel_de_write(display, dmc->dmc_info[dmc_id].mmioaddr[i],
for (i = 0; i < dmc->dmc_info[dmc_id].dmc_fw_size; i++) {
DMC_PROGRAM(dmc->dmc_info[dmc_id].start_mmioaddr, i),
dmc->dmc_info[dmc_id].payload[i]);
found = intel_de_read(display, DMC_PROGRAM(dmc->dmc_info[dmc_id].start_mmioaddr, 0));
expected = dmc->dmc_info[dmc_id].payload[0];
for (i = 0; i < dmc->dmc_info[dmc_id].mmio_count; i++) {
i915_reg_t reg = dmc->dmc_info[dmc_id].mmioaddr[i];
} dmc_info[DMC_FW_MAX];
for (i = 0; i < dmc->dmc_info[dmc_id].mmio_count; i++) {
i915_reg_t reg = dmc->dmc_info[dmc_id].mmioaddr[i];
u32 data = dmc->dmc_info[dmc_id].mmiodata[i];
struct dmc_info info;
struct dmc_info *info = dev_id;
struct dmc_info *info)
static unsigned long dmc_g12_get_freq_quick(struct dmc_info *info)
static void g12_dump_reg(struct dmc_info *db)
static void dmc_g12_counter_enable(struct dmc_info *info)
static void dmc_g12_config_fiter(struct dmc_info *info,
static void dmc_g12_set_axi_filter(struct dmc_info *info, int axi_id, int channel)
static void dmc_g12_counter_disable(struct dmc_info *info)
static void dmc_g12_get_counters(struct dmc_info *info,
static int dmc_g12_irq_handler(struct dmc_info *info,
struct dmc_info;
void (*enable)(struct dmc_info *info);
void (*disable)(struct dmc_info *info);
void (*set_axi_filter)(struct dmc_info *info, int axi_id, int chann);
int (*irq_handler)(struct dmc_info *info,
void (*get_counters)(struct dmc_info *info,