From 72b6b7b9f2a73fe0a299e290475fa8929a20d2c0 Mon Sep 17 00:00:00 2001 From: Simone Date: Tue, 28 Jul 2026 09:42:27 +0200 Subject: [PATCH] i2c-imc-skylake: warn when SMBCNTL cannot be read The TSOD-polling check silently skipped a channel whose SMBCNTL read failed, so on a system without ECAM the driver bound with the check silently not performed. Binding is still allowed - the register is best-effort on top of the allow_unsafe_access gate, like the existing warning when no iMC channel function is found - but say so in the log instead of pretending the check ran. --- i2c-imc-skylake.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/i2c-imc-skylake.c b/i2c-imc-skylake.c index 62ed943..0c5018e 100644 --- a/i2c-imc-skylake.c +++ b/i2c-imc-skylake.c @@ -597,8 +597,12 @@ static int imc_check_firmware_polling(struct pci_dev *pdev) for (i = 0; i < ARRAY_SIZE(imc_chans); i++) { u32 cntl; - if (pci_read_config_dword(imc, IMC_SMBCNTL(i), &cntl)) + if (pci_read_config_dword(imc, IMC_SMBCNTL(i), &cntl)) { + dev_warn(&pdev->dev, + "%s ch%d SMBCNTL unreadable; cannot verify that TSOD polling is disabled\n", + pci_name(imc), i); continue; + } if (cntl & SMBCNTL_TSOD_POLL_EN) { dev_err(&pdev->dev,