mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 09:12:24 +03:00
gpu: nvgpu: update tpc-pg support
- Add tpc count variable in the platform struct to store the number of tpcs present in the chip. This count is needed before GPU boots to provide support for static TPC-PG feature. - Remove valid_tpc_pg_mask and valid_gpc_fbp_pg_mask variable from gk20a struct as it is already taken care in platform struct. JIRA NVGPU-8210 Change-Id: Ic04af4b7c24f5e790c52708c117e45a3bb0d1810 Signed-off-by: Divya <dsinghatwari@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2725960 (cherry picked from commit e9cfae46eb7788e6d12ccd9354ecc46753aba5ce) Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2728941 Reviewed-by: svcacv <svcacv@nvidia.com> Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com> Reviewed-by: Mahantesh Kumbar <mkumbar@nvidia.com> GVS: Gerrit_Virtual_Submit
This commit is contained in:
@@ -787,15 +787,6 @@ struct gk20a {
|
||||
bool can_tpc_pg;
|
||||
bool can_fbp_pg;
|
||||
bool can_gpc_pg;
|
||||
|
||||
/*
|
||||
* Valid config array for tpc pg mask
|
||||
* and gpc/fbp mask. These valid values
|
||||
* are chip specific and calculated based
|
||||
* on available number of GPC, FBP and TPC
|
||||
*/
|
||||
u32 valid_tpc_pg_mask[MAX_PG_TPC_CONFIGS];
|
||||
u32 valid_gpc_fbp_pg_mask[MAX_PG_GPC_FBP_CONFIGS];
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_NVGPU_DGPU
|
||||
|
||||
@@ -182,7 +182,6 @@ static void nvgpu_init_timeslice(struct gk20a *g)
|
||||
static void nvgpu_init_pm_vars(struct gk20a *g)
|
||||
{
|
||||
struct gk20a_platform *platform = dev_get_drvdata(dev_from_gk20a(g));
|
||||
u32 i = 0;
|
||||
|
||||
/*
|
||||
* Set up initial power settings. For non-slicon platforms, disable
|
||||
@@ -235,12 +234,6 @@ static void nvgpu_init_pm_vars(struct gk20a *g)
|
||||
g->can_tpc_pg = platform->can_tpc_pg;
|
||||
g->can_gpc_pg = platform->can_gpc_pg;
|
||||
g->can_fbp_pg = platform->can_fbp_pg;
|
||||
|
||||
for (i = 0; i < MAX_PG_TPC_CONFIGS; i++)
|
||||
g->valid_tpc_pg_mask[i] = platform->valid_tpc_pg_mask[i];
|
||||
|
||||
for (i = 0; i < MAX_PG_GPC_FBP_CONFIGS; i++)
|
||||
g->valid_gpc_fbp_pg_mask[i] = platform->valid_gpc_fbp_pg_mask[i];
|
||||
#endif
|
||||
g->ldiv_slowdown_factor = platform->ldiv_slowdown_factor_init;
|
||||
/* if default delay is not set, set default delay to 500msec */
|
||||
|
||||
@@ -126,6 +126,9 @@ struct gk20a_platform {
|
||||
|
||||
/* Valid GPC-PG and FBP-PG mask */
|
||||
u32 valid_gpc_fbp_pg_mask[MAX_PG_GPC_FBP_CONFIGS];
|
||||
|
||||
/* available TPC count in a chip */
|
||||
u32 tpc_count;
|
||||
#endif
|
||||
/* Delay before rail gated */
|
||||
int railgate_delay_init;
|
||||
|
||||
@@ -1123,7 +1123,7 @@ static ssize_t tpc_pg_mask_store(struct device *dev,
|
||||
!= 0) {
|
||||
nvgpu_err(g, "golden image size already initialized");
|
||||
nvgpu_mutex_release(&g->static_pg_lock);
|
||||
return -ENODEV;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (platform->set_tpc_pg_mask != NULL) {
|
||||
|
||||
Reference in New Issue
Block a user