On Mon, Feb 24, 2020 at 10:27:30AM -0800, Guenter Roeck wrote: > On Mon, Feb 24, 2020 at 01:27:40PM +0200, Mika Westerberg wrote: > > On Mon, Feb 24, 2020 at 12:51:25PM +0200, Mika Westerberg wrote: > > > > I'm wondering if > > > > > > > > pci_dev_is_present(...); > > > > > > > > returns false here. > > > > > > Well that might also be the case since lspci shows this: > > > > > > 00:1f.0 ISA bridge: Intel Corporation Z390 Chipset LPC/eSPI Controller (rev 10) > > > 00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10) > > > 00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10) > > > > > > PMC is 1f.2 and not present here. However, it may be that the PMC is > > > still there it just does not "enumerate" because its devid/vendorid are > > > set to 0xffff. Similar hiding was done for the P2SB bridge. > > > > Actually I think this is the case here. > > > > I don't know the iTCO_wdt well enough to say if it could live without > > the ICH_RES_IO_SMI. It looks like this register is used to disable SMI > > generation but not sure how well it works if it is left to BIOS to > > configure. I suppose these systems should use WDAT instead. > > > > In practice the region is only used if > if (turn_SMI_watchdog_clear_off >= p->iTCO_version) { > where turn_SMI_watchdog_clear_off is 1 by default. It is also > passed to vendor specific code, but that is only relevant for > really old systems. In short, it isn't really needed for any > recent-generation systems, and could be made optional with > a few lines of code in iTCO_wdt.c. Indeed that seems to be the case. Let me come up with a series that makes the SMI optional and fixes the problematic code in the i801 driver by not passing the SMI resource if the PMC device is not present.