tree:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 5fcb9628fd1227a5f11d87171cb1b8b5c414d9d9
commit: bcdc7c05bd2dd8fa8afbd725110d5ec3075d4b42 [717/2089] drm/amd/powerplay: enable
thermal throttling logging support V2
config: x86_64-randconfig-s022-20200617 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-rc1-6-g78f577f8-dirty
git checkout bcdc7c05bd2dd8fa8afbd725110d5ec3075d4b42
# save the attached .config to linux build tree
make W=1 C=1 ARCH=x86_64 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:177:31: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:185:25: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:185:25: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:185:25: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:210:17: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:314:28: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:315:17: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:332:36: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:333:25: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:335:21: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:336:53: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:337:33: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:360:25: sparse: sparse: cast to
restricted __le16
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:361:25: sparse: sparse: cast to
restricted __le16
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:587:45: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:601:46: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:615:43: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:629:43: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:643:43: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:660:51: sparse: sparse: cast to
restricted __le32
drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:1076:28: sparse: sparse: cast to
restricted __le32
> drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:1586:41:
sparse: sparse: incompatible types in conditional expression (different base types):
> drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:1586:41: sparse: void
> drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c:1586:41: sparse: int
vim +1586 drivers/gpu/drm/amd/amdgpu/../powerplay/smu_v11_0.c
1522
1523 static int smu_v11_0_irq_process(struct amdgpu_device *adev,
1524 struct amdgpu_irq_src *source,
1525 struct amdgpu_iv_entry *entry)
1526 {
1527 struct smu_context *smu = &adev->smu;
1528 uint32_t client_id = entry->client_id;
1529 uint32_t src_id = entry->src_id;
1530 /*
1531 * ctxid is used to distinguish different
1532 * events for SMCToHost interrupt.
1533 */
1534 uint32_t ctxid = entry->src_data[0];
1535 uint32_t data;
1536 /*
1537 * if the throttling continues, the logging will be performed every
1538 * minute to avoid log flooding.
1539 */
1540 static DEFINE_RATELIMIT_STATE(ratelimit_state, 60 * HZ, 1);
1541
1542 if (client_id == SOC15_IH_CLIENTID_THM) {
1543 switch (src_id) {
1544 case THM_11_0__SRCID__THM_DIG_THERM_L2H:
1545 dev_emerg(adev->dev, "ERROR: GPU over temperature range(SW CTF)
detected!\n");
1546 /*
1547 * SW CTF just occurred.
1548 * Try to do a graceful shutdown to prevent further damage.
1549 */
1550 dev_emerg(adev->dev, "ERROR: System is going to shutdown due to GPU SW
CTF!\n");
1551 orderly_poweroff(true);
1552 break;
1553 case THM_11_0__SRCID__THM_DIG_THERM_H2L:
1554 dev_emerg(adev->dev, "ERROR: GPU under temperature range
detected\n");
1555 break;
1556 default:
1557 dev_emerg(adev->dev, "ERROR: GPU under temperature range unknown src id
(%d)\n",
1558 src_id);
1559 break;
1560 }
1561 } else if (client_id == SOC15_IH_CLIENTID_ROM_SMUIO) {
1562 dev_emerg(adev->dev, "ERROR: GPU HW Critical Temperature Fault(aka CTF)
detected!\n");
1563 /*
1564 * HW CTF just occurred. Shutdown to prevent further damage.
1565 */
1566 dev_emerg(adev->dev, "ERROR: System is going to shutdown due to GPU HW
CTF!\n");
1567 orderly_poweroff(true);
1568 } else if (client_id == SOC15_IH_CLIENTID_MP1) {
1569 if (src_id == 0xfe) {
1570 /* ACK SMUToHost interrupt */
1571 data = RREG32_SOC15(MP1, 0, mmMP1_SMN_IH_SW_INT_CTRL);
1572 data = REG_SET_FIELD(data, MP1_SMN_IH_SW_INT_CTRL, INT_ACK, 1);
1573 WREG32_SOC15(MP1, 0, mmMP1_SMN_IH_SW_INT_CTRL, data);
1574
1575 switch (ctxid) {
1576 case 0x3:
1577 dev_dbg(adev->dev, "Switched to AC mode!\n");
1578 smu_v11_0_ack_ac_dc_interrupt(&adev->smu);
1579 break;
1580 case 0x4:
1581 dev_dbg(adev->dev, "Switched to DC mode!\n");
1582 smu_v11_0_ack_ac_dc_interrupt(&adev->smu);
1583 break;
1584 case 0x7:
1585 if (__ratelimit(&ratelimit_state))
1586 smu_log_thermal_throttling(smu);
1587
1588 break;
1589 }
1590 }
1591 }
1592
1593 return 0;
1594 }
1595
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org