mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 10:34:43 +03:00
gpu: nvgpu: Update volt pwm source & raw period
- calculate raw period as per pwm source - update pwm source for logic & sram rails. JIRA DNVGPU-123 Change-Id: I50b41d51b6aba760710700522dced7859f815463 Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com> Reviewed-on: http://git-master/r/1227626 (cherry picked from commit 6eb5a235dd7bf9031ef1bcfadd6312a2f8758fd4) Reviewed-on: http://git-master/r/1244663 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
This commit is contained in:
committed by
Deepak Nibade
parent
741d78ec45
commit
af637c81fe
@@ -36,7 +36,12 @@ static int clk_gp106_debugfs_init(struct gk20a *g);
|
||||
#endif
|
||||
|
||||
#define NUM_NAMEMAPS 4
|
||||
#define XTAL4X_KHZ 108000
|
||||
|
||||
static u32 gp106_crystal_clk_hz(struct gk20a *g)
|
||||
{
|
||||
return (XTAL4X_KHZ * 1000);
|
||||
}
|
||||
static int gp106_init_clk_support(struct gk20a *g) {
|
||||
struct clk_gk20a *clk = &g->clk;
|
||||
u32 err = 0;
|
||||
@@ -221,6 +226,7 @@ err_out:
|
||||
|
||||
void gp106_init_clk_ops(struct gpu_ops *gops) {
|
||||
gops->clk.init_clk_support = gp106_init_clk_support;
|
||||
gops->clk.get_crystal_clk_hz = gp106_crystal_clk_hz;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
#include "include/bios.h"
|
||||
#include "volt.h"
|
||||
|
||||
#define RAW_PERIOD 160
|
||||
#define VOLT_DEV_PWM_VOLTAGE_STEPS_INVALID 0
|
||||
#define VOLT_DEV_PWM_VOLTAGE_STEPS_DEFAULT 1
|
||||
|
||||
@@ -257,17 +256,24 @@ static u32 volt_get_voltage_device_table_1x_psv(struct gk20a *g,
|
||||
|
||||
if (ptmp_dev->super.operation_type ==
|
||||
CTRL_VOLT_DEVICE_OPERATION_TYPE_DEFAULT) {
|
||||
ptmp_dev->source = NV_PMU_PMGR_PWM_SOURCE_THERM_VID_PWM_1;
|
||||
if (volt_domain == CTRL_VOLT_DOMAIN_LOGIC)
|
||||
ptmp_dev->source =
|
||||
NV_PMU_PMGR_PWM_SOURCE_THERM_VID_PWM_0;
|
||||
if (volt_domain == CTRL_VOLT_DOMAIN_SRAM)
|
||||
ptmp_dev->source =
|
||||
NV_PMU_PMGR_PWM_SOURCE_THERM_VID_PWM_1;
|
||||
ptmp_dev->raw_period =
|
||||
g->ops.clk.get_crystal_clk_hz(g) / frequency_hz;
|
||||
} else if (ptmp_dev->super.operation_type ==
|
||||
CTRL_VOLT_DEVICE_OPERATION_TYPE_LPWR_STEADY_STATE) {
|
||||
ptmp_dev->source = NV_PMU_PMGR_PWM_SOURCE_RSVD_0;
|
||||
ptmp_dev->raw_period = 0;
|
||||
} else if (ptmp_dev->super.operation_type ==
|
||||
CTRL_VOLT_DEVICE_OPERATION_TYPE_LPWR_SLEEP_STATE) {
|
||||
ptmp_dev->source = NV_PMU_PMGR_PWM_SOURCE_RSVD_1;
|
||||
ptmp_dev->raw_period = 0;
|
||||
}
|
||||
|
||||
ptmp_dev->raw_period = RAW_PERIOD;
|
||||
|
||||
/* Initialize data for parent class. */
|
||||
ptmp_dev->super.super.type = CTRL_VOLT_DEVICE_TYPE_PWM;
|
||||
ptmp_dev->super.volt_domain = volt_domain;
|
||||
|
||||
Reference in New Issue
Block a user