mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 02:22:34 +03:00
gpu: nvgpu: PS35: Clk Prog Boardobj changes
1. Add VBIOS PS3.5 Clk programming table parsing code. 2. Update pmuifclk.h to match R400 pmu ucode pmuifclk.h 3. New clk_prog boardobj types have been added to support PS3.5 and to match the pmu ucode side changes 4. Add PS3.5 related construct and pmudatainit fops 5. PS3.5 clk programming table has secondary VF curve entries. Though these entries are currently marked as invalid for all SKUs, we need to add them to match struct sizes on PMU. 6. The pmuifclk.h nvgpu<->pmu interface changes needed for Turing(PS3.5) are NOT compatible with GV100 branched ucode. The secondary VF curve entries added for PS3.5 increase the entrysize breaking compatibility with GV100. 7. This change is therefore dependant on GV100 PMU ucode changes which increase the entrysize on GV100 pmu side. JIRA NVGPU-1153 Change-Id: I868e503f87731442aae6503872ade4c208831d34 Signed-off-by: tkudav <tkudav@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1842627 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
69b46a6174
commit
f4bd7552b3
@@ -57,7 +57,7 @@ struct clk_progs {
|
||||
struct boardobjgrp_e255 super;
|
||||
u8 slave_entry_count;
|
||||
u8 vf_entry_count;
|
||||
|
||||
u8 vf_sec_entry_count;
|
||||
};
|
||||
|
||||
struct clk_prog {
|
||||
@@ -93,6 +93,42 @@ struct clk_prog_1x_master_table {
|
||||
struct ctrl_clk_clk_prog_1x_master_table_slave_entry *p_slave_entries;
|
||||
};
|
||||
|
||||
struct clk_prog_3x_master {
|
||||
bool b_o_c_o_v_enabled;
|
||||
struct ctrl_clk_clk_prog_1x_master_vf_entry *p_vf_entries;
|
||||
struct ctrl_clk_clk_delta deltas;
|
||||
union ctrl_clk_clk_prog_1x_master_source_data source_data;
|
||||
vf_flatten *vfflatten;
|
||||
vf_lookup *vflookup;
|
||||
get_fpoints *getfpoints;
|
||||
get_slaveclk *getslaveclk;
|
||||
};
|
||||
|
||||
struct clk_prog_3x_master_ratio {
|
||||
struct ctrl_clk_clk_prog_1x_master_ratio_slave_entry *p_slave_entries;
|
||||
};
|
||||
|
||||
struct clk_prog_3x_master_table {
|
||||
struct ctrl_clk_clk_prog_1x_master_table_slave_entry *p_slave_entries;
|
||||
};
|
||||
|
||||
struct clk_prog_35_master {
|
||||
struct clk_prog_1x super;
|
||||
struct clk_prog_3x_master master;
|
||||
struct ctrl_clk_clk_prog_35_master_sec_vf_entry_voltrail
|
||||
*p_voltrail_sec_vf_entries;
|
||||
};
|
||||
|
||||
struct clk_prog_35_master_ratio {
|
||||
struct clk_prog_35_master super;
|
||||
struct clk_prog_3x_master_ratio ratio;
|
||||
};
|
||||
|
||||
struct clk_prog_35_master_table {
|
||||
struct clk_prog_35_master super;
|
||||
struct clk_prog_3x_master_table table;
|
||||
};
|
||||
|
||||
#define CLK_CLK_PROG_GET(pclk, idx) \
|
||||
((struct clk_prog *)BOARDOBJGRP_OBJ_GET_BY_IDX( \
|
||||
&pclk->clk_progobjs.super.super, (u8)(idx)))
|
||||
|
||||
Reference in New Issue
Block a user