summaryrefslogtreecommitdiffstats
path: root/drivers/i2c
diff options
context:
space:
mode:
authorBenjamin Tissoires <benjamin.tissoires@redhat.com>2016-10-13 08:10:39 -0400
committerWolfram Sang <wsa@the-dreams.de>2016-11-24 10:22:05 -0500
commitc912a25a5a12a497bb47068e3d42d7c9b67bde12 (patch)
treea28b67e0d009e0e1b11c2bfadb8d452e6b47053f /drivers/i2c
parentf91fba627caa20189185248b771625cf5994813e (diff)
i2c: i801: remove SMBNTFDDAT reads as they always seem to return 0
On the platform tested, reading SMBNTFDDAT always returns 0 (using 1 read of a word or 2 of 2 bytes). Given that we are not sure why and that we don't need to rely on the data parameter in the current users of Host Notify, remove this part of the code. If someone wants to re-enable it, just revert this commit and data should be available. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Diffstat (limited to 'drivers/i2c')
-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));