summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/i2c/busses/i2c-i801.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
index 1d042af4374d..c0c0cac9950c 100644
--- a/drivers/i2c/busses/i2c-i801.c
+++ b/drivers/i2c/busses/i2c-i801.c
@@ -118,7 +118,6 @@
118#define SMBSLVSTS(p) (16 + (p)->smba) /* ICH3 and later */ 118#define SMBSLVSTS(p) (16 + (p)->smba) /* ICH3 and later */
119#define SMBSLVCMD(p) (17 + (p)->smba) /* ICH3 and later */ 119#define SMBSLVCMD(p) (17 + (p)->smba) /* ICH3 and later */
120#define SMBNTFDADD(p) (20 + (p)->smba) /* ICH3 and later */ 120#define SMBNTFDADD(p) (20 + (p)->smba) /* ICH3 and later */
121#define SMBNTFDDAT(p) (22 + (p)->smba) /* ICH3 and later */
122 121
123/* PCI Address Constants */ 122/* PCI Address Constants */
124#define SMBBAR 4 123#define SMBBAR 4
@@ -581,12 +580,15 @@ static void i801_isr_byte_done(struct i801_priv *priv)
581static irqreturn_t i801_host_notify_isr(struct i801_priv *priv) 580static irqreturn_t i801_host_notify_isr(struct i801_priv *priv)
582{ 581{
583 unsigned short addr; 582 unsigned short addr;
584 unsigned int data;
585 583
586 addr = inb_p(SMBNTFDADD(priv)) >> 1; 584 addr = inb_p(SMBNTFDADD(priv)) >> 1;
587 data = inw_p(SMBNTFDDAT(priv));
588 585
589 i2c_handle_smbus_host_notify(priv->host_notify, addr, data); 586 /*
587 * With the tested platforms, reading SMBNTFDDAT (22 + (p)->smba)
588 * always returns 0 and is safe to read.
589 * We just use 0 given we have no use of the data right now.
590 */
591 i2c_handle_smbus_host_notify(priv->host_notify, addr, 0);
590 592
591 /* clear Host Notify bit and return */ 593 /* clear Host Notify bit and return */
592 outb_p(SMBSLVSTS_HST_NTFY_STS, SMBSLVSTS(priv)); 594 outb_p(SMBSLVSTS_HST_NTFY_STS, SMBSLVSTS(priv));