Message ID | 2f09691a-c0f5-4aa1-8338-1066c0a6c63d@gmail.com |
---|---|
State | New |
Headers | show |
Series | i2c: i801: Series with minor improvements | expand |
On Mon, 19 Dec 2022 19:14:43 +0100, Heiner Kallweit wrote: > 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> > --- > v2: > - add a commit message part as comment to the code > - make changed code cleaner > --- > drivers/i2c/busses/i2c-i801.c | 14 +++++++++----- > 1 file changed, 9 insertions(+), 5 deletions(-) > (...) Reviewed-by: Jean Delvare <jdelvare@suse.de>
On Mon, Dec 19, 2022 at 07:14:43PM +0100, Heiner Kallweit wrote: > 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> Applied to for-next, thanks!
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c index da773c563..45c2ebe40 100644 --- a/drivers/i2c/busses/i2c-i801.c +++ b/drivers/i2c/busses/i2c-i801.c @@ -1705,11 +1705,6 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id) outb_p(inb_p(SMBAUXCTL(priv)) & ~(SMBAUXCTL_CRC | SMBAUXCTL_E32B), SMBAUXCTL(priv)); - /* Remember original Interrupt and Host Notify settings */ - priv->original_hstcnt = inb_p(SMBHSTCNT(priv)) & ~SMBHSTCNT_KILL; - if (priv->features & FEATURE_HOST_NOTIFY) - priv->original_slvcmd = inb_p(SMBSLVCMD(priv)); - /* Default timeout in interrupt mode: 200 ms */ priv->adapter.timeout = HZ / 5; @@ -1739,6 +1734,15 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id) dev_info(&dev->dev, "SMBus using %s\n", priv->features & FEATURE_IRQ ? "PCI interrupt" : "polling"); + /* Host notification uses an interrupt */ + if (!(priv->features & FEATURE_IRQ)) + priv->features &= ~FEATURE_HOST_NOTIFY; + + /* Remember original Interrupt and Host Notify settings */ + priv->original_hstcnt = inb_p(SMBHSTCNT(priv)) & ~SMBHSTCNT_KILL; + if (priv->features & FEATURE_HOST_NOTIFY) + priv->original_slvcmd = inb_p(SMBSLVCMD(priv)); + i801_add_tco(priv); snprintf(priv->adapter.name, sizeof(priv->adapter.name),
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> --- v2: - add a commit message part as comment to the code - make changed code cleaner --- drivers/i2c/busses/i2c-i801.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-)