From patchwork Wed Nov 15 17:01:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alban Browaeys X-Patchwork-Id: 838256 X-Patchwork-Delegate: wolfram@the-dreams.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-i2c-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="AQA7srjS"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ycVzb0VMPz9s7v for ; Thu, 16 Nov 2017 04:02:19 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933145AbdKORCR (ORCPT ); Wed, 15 Nov 2017 12:02:17 -0500 Received: from mail-wm0-f65.google.com ([74.125.82.65]:39029 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932406AbdKORCR (ORCPT ); Wed, 15 Nov 2017 12:02:17 -0500 Received: by mail-wm0-f65.google.com with SMTP id l8so4313145wmg.4 for ; Wed, 15 Nov 2017 09:02:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=41071BXspVkSpGp+9JLJFuAgp1IuheNgoNUqyGxZKbU=; b=AQA7srjSywxxcSAGZfqkuWIdLHdg8Ak/56q9Jr9MJ8+qri9bM6nFgwq0AsgHLClEW1 m6a1CimS3ofgQO+6s1ZcCHStx96txmqp04I9sIJe1c90WOwPtLdOMHrepidb07GMa4aX BNrSm20jg5nEHjPjfKl0pXuiA+J5adJqtRFcZ5k9ZxjDSqyZxKuh0UUn02xpe6x8FRMu TGu4zWg5bK/Vd4Ql8yeSLgjWwXwywAqjRG6cmimfu8YjFTz1P5of2p4vJqKRiaN1uX1E 9eB++LaTqWEdHgC+pIymcC5BSUR2kOQZBK/5rGcpL0BZHEKekOMlcSSkua9u7bGMEVOi VO2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=41071BXspVkSpGp+9JLJFuAgp1IuheNgoNUqyGxZKbU=; b=AJs3xO0c9glVhH3oZ7uhcvGliY/VTXEnNkxaeBPQmkMTUlbifhCwY0AVotlQTWvp8V XMVeH8WUNjTUsxE6Oc/91NuJxDS751b/s3HFG6B4+BBeOC0en5YAzUjm9xMLhboXJ8nX EtrSZmV6eptkATdeRCGzljKX0o8hyCkst0yR2bE4f7OIzhWEhrwXqz9Svj3wazxgWgWN qQeDfPKbqjmQu5shPM4wT7Z3wQKqAYd9yhST9JlRid5hHgffTix7VQk5oXq2JwfTaSnk jKndcpF5LvAbp7dmcbdQazjJPRZcWlAsF6iCntKmKsNySQ1pUzPNj5WqCqPBdOYHlmEg Lq7Q== X-Gm-Message-State: AJaThX5a2b6w00QRAlBxpwSv4tPk9GJaXI+c+HGuU4075JdfKr+pgcuC Bk6dcV8lIzi1MLfKCRKohDQ= X-Google-Smtp-Source: AGs4zMbQxoJJx3G5eRbf5+TPEVH5qKrYUSKIfN7pcw9c20h3Q3/Kx9iZlvVLqVqpKS4QUKithItz0w== X-Received: by 10.28.51.3 with SMTP id z3mr13470801wmz.158.1510765335898; Wed, 15 Nov 2017 09:02:15 -0800 (PST) Received: from cyclope.prahal.homelinux.net (ARouen-653-1-82-211.w82-126.abo.wanadoo.fr. [82.126.97.211]) by smtp.gmail.com with ESMTPSA id k69sm18227271wmg.45.2017.11.15.09.02.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 15 Nov 2017 09:02:15 -0800 (PST) From: Alban Browaeys To: Jean Delvare Cc: Wolfram Sang , linux-i2c@vger.kernel.org, Alban Browaeys Subject: [PATCH] i2c: i801: Fix SMBus ENXIO on resume from suspend. Date: Wed, 15 Nov 2017 18:01:56 +0100 Message-Id: <20171115170156.21532-1-alban.browaeys@gmail.com> X-Mailer: git-send-email 2.15.0 Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org Disabling I2C_EN on resume as it was restored in suspend when we set pci config to its original value. ENXIO landing in rmi_smb_get_version, i2c-i802 debug pointing at i801_check_post and guesswork from reading probe which has this tweak. i801_smbus 0000:00:1f.3: No response rmi4_smbus 0-002c: failed to get SMBus version number! i801_smbus 0000:00:1f.3: No response rmi4_physical rmi4-00: rmi_driver_reset_handler: Failed to read current IRQ mask. i801_smbus 0000:00:1f.3: No response rmi4_f01 rmi4-00.fn01: Failed to restore normal operation: -6. rmi4_f01 rmi4-00.fn01: Resume failed with code -6. rmi4_physical rmi4-00: Failed to suspend functions: -6 rmi4_smbus 0-002c: Failed to resume device: -6 rmi4_f03 rmi4-00.fn03: rmi_f03_pt_write: Failed to write to F03 TX register (-6). i801_smbus 0000:00:1f.3: No response rmi4_f03 rmi4-00.fn03: rmi_f03_pt_write: Failed to write to F03 TX register (-6). Signed-off-by: Alban Browaeys --- drivers/i2c/busses/i2c-i801.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c index 9e12a53ef7b8..b7b6c8ee2176 100644 --- a/drivers/i2c/busses/i2c-i801.c +++ b/drivers/i2c/busses/i2c-i801.c @@ -1707,9 +1707,14 @@ static int i801_suspend(struct device *dev) static int i801_resume(struct device *dev) { + unsigned char temp; struct pci_dev *pci_dev = to_pci_dev(dev); struct i801_priv *priv = pci_get_drvdata(pci_dev); + pci_read_config_byte(pci_dev, SMBHSTCFG, &temp); + temp &= ~SMBHSTCFG_I2C_EN; /* SMBus timing */ + pci_write_config_byte(pci_dev, SMBHSTCFG, temp); + i801_enable_host_notify(&priv->adapter); return 0;