aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Huang <JinHuiEric.Huang@amd.com>2017-02-07 16:37:48 -0500
committerAlex Deucher <alexander.deucher@amd.com>2017-03-29 23:52:52 -0400
commitcd7b0c66ce35e8693a0018b4ce0bc59f46f97bd1 (patch)
tree311c094f71eb9b73d79b9e436563a580602c775d
parent618c0483736f4e963770aa6076cca35935604a12 (diff)
drm/amd/powerplay: change parameter type pointer from int32_t to void in read sensor
As well as fix print format for uint32_t type. Signed-off-by: Eric Huang <JinHuiEric.Huang@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c24
-rw-r--r--drivers/gpu/drm/amd/powerplay/amd_powerplay.c2
-rw-r--r--drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c28
-rw-r--r--drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c14
-rw-r--r--drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h2
-rw-r--r--drivers/gpu/drm/amd/powerplay/inc/hwmgr.h2
6 files changed, 36 insertions, 36 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
index fd45212c4b98..fc4d61cf34c1 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
@@ -1532,7 +1532,7 @@ void amdgpu_pm_compute_clocks(struct amdgpu_device *adev)
1532 1532
1533static int amdgpu_debugfs_pm_info_pp(struct seq_file *m, struct amdgpu_device *adev) 1533static int amdgpu_debugfs_pm_info_pp(struct seq_file *m, struct amdgpu_device *adev)
1534{ 1534{
1535 int32_t value; 1535 uint32_t value;
1536 1536
1537 /* sanity check PP is enabled */ 1537 /* sanity check PP is enabled */
1538 if (!(adev->powerplay.pp_funcs && 1538 if (!(adev->powerplay.pp_funcs &&
@@ -1541,46 +1541,46 @@ static int amdgpu_debugfs_pm_info_pp(struct seq_file *m, struct amdgpu_device *a
1541 1541
1542 /* GPU Clocks */ 1542 /* GPU Clocks */
1543 seq_printf(m, "GFX Clocks and Power:\n"); 1543 seq_printf(m, "GFX Clocks and Power:\n");
1544 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GFX_MCLK, &value)) 1544 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GFX_MCLK, (void *)&value))
1545 seq_printf(m, "\t%u MHz (MCLK)\n", value/100); 1545 seq_printf(m, "\t%u MHz (MCLK)\n", value/100);
1546 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GFX_SCLK, &value)) 1546 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GFX_SCLK, (void *)&value))
1547 seq_printf(m, "\t%u MHz (SCLK)\n", value/100); 1547 seq_printf(m, "\t%u MHz (SCLK)\n", value/100);
1548 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VDDGFX, &value)) 1548 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VDDGFX, (void *)&value))
1549 seq_printf(m, "\t%u mV (VDDGFX)\n", value); 1549 seq_printf(m, "\t%u mV (VDDGFX)\n", value);
1550 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VDDNB, &value)) 1550 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VDDNB, (void *)&value))
1551 seq_printf(m, "\t%u mV (VDDNB)\n", value); 1551 seq_printf(m, "\t%u mV (VDDNB)\n", value);
1552 seq_printf(m, "\n"); 1552 seq_printf(m, "\n");
1553 1553
1554 /* GPU Temp */ 1554 /* GPU Temp */
1555 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GPU_TEMP, &value)) 1555 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GPU_TEMP, (void *)&value))
1556 seq_printf(m, "GPU Temperature: %u C\n", value/1000); 1556 seq_printf(m, "GPU Temperature: %u C\n", value/1000);
1557 1557
1558 /* GPU Load */ 1558 /* GPU Load */
1559 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GPU_LOAD, &value)) 1559 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GPU_LOAD, (void *)&value))
1560 seq_printf(m, "GPU Load: %u %%\n", value); 1560 seq_printf(m, "GPU Load: %u %%\n", value);
1561 seq_printf(m, "\n"); 1561 seq_printf(m, "\n");
1562 1562
1563 /* UVD clocks */ 1563 /* UVD clocks */
1564 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_UVD_POWER, &value)) { 1564 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_UVD_POWER, (void *)&value)) {
1565 if (!value) { 1565 if (!value) {
1566 seq_printf(m, "UVD: Disabled\n"); 1566 seq_printf(m, "UVD: Disabled\n");
1567 } else { 1567 } else {
1568 seq_printf(m, "UVD: Enabled\n"); 1568 seq_printf(m, "UVD: Enabled\n");
1569 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_UVD_DCLK, &value)) 1569 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_UVD_DCLK, (void *)&value))
1570 seq_printf(m, "\t%u MHz (DCLK)\n", value/100); 1570 seq_printf(m, "\t%u MHz (DCLK)\n", value/100);
1571 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_UVD_VCLK, &value)) 1571 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_UVD_VCLK, (void *)&value))
1572 seq_printf(m, "\t%u MHz (VCLK)\n", value/100); 1572 seq_printf(m, "\t%u MHz (VCLK)\n", value/100);
1573 } 1573 }
1574 } 1574 }
1575 seq_printf(m, "\n"); 1575 seq_printf(m, "\n");
1576 1576
1577 /* VCE clocks */ 1577 /* VCE clocks */
1578 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VCE_POWER, &value)) { 1578 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VCE_POWER, (void *)&value)) {
1579 if (!value) { 1579 if (!value) {
1580 seq_printf(m, "VCE: Disabled\n"); 1580 seq_printf(m, "VCE: Disabled\n");
1581 } else { 1581 } else {
1582 seq_printf(m, "VCE: Enabled\n"); 1582 seq_printf(m, "VCE: Enabled\n");
1583 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VCE_ECCLK, &value)) 1583 if (!amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VCE_ECCLK, (void *)&value))
1584 seq_printf(m, "\t%u MHz (ECCLK)\n", value/100); 1584 seq_printf(m, "\t%u MHz (ECCLK)\n", value/100);
1585 } 1585 }
1586 } 1586 }
diff --git a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
index 8074386da36f..81e6856ffa11 100644
--- a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
+++ b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
@@ -880,7 +880,7 @@ static int pp_dpm_set_mclk_od(void *handle, uint32_t value)
880 return hwmgr->hwmgr_func->set_mclk_od(hwmgr, value); 880 return hwmgr->hwmgr_func->set_mclk_od(hwmgr, value);
881} 881}
882 882
883static int pp_dpm_read_sensor(void *handle, int idx, int32_t *value) 883static int pp_dpm_read_sensor(void *handle, int idx, void *value)
884{ 884{
885 struct pp_hwmgr *hwmgr; 885 struct pp_hwmgr *hwmgr;
886 struct pp_instance *pp_handle = (struct pp_instance *)handle; 886 struct pp_instance *pp_handle = (struct pp_instance *)handle;
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c
index a4cde3d778b8..edc3029df785 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c
@@ -1813,7 +1813,7 @@ static int cz_thermal_get_temperature(struct pp_hwmgr *hwmgr)
1813 return actual_temp; 1813 return actual_temp;
1814} 1814}
1815 1815
1816static int cz_read_sensor(struct pp_hwmgr *hwmgr, int idx, int32_t *value) 1816static int cz_read_sensor(struct pp_hwmgr *hwmgr, int idx, void *value)
1817{ 1817{
1818 struct cz_hwmgr *cz_hwmgr = (struct cz_hwmgr *)(hwmgr->backend); 1818 struct cz_hwmgr *cz_hwmgr = (struct cz_hwmgr *)(hwmgr->backend);
1819 1819
@@ -1841,7 +1841,7 @@ static int cz_read_sensor(struct pp_hwmgr *hwmgr, int idx, int32_t *value)
1841 case AMDGPU_PP_SENSOR_GFX_SCLK: 1841 case AMDGPU_PP_SENSOR_GFX_SCLK:
1842 if (sclk_index < NUM_SCLK_LEVELS) { 1842 if (sclk_index < NUM_SCLK_LEVELS) {
1843 sclk = table->entries[sclk_index].clk; 1843 sclk = table->entries[sclk_index].clk;
1844 *value = sclk; 1844 *((uint32_t *)value) = sclk;
1845 return 0; 1845 return 0;
1846 } 1846 }
1847 return -EINVAL; 1847 return -EINVAL;
@@ -1849,13 +1849,13 @@ static int cz_read_sensor(struct pp_hwmgr *hwmgr, int idx, int32_t *value)
1849 tmp = (cgs_read_ind_register(hwmgr->device, CGS_IND_REG__SMC, ixSMUSVI_NB_CURRENTVID) & 1849 tmp = (cgs_read_ind_register(hwmgr->device, CGS_IND_REG__SMC, ixSMUSVI_NB_CURRENTVID) &
1850 CURRENT_NB_VID_MASK) >> CURRENT_NB_VID__SHIFT; 1850 CURRENT_NB_VID_MASK) >> CURRENT_NB_VID__SHIFT;
1851 vddnb = cz_convert_8Bit_index_to_voltage(hwmgr, tmp); 1851 vddnb = cz_convert_8Bit_index_to_voltage(hwmgr, tmp);
1852 *value = vddnb; 1852 *((uint32_t *)value) = vddnb;
1853 return 0; 1853 return 0;
1854 case AMDGPU_PP_SENSOR_VDDGFX: 1854 case AMDGPU_PP_SENSOR_VDDGFX:
1855 tmp = (cgs_read_ind_register(hwmgr->device, CGS_IND_REG__SMC, ixSMUSVI_GFX_CURRENTVID) & 1855 tmp = (cgs_read_ind_register(hwmgr->device, CGS_IND_REG__SMC, ixSMUSVI_GFX_CURRENTVID) &
1856 CURRENT_GFX_VID_MASK) >> CURRENT_GFX_VID__SHIFT; 1856 CURRENT_GFX_VID_MASK) >> CURRENT_GFX_VID__SHIFT;
1857 vddgfx = cz_convert_8Bit_index_to_voltage(hwmgr, (u16)tmp); 1857 vddgfx = cz_convert_8Bit_index_to_voltage(hwmgr, (u16)tmp);
1858 *value = vddgfx; 1858 *((uint32_t *)value) = vddgfx;
1859 return 0; 1859 return 0;
1860 case AMDGPU_PP_SENSOR_UVD_VCLK: 1860 case AMDGPU_PP_SENSOR_UVD_VCLK:
1861 if (!cz_hwmgr->uvd_power_gated) { 1861 if (!cz_hwmgr->uvd_power_gated) {
@@ -1863,11 +1863,11 @@ static int cz_read_sensor(struct pp_hwmgr *hwmgr, int idx, int32_t *value)
1863 return -EINVAL; 1863 return -EINVAL;
1864 } else { 1864 } else {
1865 vclk = uvd_table->entries[uvd_index].vclk; 1865 vclk = uvd_table->entries[uvd_index].vclk;
1866 *value = vclk; 1866 *((uint32_t *)value) = vclk;
1867 return 0; 1867 return 0;
1868 } 1868 }
1869 } 1869 }
1870 *value = 0; 1870 *((uint32_t *)value) = 0;
1871 return 0; 1871 return 0;
1872 case AMDGPU_PP_SENSOR_UVD_DCLK: 1872 case AMDGPU_PP_SENSOR_UVD_DCLK:
1873 if (!cz_hwmgr->uvd_power_gated) { 1873 if (!cz_hwmgr->uvd_power_gated) {
@@ -1875,11 +1875,11 @@ static int cz_read_sensor(struct pp_hwmgr *hwmgr, int idx, int32_t *value)
1875 return -EINVAL; 1875 return -EINVAL;
1876 } else { 1876 } else {
1877 dclk = uvd_table->entries[uvd_index].dclk; 1877 dclk = uvd_table->entries[uvd_index].dclk;
1878 *value = dclk; 1878 *((uint32_t *)value) = dclk;
1879 return 0; 1879 return 0;
1880 } 1880 }
1881 } 1881 }
1882 *value = 0; 1882 *((uint32_t *)value) = 0;
1883 return 0; 1883 return 0;
1884 case AMDGPU_PP_SENSOR_VCE_ECCLK: 1884 case AMDGPU_PP_SENSOR_VCE_ECCLK:
1885 if (!cz_hwmgr->vce_power_gated) { 1885 if (!cz_hwmgr->vce_power_gated) {
@@ -1887,11 +1887,11 @@ static int cz_read_sensor(struct pp_hwmgr *hwmgr, int idx, int32_t *value)
1887 return -EINVAL; 1887 return -EINVAL;
1888 } else { 1888 } else {
1889 ecclk = vce_table->entries[vce_index].ecclk; 1889 ecclk = vce_table->entries[vce_index].ecclk;
1890 *value = ecclk; 1890 *((uint32_t *)value) = ecclk;
1891 return 0; 1891 return 0;
1892 } 1892 }
1893 } 1893 }
1894 *value = 0; 1894 *((uint32_t *)value) = 0;
1895 return 0; 1895 return 0;
1896 case AMDGPU_PP_SENSOR_GPU_LOAD: 1896 case AMDGPU_PP_SENSOR_GPU_LOAD:
1897 result = smum_send_msg_to_smc(hwmgr->smumgr, PPSMC_MSG_GetAverageGraphicsActivity); 1897 result = smum_send_msg_to_smc(hwmgr->smumgr, PPSMC_MSG_GetAverageGraphicsActivity);
@@ -1901,16 +1901,16 @@ static int cz_read_sensor(struct pp_hwmgr *hwmgr, int idx, int32_t *value)
1901 } else { 1901 } else {
1902 activity_percent = 50; 1902 activity_percent = 50;
1903 } 1903 }
1904 *value = activity_percent; 1904 *((uint32_t *)value) = activity_percent;
1905 return 0; 1905 return 0;
1906 case AMDGPU_PP_SENSOR_UVD_POWER: 1906 case AMDGPU_PP_SENSOR_UVD_POWER:
1907 *value = cz_hwmgr->uvd_power_gated ? 0 : 1; 1907 *((uint32_t *)value) = cz_hwmgr->uvd_power_gated ? 0 : 1;
1908 return 0; 1908 return 0;
1909 case AMDGPU_PP_SENSOR_VCE_POWER: 1909 case AMDGPU_PP_SENSOR_VCE_POWER:
1910 *value = cz_hwmgr->vce_power_gated ? 0 : 1; 1910 *((uint32_t *)value) = cz_hwmgr->vce_power_gated ? 0 : 1;
1911 return 0; 1911 return 0;
1912 case AMDGPU_PP_SENSOR_GPU_TEMP: 1912 case AMDGPU_PP_SENSOR_GPU_TEMP:
1913 *value = cz_thermal_get_temperature(hwmgr); 1913 *((uint32_t *)value) = cz_thermal_get_temperature(hwmgr);
1914 return 0; 1914 return 0;
1915 default: 1915 default:
1916 return -EINVAL; 1916 return -EINVAL;
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
index 31289a8d5cec..c3f8e9d56563 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
@@ -3289,7 +3289,7 @@ static int smu7_get_pp_table_entry(struct pp_hwmgr *hwmgr,
3289 return 0; 3289 return 0;
3290} 3290}
3291 3291
3292static int smu7_read_sensor(struct pp_hwmgr *hwmgr, int idx, int32_t *value) 3292static int smu7_read_sensor(struct pp_hwmgr *hwmgr, int idx, void *value)
3293{ 3293{
3294 uint32_t sclk, mclk, activity_percent; 3294 uint32_t sclk, mclk, activity_percent;
3295 uint32_t offset; 3295 uint32_t offset;
@@ -3299,12 +3299,12 @@ static int smu7_read_sensor(struct pp_hwmgr *hwmgr, int idx, int32_t *value)
3299 case AMDGPU_PP_SENSOR_GFX_SCLK: 3299 case AMDGPU_PP_SENSOR_GFX_SCLK:
3300 smum_send_msg_to_smc(hwmgr->smumgr, PPSMC_MSG_API_GetSclkFrequency); 3300 smum_send_msg_to_smc(hwmgr->smumgr, PPSMC_MSG_API_GetSclkFrequency);
3301 sclk = cgs_read_register(hwmgr->device, mmSMC_MSG_ARG_0); 3301 sclk = cgs_read_register(hwmgr->device, mmSMC_MSG_ARG_0);
3302 *value = sclk; 3302 *((uint32_t *)value) = sclk;
3303 return 0; 3303 return 0;
3304 case AMDGPU_PP_SENSOR_GFX_MCLK: 3304 case AMDGPU_PP_SENSOR_GFX_MCLK:
3305 smum_send_msg_to_smc(hwmgr->smumgr, PPSMC_MSG_API_GetMclkFrequency); 3305 smum_send_msg_to_smc(hwmgr->smumgr, PPSMC_MSG_API_GetMclkFrequency);
3306 mclk = cgs_read_register(hwmgr->device, mmSMC_MSG_ARG_0); 3306 mclk = cgs_read_register(hwmgr->device, mmSMC_MSG_ARG_0);
3307 *value = mclk; 3307 *((uint32_t *)value) = mclk;
3308 return 0; 3308 return 0;
3309 case AMDGPU_PP_SENSOR_GPU_LOAD: 3309 case AMDGPU_PP_SENSOR_GPU_LOAD:
3310 offset = data->soft_regs_start + smum_get_offsetof(hwmgr->smumgr, 3310 offset = data->soft_regs_start + smum_get_offsetof(hwmgr->smumgr,
@@ -3314,16 +3314,16 @@ static int smu7_read_sensor(struct pp_hwmgr *hwmgr, int idx, int32_t *value)
3314 activity_percent = cgs_read_ind_register(hwmgr->device, CGS_IND_REG__SMC, offset); 3314 activity_percent = cgs_read_ind_register(hwmgr->device, CGS_IND_REG__SMC, offset);
3315 activity_percent += 0x80; 3315 activity_percent += 0x80;
3316 activity_percent >>= 8; 3316 activity_percent >>= 8;
3317 *value = activity_percent > 100 ? 100 : activity_percent; 3317 *((uint32_t *)value) = activity_percent > 100 ? 100 : activity_percent;
3318 return 0; 3318 return 0;
3319 case AMDGPU_PP_SENSOR_GPU_TEMP: 3319 case AMDGPU_PP_SENSOR_GPU_TEMP:
3320 *value = smu7_thermal_get_temperature(hwmgr); 3320 *((uint32_t *)value) = smu7_thermal_get_temperature(hwmgr);
3321 return 0; 3321 return 0;
3322 case AMDGPU_PP_SENSOR_UVD_POWER: 3322 case AMDGPU_PP_SENSOR_UVD_POWER:
3323 *value = data->uvd_power_gated ? 0 : 1; 3323 *((uint32_t *)value) = data->uvd_power_gated ? 0 : 1;
3324 return 0; 3324 return 0;
3325 case AMDGPU_PP_SENSOR_VCE_POWER: 3325 case AMDGPU_PP_SENSOR_VCE_POWER:
3326 *value = data->vce_power_gated ? 0 : 1; 3326 *((uint32_t *)value) = data->vce_power_gated ? 0 : 1;
3327 return 0; 3327 return 0;
3328 default: 3328 default:
3329 return -EINVAL; 3329 return -EINVAL;
diff --git a/drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h b/drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h
index 4b4f5ff2f039..97009110e011 100644
--- a/drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h
+++ b/drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h
@@ -359,7 +359,7 @@ struct amd_powerplay_funcs {
359 int (*set_sclk_od)(void *handle, uint32_t value); 359 int (*set_sclk_od)(void *handle, uint32_t value);
360 int (*get_mclk_od)(void *handle); 360 int (*get_mclk_od)(void *handle);
361 int (*set_mclk_od)(void *handle, uint32_t value); 361 int (*set_mclk_od)(void *handle, uint32_t value);
362 int (*read_sensor)(void *handle, int idx, int32_t *value); 362 int (*read_sensor)(void *handle, int idx, void *value);
363 struct amd_vce_state* (*get_vce_clock_state)(void *handle, unsigned idx); 363 struct amd_vce_state* (*get_vce_clock_state)(void *handle, unsigned idx);
364 int (*reset_power_profile_state)(void *handle, 364 int (*reset_power_profile_state)(void *handle,
365 struct amd_pp_profile *request); 365 struct amd_pp_profile *request);
diff --git a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
index 768f81f365ca..fa3bf50eff82 100644
--- a/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
+++ b/drivers/gpu/drm/amd/powerplay/inc/hwmgr.h
@@ -355,7 +355,7 @@ struct pp_hwmgr_func {
355 int (*set_sclk_od)(struct pp_hwmgr *hwmgr, uint32_t value); 355 int (*set_sclk_od)(struct pp_hwmgr *hwmgr, uint32_t value);
356 int (*get_mclk_od)(struct pp_hwmgr *hwmgr); 356 int (*get_mclk_od)(struct pp_hwmgr *hwmgr);
357 int (*set_mclk_od)(struct pp_hwmgr *hwmgr, uint32_t value); 357 int (*set_mclk_od)(struct pp_hwmgr *hwmgr, uint32_t value);
358 int (*read_sensor)(struct pp_hwmgr *hwmgr, int idx, int32_t *value); 358 int (*read_sensor)(struct pp_hwmgr *hwmgr, int idx, void *value);
359 int (*request_firmware)(struct pp_hwmgr *hwmgr); 359 int (*request_firmware)(struct pp_hwmgr *hwmgr);
360 int (*release_firmware)(struct pp_hwmgr *hwmgr); 360 int (*release_firmware)(struct pp_hwmgr *hwmgr);
361 int (*set_power_profile_state)(struct pp_hwmgr *hwmgr, 361 int (*set_power_profile_state)(struct pp_hwmgr *hwmgr,