p_state_addr = dma_map_single(&GET_DEV(accel_dev), pm_info, PAGE_SIZE,
DMA_FROM_DEVICE);
ret = dma_mapping_error(&GET_DEV(accel_dev), p_state_addr); if (ret) goto out_free;
/* Query power management information from QAT FW */
ret = adf_get_pm_info(accel_dev, p_state_addr, PAGE_SIZE);
dma_unmap_single(&GET_DEV(accel_dev), p_state_addr, PAGE_SIZE,
DMA_FROM_DEVICE); if (ret) goto out_free;
pm_info_regs = (u32 *)pm_info;
/* Fuse control register */
len += scnprintf(&pm_kv[len], PAGE_SIZE - len, "----------- PM Fuse info ---------\n");
len += adf_pm_scnprint_table_lower_keys(&pm_kv[len], pm_fuse_rows,
pm_info_regs, PAGE_SIZE - len,
ARRAY_SIZE(pm_fuse_rows));
/* Power management */
len += scnprintf(&pm_kv[len], PAGE_SIZE - len, "----------- PM Info --------------\n");
len += adf_pm_scnprint_table_lower_keys(&pm_kv[len], pm_info_rows,
pm_info_regs, PAGE_SIZE - len,
ARRAY_SIZE(pm_info_rows));
len += scnprintf(&pm_kv[len], PAGE_SIZE - len, "pm_mode: ACTIVE\n");
/* Shared Slice Module */
len += scnprintf(&pm_kv[len], PAGE_SIZE - len, "----------- SSM_PM Info ----------\n");
len += adf_pm_scnprint_table_lower_keys(&pm_kv[len], pm_ssm_rows,
pm_info_regs, PAGE_SIZE - len,
ARRAY_SIZE(pm_ssm_rows));
/* Control status register content */
len += scnprintf(&pm_kv[len], PAGE_SIZE - len, "----------- HW PM CSRs -----------\n");
len += adf_pm_scnprint_table_upper_keys(&pm_kv[len], pm_csrs_rows,
pm_info_regs, PAGE_SIZE - len,
ARRAY_SIZE(pm_csrs_rows));
val = ADF_CSR_RD(pmisc, ADF_GEN6_PM_INTERRUPT);
len += scnprintf(&pm_kv[len], PAGE_SIZE - len, "CPM_PM_INTERRUPT: %#x\n", val);
ret = simple_read_from_buffer(buf, count, pos, pm_kv, len);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.