All of lore.kernel.org
 help / color / mirror / Atom feed
* [bug report] drm/amd/powerplay: implement smc firmware v2.1 for smu11
@ 2019-08-19 13:03 Dan Carpenter
  2019-08-19 15:31 ` Wang, Kevin(Yang)
  0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2019-08-19 13:03 UTC (permalink / raw)
  To: kevin1.wang-5C7GfCeVMHo; +Cc: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

Hello Kevin Wang,

The patch b55c83a7438d: "drm/amd/powerplay: implement smc firmware
v2.1 for smu11" from Jun 21, 2019, leads to the following static
checker warning:

	drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:390 smu_v11_0_setup_pptable()
	warn: passing casted pointer '&size' to 'smu_get_atom_data_table()' 32 vs 16.

drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c
   357  static int smu_v11_0_setup_pptable(struct smu_context *smu)
   358  {
   359          struct amdgpu_device *adev = smu->adev;
   360          const struct smc_firmware_header_v1_0 *hdr;
   361          int ret, index;
   362          uint32_t size;
                ^^^^^^^^^^^^^

   363          uint8_t frev, crev;
   364          void *table;
   365          uint16_t version_major, version_minor;
   366  
   367          hdr = (const struct smc_firmware_header_v1_0 *) adev->pm.fw->data;
   368          version_major = le16_to_cpu(hdr->header.header_version_major);
   369          version_minor = le16_to_cpu(hdr->header.header_version_minor);
   370          if (version_major == 2 && smu->smu_table.boot_values.pp_table_id > 0) {
   371                  switch (version_minor) {
   372                  case 0:
   373                          ret = smu_v11_0_set_pptable_v2_0(smu, &table, &size);
   374                          break;
   375                  case 1:
   376                          ret = smu_v11_0_set_pptable_v2_1(smu, &table, &size,
   377                                                           smu->smu_table.boot_values.pp_table_id);
   378                          break;
   379                  default:
   380                          ret = -EINVAL;
   381                          break;
   382                  }
   383                  if (ret)
   384                          return ret;
   385  
   386          } else {
   387                  index = get_index_into_master_table(atom_master_list_of_data_tables_v2_1,
   388                                                      powerplayinfo);
   389  
   390                  ret = smu_get_atom_data_table(smu, index, (uint16_t *)&size, &frev, &crev,
                                                                  ^^^^^^^^^^^^^^^^^
This only initializes the highest 16 bits.

   391                                                (uint8_t **)&table);
   392                  if (ret)
   393                          return ret;
   394          }
   395  
   396          if (!smu->smu_table.power_play_table)
   397                  smu->smu_table.power_play_table = table;
   398          if (!smu->smu_table.power_play_table_size)
   399                  smu->smu_table.power_play_table_size = size;
   400  
   401          return 0;

regards,
dan carpenter
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [bug report] drm/amd/powerplay: implement smc firmware v2.1 for smu11
  2019-08-19 13:03 [bug report] drm/amd/powerplay: implement smc firmware v2.1 for smu11 Dan Carpenter
@ 2019-08-19 15:31 ` Wang, Kevin(Yang)
  0 siblings, 0 replies; 2+ messages in thread
From: Wang, Kevin(Yang) @ 2019-08-19 15:31 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org


[-- Attachment #1.1: Type: text/plain, Size: 3424 bytes --]

Hi Dan,

Thank you for reporting this bug to me,
I will make a  fix patch as soon as possible, when patch ready after I send copies to you review,
thank you.

Best Regards,
Kevin
________________________________
From: Dan Carpenter <dan.carpenter-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
Sent: Monday, August 19, 2019 9:03 PM
To: Wang, Kevin(Yang) <Kevin1.Wang-5C7GfCeVMHo@public.gmane.org>
Cc: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org <amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org>
Subject: [bug report] drm/amd/powerplay: implement smc firmware v2.1 for smu11

Hello Kevin Wang,

The patch b55c83a7438d: "drm/amd/powerplay: implement smc firmware
v2.1 for smu11" from Jun 21, 2019, leads to the following static
checker warning:

        drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:390 smu_v11_0_setup_pptable()
        warn: passing casted pointer '&size' to 'smu_get_atom_data_table()' 32 vs 16.

drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c
   357  static int smu_v11_0_setup_pptable(struct smu_context *smu)
   358  {
   359          struct amdgpu_device *adev = smu->adev;
   360          const struct smc_firmware_header_v1_0 *hdr;
   361          int ret, index;
   362          uint32_t size;
                ^^^^^^^^^^^^^

   363          uint8_t frev, crev;
   364          void *table;
   365          uint16_t version_major, version_minor;
   366
   367          hdr = (const struct smc_firmware_header_v1_0 *) adev->pm.fw->data;
   368          version_major = le16_to_cpu(hdr->header.header_version_major);
   369          version_minor = le16_to_cpu(hdr->header.header_version_minor);
   370          if (version_major == 2 && smu->smu_table.boot_values.pp_table_id > 0) {
   371                  switch (version_minor) {
   372                  case 0:
   373                          ret = smu_v11_0_set_pptable_v2_0(smu, &table, &size);
   374                          break;
   375                  case 1:
   376                          ret = smu_v11_0_set_pptable_v2_1(smu, &table, &size,
   377                                                           smu->smu_table.boot_values.pp_table_id);
   378                          break;
   379                  default:
   380                          ret = -EINVAL;
   381                          break;
   382                  }
   383                  if (ret)
   384                          return ret;
   385
   386          } else {
   387                  index = get_index_into_master_table(atom_master_list_of_data_tables_v2_1,
   388                                                      powerplayinfo);
   389
   390                  ret = smu_get_atom_data_table(smu, index, (uint16_t *)&size, &frev, &crev,
                                                                  ^^^^^^^^^^^^^^^^^
This only initializes the highest 16 bits.

   391                                                (uint8_t **)&table);
   392                  if (ret)
   393                          return ret;
   394          }
   395
   396          if (!smu->smu_table.power_play_table)
   397                  smu->smu_table.power_play_table = table;
   398          if (!smu->smu_table.power_play_table_size)
   399                  smu->smu_table.power_play_table_size = size;
   400
   401          return 0;

regards,
dan carpenter

[-- Attachment #1.2: Type: text/html, Size: 9505 bytes --]

[-- Attachment #2: Type: text/plain, Size: 153 bytes --]

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-08-19 15:31 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-19 13:03 [bug report] drm/amd/powerplay: implement smc firmware v2.1 for smu11 Dan Carpenter
2019-08-19 15:31 ` Wang, Kevin(Yang)

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.