summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/volt/volt_dev.c
diff options
context:
space:
mode:
authorSrirangan <smadhavan@nvidia.com>2018-09-04 07:16:40 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2018-09-05 23:41:06 -0400
commit3b413d58fa349eca1da9577359546c39effa2c8c (patch)
tree2bb45c9253fb6a5a18afa6d1c12ffeca79effd8e /drivers/gpu/nvgpu/volt/volt_dev.c
parent7405cd9a6dcd22d04f48be07be4839c735994ada (diff)
gpu: nvgpu: volt: Fix MISRA 15.6 violations
MISRA Rule-15.6 requires that all if-else blocks be enclosed in braces, including single statement blocks. Fix errors due to single statement if blocks without braces by introducing the braces. JIRA NVGPU-671 Change-Id: I938f49b2d1d042dc96573e1a579fe82909a679ab Signed-off-by: Srirangan <smadhavan@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1812421 Reviewed-by: svc-misra-checker <svc-misra-checker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/volt/volt_dev.c')
-rw-r--r--drivers/gpu/nvgpu/volt/volt_dev.c61
1 files changed, 40 insertions, 21 deletions
diff --git a/drivers/gpu/nvgpu/volt/volt_dev.c b/drivers/gpu/nvgpu/volt/volt_dev.c
index d900b37b..728b0eaf 100644
--- a/drivers/gpu/nvgpu/volt/volt_dev.c
+++ b/drivers/gpu/nvgpu/volt/volt_dev.c
@@ -46,8 +46,9 @@ static u32 volt_device_pmu_data_init_super(struct gk20a *g,
46 struct nv_pmu_volt_volt_device_boardobj_set *pset; 46 struct nv_pmu_volt_volt_device_boardobj_set *pset;
47 47
48 status = boardobj_pmudatainit_super(g, pboard_obj, ppmudata); 48 status = boardobj_pmudatainit_super(g, pboard_obj, ppmudata);
49 if (status) 49 if (status) {
50 return status; 50 return status;
51 }
51 52
52 pdev = (struct voltage_device *)pboard_obj; 53 pdev = (struct voltage_device *)pboard_obj;
53 pset = (struct nv_pmu_volt_volt_device_boardobj_set *)ppmudata; 54 pset = (struct nv_pmu_volt_volt_device_boardobj_set *)ppmudata;
@@ -68,8 +69,9 @@ static u32 volt_device_pmu_data_init_pwm(struct gk20a *g,
68 struct nv_pmu_volt_volt_device_pwm_boardobj_set *pset; 69 struct nv_pmu_volt_volt_device_pwm_boardobj_set *pset;
69 70
70 status = volt_device_pmu_data_init_super(g, pboard_obj, ppmudata); 71 status = volt_device_pmu_data_init_super(g, pboard_obj, ppmudata);
71 if (status) 72 if (status) {
72 return status; 73 return status;
74 }
73 75
74 pdev = (struct voltage_device_pwm *)pboard_obj; 76 pdev = (struct voltage_device_pwm *)pboard_obj;
75 pset = (struct nv_pmu_volt_volt_device_pwm_boardobj_set *)ppmudata; 77 pset = (struct nv_pmu_volt_volt_device_pwm_boardobj_set *)ppmudata;
@@ -90,8 +92,9 @@ static u32 construct_volt_device(struct gk20a *g,
90 u32 status = 0; 92 u32 status = 0;
91 93
92 status = boardobj_construct_super(g, ppboardobj, size, pargs); 94 status = boardobj_construct_super(g, ppboardobj, size, pargs);
93 if (status) 95 if (status) {
94 return status; 96 return status;
97 }
95 98
96 pvolt_dev = (struct voltage_device *)*ppboardobj; 99 pvolt_dev = (struct voltage_device *)*ppboardobj;
97 100
@@ -121,8 +124,9 @@ static u32 construct_pwm_volt_device(struct gk20a *g,
121 u32 status = 0; 124 u32 status = 0;
122 125
123 status = construct_volt_device(g, ppboardobj, size, pargs); 126 status = construct_volt_device(g, ppboardobj, size, pargs);
124 if (status) 127 if (status) {
125 return status; 128 return status;
129 }
126 130
127 pboard_obj = (*ppboardobj); 131 pboard_obj = (*ppboardobj);
128 pdev = (struct voltage_device_pwm *)*ppboardobj; 132 pdev = (struct voltage_device_pwm *)*ppboardobj;
@@ -148,8 +152,9 @@ static struct voltage_device_entry *volt_dev_construct_dev_entry_pwm(
148 (struct voltage_device_pwm_entry *)pargs; 152 (struct voltage_device_pwm_entry *)pargs;
149 153
150 pentry = nvgpu_kzalloc(g, sizeof(struct voltage_device_pwm_entry)); 154 pentry = nvgpu_kzalloc(g, sizeof(struct voltage_device_pwm_entry));
151 if (pentry == NULL) 155 if (pentry == NULL) {
152 return NULL; 156 return NULL;
157 }
153 158
154 memset(pentry, 0, sizeof(struct voltage_device_pwm_entry)); 159 memset(pentry, 0, sizeof(struct voltage_device_pwm_entry));
155 160
@@ -213,8 +218,9 @@ static u32 volt_get_voltage_device_table_1x_psv(struct gk20a *g,
213 struct voltage_device_pwm_entry pwm_entry = { { 0 } }; 218 struct voltage_device_pwm_entry pwm_entry = { { 0 } };
214 219
215 ptmp_dev = nvgpu_kzalloc(g, sizeof(struct voltage_device_pwm)); 220 ptmp_dev = nvgpu_kzalloc(g, sizeof(struct voltage_device_pwm));
216 if (ptmp_dev == NULL) 221 if (ptmp_dev == NULL) {
217 return -ENOMEM; 222 return -ENOMEM;
223 }
218 224
219 frequency_hz = (u32)BIOS_GET_FIELD(p_bios_entry->param0, 225 frequency_hz = (u32)BIOS_GET_FIELD(p_bios_entry->param0,
220 NV_VBIOS_VDT_1X_ENTRY_PARAM0_PSV_INPUT_FREQUENCY); 226 NV_VBIOS_VDT_1X_ENTRY_PARAM0_PSV_INPUT_FREQUENCY);
@@ -247,8 +253,9 @@ static u32 volt_get_voltage_device_table_1x_psv(struct gk20a *g,
247 253
248 steps = (u8)BIOS_GET_FIELD(p_bios_entry->param3, 254 steps = (u8)BIOS_GET_FIELD(p_bios_entry->param3,
249 NV_VBIOS_VDT_1X_ENTRY_PARAM3_PSV_VOLTAGE_STEPS); 255 NV_VBIOS_VDT_1X_ENTRY_PARAM3_PSV_VOLTAGE_STEPS);
250 if (steps == VOLT_DEV_PWM_VOLTAGE_STEPS_INVALID) 256 if (steps == VOLT_DEV_PWM_VOLTAGE_STEPS_INVALID) {
251 steps = VOLT_DEV_PWM_VOLTAGE_STEPS_DEFAULT; 257 steps = VOLT_DEV_PWM_VOLTAGE_STEPS_DEFAULT;
258 }
252 259
253 ptmp_dev->voltage_offset_scale_uv = 260 ptmp_dev->voltage_offset_scale_uv =
254 BIOS_GET_FIELD(p_bios_entry->param4, 261 BIOS_GET_FIELD(p_bios_entry->param4,
@@ -265,12 +272,14 @@ static u32 volt_get_voltage_device_table_1x_psv(struct gk20a *g,
265 272
266 if (ptmp_dev->super.operation_type == 273 if (ptmp_dev->super.operation_type ==
267 CTRL_VOLT_DEVICE_OPERATION_TYPE_DEFAULT) { 274 CTRL_VOLT_DEVICE_OPERATION_TYPE_DEFAULT) {
268 if (volt_domain == CTRL_VOLT_DOMAIN_LOGIC) 275 if (volt_domain == CTRL_VOLT_DOMAIN_LOGIC) {
269 ptmp_dev->source = 276 ptmp_dev->source =
270 NV_PMU_PMGR_PWM_SOURCE_THERM_VID_PWM_0; 277 NV_PMU_PMGR_PWM_SOURCE_THERM_VID_PWM_0;
271 if (volt_domain == CTRL_VOLT_DOMAIN_SRAM) 278 }
279 if (volt_domain == CTRL_VOLT_DOMAIN_SRAM) {
272 ptmp_dev->source = 280 ptmp_dev->source =
273 NV_PMU_PMGR_PWM_SOURCE_THERM_VID_PWM_1; 281 NV_PMU_PMGR_PWM_SOURCE_THERM_VID_PWM_1;
282 }
274 ptmp_dev->raw_period = 283 ptmp_dev->raw_period =
275 g->ops.clk.get_crystal_clk_hz(g) / frequency_hz; 284 g->ops.clk.get_crystal_clk_hz(g) / frequency_hz;
276 } else if (ptmp_dev->super.operation_type == 285 } else if (ptmp_dev->super.operation_type ==
@@ -319,11 +328,12 @@ static u32 volt_get_voltage_device_table_1x_psv(struct gk20a *g,
319 /* Skip creating entry for invalid voltage. */ 328 /* Skip creating entry for invalid voltage. */
320 if ((voltage_uv >= pvolt_dev_pwm->super.voltage_min_uv) && 329 if ((voltage_uv >= pvolt_dev_pwm->super.voltage_min_uv) &&
321 (voltage_uv <= pvolt_dev_pwm->super.voltage_max_uv)) { 330 (voltage_uv <= pvolt_dev_pwm->super.voltage_max_uv)) {
322 if (pvolt_dev_pwm->voltage_offset_scale_uv < 0) 331 if (pvolt_dev_pwm->voltage_offset_scale_uv < 0) {
323 pwm_entry.duty_cycle = 332 pwm_entry.duty_cycle =
324 pvolt_dev_pwm->raw_period - duty_cycle; 333 pvolt_dev_pwm->raw_period - duty_cycle;
325 else 334 } else {
326 pwm_entry.duty_cycle = duty_cycle; 335 pwm_entry.duty_cycle = duty_cycle;
336 }
327 337
328 /* Check if there is room left in the voltage table. */ 338 /* Check if there is room left in the voltage table. */
329 if (entry_cnt == VOLTAGE_TABLE_MAX_ENTRIES) { 339 if (entry_cnt == VOLTAGE_TABLE_MAX_ENTRIES) {
@@ -349,14 +359,16 @@ static u32 volt_get_voltage_device_table_1x_psv(struct gk20a *g,
349 duty_cycle = duty_cycle + (u32)steps; 359 duty_cycle = duty_cycle + (u32)steps;
350 360
351 /* Cap duty cycle to PWM period. */ 361 /* Cap duty cycle to PWM period. */
352 if (duty_cycle > pvolt_dev_pwm->raw_period) 362 if (duty_cycle > pvolt_dev_pwm->raw_period) {
353 duty_cycle = pvolt_dev_pwm->raw_period; 363 duty_cycle = pvolt_dev_pwm->raw_period;
364 }
354 365
355 } while (duty_cycle < pvolt_dev_pwm->raw_period); 366 } while (duty_cycle < pvolt_dev_pwm->raw_period);
356 367
357done: 368done:
358 if (pvolt_dev != NULL) 369 if (pvolt_dev != NULL) {
359 pvolt_dev->num_entries = entry_cnt; 370 pvolt_dev->num_entries = entry_cnt;
371 }
360 372
361 nvgpu_kfree(g, ptmp_dev); 373 nvgpu_kfree(g, ptmp_dev);
362 return status; 374 return status;
@@ -390,10 +402,11 @@ static u32 volt_get_volt_devices_table(struct gk20a *g,
390 memcpy(&entry, entry_offset, 402 memcpy(&entry, entry_offset,
391 sizeof(struct vbios_voltage_device_table_1x_entry)); 403 sizeof(struct vbios_voltage_device_table_1x_entry));
392 404
393 if (entry.type == NV_VBIOS_VOLTAGE_DEVICE_1X_ENTRY_TYPE_PSV) 405 if (entry.type == NV_VBIOS_VOLTAGE_DEVICE_1X_ENTRY_TYPE_PSV) {
394 status = volt_get_voltage_device_table_1x_psv(g, 406 status = volt_get_voltage_device_table_1x_psv(g,
395 &entry, pvolt_device_metadata, 407 &entry, pvolt_device_metadata,
396 entry_idx); 408 entry_idx);
409 }
397 } 410 }
398 411
399done: 412done:
@@ -412,8 +425,9 @@ static u32 _volt_device_devgrp_pmudata_instget(struct gk20a *g,
412 425
413 /*check whether pmuboardobjgrp has a valid boardobj in index*/ 426 /*check whether pmuboardobjgrp has a valid boardobj in index*/
414 if (((u32)BIT(idx) & 427 if (((u32)BIT(idx) &
415 pgrp_set->hdr.data.super.obj_mask.super.data[0]) == 0) 428 pgrp_set->hdr.data.super.obj_mask.super.data[0]) == 0) {
416 return -EINVAL; 429 return -EINVAL;
430 }
417 431
418 *ppboardobjpmudata = (struct nv_pmu_boardobj *) 432 *ppboardobjpmudata = (struct nv_pmu_boardobj *)
419 &pgrp_set->objects[idx].data.board_obj; 433 &pgrp_set->objects[idx].data.board_obj;
@@ -431,8 +445,9 @@ static u32 _volt_device_devgrp_pmustatus_instget(struct gk20a *g,
431 445
432 /*check whether pmuboardobjgrp has a valid boardobj in index*/ 446 /*check whether pmuboardobjgrp has a valid boardobj in index*/
433 if (((u32)BIT(idx) & 447 if (((u32)BIT(idx) &
434 pgrp_get_status->hdr.data.super.obj_mask.super.data[0]) == 0) 448 pgrp_get_status->hdr.data.super.obj_mask.super.data[0]) == 0) {
435 return -EINVAL; 449 return -EINVAL;
450 }
436 451
437 *ppboardobjpmustatus = (struct nv_pmu_boardobj_query *) 452 *ppboardobjpmustatus = (struct nv_pmu_boardobj_query *)
438 &pgrp_get_status->objects[idx].data.board_obj; 453 &pgrp_get_status->objects[idx].data.board_obj;
@@ -459,11 +474,12 @@ static u32 volt_device_state_init(struct gk20a *g,
459 NULL); 474 NULL);
460 475
461 /* Initialize VOLT_DEVICE step size. */ 476 /* Initialize VOLT_DEVICE step size. */
462 if (pvolt_dev->num_entries <= VOLTAGE_TABLE_MAX_ENTRIES_ONE) 477 if (pvolt_dev->num_entries <= VOLTAGE_TABLE_MAX_ENTRIES_ONE) {
463 pvolt_dev->volt_step_uv = NV_PMU_VOLT_VALUE_0V_IN_UV; 478 pvolt_dev->volt_step_uv = NV_PMU_VOLT_VALUE_0V_IN_UV;
464 else 479 } else {
465 pvolt_dev->volt_step_uv = (pvolt_dev->pentry[1]->voltage_uv - 480 pvolt_dev->volt_step_uv = (pvolt_dev->pentry[1]->voltage_uv -
466 pvolt_dev->pentry[0]->voltage_uv); 481 pvolt_dev->pentry[0]->voltage_uv);
482 }
467 483
468 /* Build VOLT_RAIL SW state from VOLT_DEVICE SW state. */ 484 /* Build VOLT_RAIL SW state from VOLT_DEVICE SW state. */
469 /* If VOLT_RAIL isn't supported, exit. */ 485 /* If VOLT_RAIL isn't supported, exit. */
@@ -495,8 +511,9 @@ static u32 volt_device_state_init(struct gk20a *g,
495 } 511 }
496 512
497done: 513done:
498 if (status) 514 if (status) {
499 nvgpu_err(g, "Error in building rail sw state device sw"); 515 nvgpu_err(g, "Error in building rail sw state device sw");
516 }
500 517
501 return status; 518 return status;
502} 519}
@@ -510,8 +527,9 @@ u32 volt_dev_pmu_setup(struct gk20a *g)
510 527
511 pboardobjgrp = &g->perf_pmu.volt.volt_dev_metadata.volt_devices.super; 528 pboardobjgrp = &g->perf_pmu.volt.volt_dev_metadata.volt_devices.super;
512 529
513 if (!pboardobjgrp->bconstructed) 530 if (!pboardobjgrp->bconstructed) {
514 return -EINVAL; 531 return -EINVAL;
532 }
515 533
516 status = pboardobjgrp->pmuinithandle(g, pboardobjgrp); 534 status = pboardobjgrp->pmuinithandle(g, pboardobjgrp);
517 535
@@ -545,8 +563,9 @@ u32 volt_dev_sw_setup(struct gk20a *g)
545 /* Obtain Voltage Rail Table from VBIOS */ 563 /* Obtain Voltage Rail Table from VBIOS */
546 status = volt_get_volt_devices_table(g, &g->perf_pmu.volt. 564 status = volt_get_volt_devices_table(g, &g->perf_pmu.volt.
547 volt_dev_metadata); 565 volt_dev_metadata);
548 if (status) 566 if (status) {
549 goto done; 567 goto done;
568 }
550 569
551 /* Populate data for the VOLT_RAIL PMU interface */ 570 /* Populate data for the VOLT_RAIL PMU interface */
552 BOARDOBJGRP_PMU_CONSTRUCT(pboardobjgrp, VOLT, VOLT_DEVICE); 571 BOARDOBJGRP_PMU_CONSTRUCT(pboardobjgrp, VOLT, VOLT_DEVICE);