Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

i2c: i801: make FEATURE_HOST_NOTIFY dependent on FEATURE_IRQ

Host notification uses an interrupt, therefore it makes sense only if
interrupts are enabled. Make this dependency explicit by removing
FEATURE_HOST_NOTIFY if FEATURE_IRQ isn't set.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Wolfram Sang <wsa@kernel.org>

authored by

Heiner Kallweit and committed by
Wolfram Sang
f0c8f0ee c467d919

+9 -5
+9 -5
drivers/i2c/busses/i2c-i801.c
··· 1705 1705 outb_p(inb_p(SMBAUXCTL(priv)) & 1706 1706 ~(SMBAUXCTL_CRC | SMBAUXCTL_E32B), SMBAUXCTL(priv)); 1707 1707 1708 - /* Remember original Interrupt and Host Notify settings */ 1709 - priv->original_hstcnt = inb_p(SMBHSTCNT(priv)) & ~SMBHSTCNT_KILL; 1710 - if (priv->features & FEATURE_HOST_NOTIFY) 1711 - priv->original_slvcmd = inb_p(SMBSLVCMD(priv)); 1712 - 1713 1708 /* Default timeout in interrupt mode: 200 ms */ 1714 1709 priv->adapter.timeout = HZ / 5; 1715 1710 ··· 1733 1738 } 1734 1739 dev_info(&dev->dev, "SMBus using %s\n", 1735 1740 priv->features & FEATURE_IRQ ? "PCI interrupt" : "polling"); 1741 + 1742 + /* Host notification uses an interrupt */ 1743 + if (!(priv->features & FEATURE_IRQ)) 1744 + priv->features &= ~FEATURE_HOST_NOTIFY; 1745 + 1746 + /* Remember original Interrupt and Host Notify settings */ 1747 + priv->original_hstcnt = inb_p(SMBHSTCNT(priv)) & ~SMBHSTCNT_KILL; 1748 + if (priv->features & FEATURE_HOST_NOTIFY) 1749 + priv->original_slvcmd = inb_p(SMBSLVCMD(priv)); 1736 1750 1737 1751 i801_add_tco(priv); 1738 1752