<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi Dan,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
</div>
<span>Thank you for reporting this bug to me,</span>
<div><span>I will make a  fix patch as soon as possible, when patch ready after I send copies to you review, </span></div>
<div><span>thank you.<br>
</span><span></span>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Best Regards,</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:12pt; color:rgb(0,0,0)">
Kevin</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> Dan Carpenter <dan.carpenter@oracle.com><br>
<b>Sent:</b> Monday, August 19, 2019 9:03 PM<br>
<b>To:</b> Wang, Kevin(Yang) <Kevin1.Wang@amd.com><br>
<b>Cc:</b> amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org><br>
<b>Subject:</b> [bug report] drm/amd/powerplay: implement smc firmware v2.1 for smu11</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt">
<div class="PlainText">Hello Kevin Wang,<br>
<br>
The patch b55c83a7438d: "drm/amd/powerplay: implement smc firmware<br>
v2.1 for smu11" from Jun 21, 2019, leads to the following static<br>
checker warning:<br>
<br>
        drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:390 smu_v11_0_setup_pptable()<br>
        warn: passing casted pointer '&size' to 'smu_get_atom_data_table()' 32 vs 16.<br>
<br>
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c<br>
   357  static int smu_v11_0_setup_pptable(struct smu_context *smu)<br>
   358  {<br>
   359          struct amdgpu_device *adev = smu->adev;<br>
   360          const struct smc_firmware_header_v1_0 *hdr;<br>
   361          int ret, index;<br>
   362          uint32_t size;<br>
                ^^^^^^^^^^^^^<br>
<br>
   363          uint8_t frev, crev;<br>
   364          void *table;<br>
   365          uint16_t version_major, version_minor;<br>
   366  <br>
   367          hdr = (const struct smc_firmware_header_v1_0 *) adev->pm.fw->data;<br>
   368          version_major = le16_to_cpu(hdr->header.header_version_major);<br>
   369          version_minor = le16_to_cpu(hdr->header.header_version_minor);<br>
   370          if (version_major == 2 && smu->smu_table.boot_values.pp_table_id > 0) {<br>
   371                  switch (version_minor) {<br>
   372                  case 0:<br>
   373                          ret = smu_v11_0_set_pptable_v2_0(smu, &table, &size);<br>
   374                          break;<br>
   375                  case 1:<br>
   376                          ret = smu_v11_0_set_pptable_v2_1(smu, &table, &size,<br>
   377                                                           smu->smu_table.boot_values.pp_table_id);<br>
   378                          break;<br>
   379                  default:<br>
   380                          ret = -EINVAL;<br>
   381                          break;<br>
   382                  }<br>
   383                  if (ret)<br>
   384                          return ret;<br>
   385  <br>
   386          } else {<br>
   387                  index = get_index_into_master_table(atom_master_list_of_data_tables_v2_1,<br>
   388                                                      powerplayinfo);<br>
   389  <br>
   390                  ret = smu_get_atom_data_table(smu, index, (uint16_t *)&size, &frev, &crev,<br>
                                                                  ^^^^^^^^^^^^^^^^^<br>
This only initializes the highest 16 bits.<br>
<br>
   391                                                (uint8_t **)&table);<br>
   392                  if (ret)<br>
   393                          return ret;<br>
   394          }<br>
   395  <br>
   396          if (!smu->smu_table.power_play_table)<br>
   397                  smu->smu_table.power_play_table = table;<br>
   398          if (!smu->smu_table.power_play_table_size)<br>
   399                  smu->smu_table.power_play_table_size = size;<br>
   400  <br>
   401          return 0;<br>
<br>
regards,<br>
dan carpenter<br>
</div>
</span></font></div>
</div>
</body>
</html>