public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Darren Hart <dvhart@infradead.org>,
	Lee Jones <lee.jones@linaro.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	"H . Peter Anvin" <hpa@zytor.com>,
	x86@kernel.org, Zha Qipeng <qipeng.zha@intel.com>,
	"David E . Box" <david.e.box@linux.intel.com>,
	Guenter Roeck <linux@roeck-us.net>,
	Heikki Krogerus <heikki.krogerus@linux.intel.com>,
	Wim Van Sebroeck <wim@linux-watchdog.org>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	platform-driver-x86@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v5 02/18] platform/x86: intel_scu_ipc: Log more information if SCU IPC command fails
Date: Tue, 11 Feb 2020 16:25:47 +0300	[thread overview]
Message-ID: <20200211132603.73509-3-mika.westerberg@linux.intel.com> (raw)
In-Reply-To: <20200211132603.73509-1-mika.westerberg@linux.intel.com>

Currently we only log an error if the command times out which makes it
hard to figure out the failing command. This changes the driver to log
command and subcommand with the error code which should make debugging
easier. This also allows us to simplify the callers as they don't need
to log these errors themselves.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
---
 drivers/platform/x86/intel_scu_ipc.c | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/drivers/platform/x86/intel_scu_ipc.c b/drivers/platform/x86/intel_scu_ipc.c
index 19c2cc41fb05..1fc52b63d984 100644
--- a/drivers/platform/x86/intel_scu_ipc.c
+++ b/drivers/platform/x86/intel_scu_ipc.c
@@ -147,7 +147,6 @@ static inline int busy_loop(struct intel_scu_ipc_dev *scu)
 		usleep_range(50, 100);
 	} while (time_before(jiffies, end));
 
-	dev_err(&scu->dev, "IPC timed out");
 	return -ETIMEDOUT;
 }
 
@@ -156,10 +155,8 @@ static inline int ipc_wait_for_interrupt(struct intel_scu_ipc_dev *scu)
 {
 	int status;
 
-	if (!wait_for_completion_timeout(&scu->cmd_complete, IPC_TIMEOUT)) {
-		dev_err(&scu->dev, "IPC timed out\n");
+	if (!wait_for_completion_timeout(&scu->cmd_complete, IPC_TIMEOUT))
 		return -ETIMEDOUT;
-	}
 
 	status = ipc_read_status(scu);
 	if (status & IPC_STATUS_ERR)
@@ -331,6 +328,7 @@ EXPORT_SYMBOL(intel_scu_ipc_update_register);
 int intel_scu_ipc_simple_command(int cmd, int sub)
 {
 	struct intel_scu_ipc_dev *scu;
+	u32 cmdval;
 	int err;
 
 	mutex_lock(&ipclock);
@@ -339,8 +337,12 @@ int intel_scu_ipc_simple_command(int cmd, int sub)
 		return -ENODEV;
 	}
 	scu = ipcdev;
-	ipc_command(scu, sub << 12 | cmd);
+	cmdval = sub << 12 | cmd;
+	ipc_command(scu, cmdval);
 	err = intel_scu_ipc_check_status(scu);
+	if (err)
+		dev_err(&scu->dev, "IPC command %#x failed with %d\n", cmdval,
+			err);
 	mutex_unlock(&ipclock);
 	return err;
 }
@@ -362,6 +364,7 @@ int intel_scu_ipc_command(int cmd, int sub, u32 *in, int inlen,
 			  u32 *out, int outlen)
 {
 	struct intel_scu_ipc_dev *scu;
+	u32 cmdval;
 	int i, err;
 
 	mutex_lock(&ipclock);
@@ -374,10 +377,13 @@ int intel_scu_ipc_command(int cmd, int sub, u32 *in, int inlen,
 	for (i = 0; i < inlen; i++)
 		ipc_data_writel(scu, *in++, 4 * i);
 
-	ipc_command(scu, (inlen << 16) | (sub << 12) | cmd);
+	cmdval = (inlen << 16) | (sub << 12) | cmd;
+	ipc_command(scu, cmdval);
 	err = intel_scu_ipc_check_status(scu);
-
-	if (!err) {
+	if (err) {
+		dev_err(&scu->dev, "IPC command %#x failed with %d\n", cmdval,
+			err);
+	} else {
 		for (i = 0; i < outlen; i++)
 			*out++ = ipc_data_readl(scu, 4 * i);
 	}
-- 
2.25.0


  parent reply	other threads:[~2020-02-11 13:26 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-11 13:25 [PATCH v5 00/18] platform/x86: Rework intel_scu_ipc and intel_pmc_ipc drivers Mika Westerberg
2020-02-11 13:25 ` [PATCH v5 01/18] platform/x86: intel_scu_ipc: Split out SCU IPC functionality from the SCU driver Mika Westerberg
2020-02-11 15:39   ` Andy Shevchenko
2020-02-12 11:34     ` Mika Westerberg
2020-02-11 13:25 ` Mika Westerberg [this message]
2020-02-11 15:41   ` [PATCH v5 02/18] platform/x86: intel_scu_ipc: Log more information if SCU IPC command fails Andy Shevchenko
2020-02-12 11:36     ` Mika Westerberg
2020-02-12 11:54       ` Andy Shevchenko
2020-02-12 11:57         ` Mika Westerberg
2020-02-11 13:25 ` [PATCH v5 03/18] platform/x86: intel_scu_ipc: Introduce new SCU IPC API Mika Westerberg
2020-02-11 15:48   ` Andy Shevchenko
2020-02-12 11:43     ` Mika Westerberg
2020-02-12 11:55       ` Andy Shevchenko
2020-02-12 12:45         ` Mika Westerberg
2020-02-11 13:25 ` [PATCH v5 04/18] platform/x86: intel_mid_powerbtn: Convert to use " Mika Westerberg
2020-02-11 13:25 ` [PATCH v5 05/18] watchdog: intel-mid_wdt: " Mika Westerberg
2020-02-11 13:25 ` [PATCH v5 06/18] platform/x86: intel_scu_ipcutil: " Mika Westerberg
2020-02-11 13:25 ` [PATCH v5 07/18] platform/x86: intel_scu_ipc: Add managed function to register SCU IPC Mika Westerberg
2020-02-11 15:51   ` Andy Shevchenko
2020-02-12 11:44     ` Mika Westerberg
2020-02-11 13:25 ` [PATCH v5 08/18] platform/x86: intel_pmc_ipc: Start using " Mika Westerberg
2020-02-11 13:25 ` [PATCH v5 09/18] mfd: intel_soc_pmic: Add SCU IPC member to struct intel_soc_pmic Mika Westerberg
2020-02-11 15:57   ` Andy Shevchenko
2020-02-12 11:44     ` Mika Westerberg
2020-02-11 13:25 ` [PATCH v5 10/18] mfd: intel_soc_pmic_bxtwc: Convert to use new SCU IPC API Mika Westerberg
2020-02-11 13:25 ` [PATCH v5 11/18] mfd: intel_soc_pmic_mrfld: " Mika Westerberg
2020-02-11 13:25 ` [PATCH v5 12/18] platform/x86: intel_telemetry: " Mika Westerberg
2020-02-11 13:25 ` [PATCH v5 13/18] platform/x86: intel_pmc_ipc: Drop intel_pmc_ipc_command() Mika Westerberg
2020-02-11 13:25 ` [PATCH v5 14/18] x86/platform/intel-mid: Add empty stubs for intel_scu_devices_[create|destroy]() Mika Westerberg
2020-02-11 13:26 ` [PATCH v5 15/18] platform/x86: intel_pmc_ipc: Move PCI IDs to intel_scu_pcidrv.c Mika Westerberg
2020-02-11 13:26 ` [PATCH v5 16/18] platform/x86: intel_telemetry: Add telemetry_get_pltdata() Mika Westerberg
2020-02-11 13:26 ` [PATCH v5 17/18] platform/x86: intel_pmc_ipc: Convert to MFD Mika Westerberg
2020-02-11 16:09   ` Andy Shevchenko
2020-02-11 13:26 ` [PATCH v5 18/18] MAINTAINERS: Update entry for Intel Broxton PMC driver Mika Westerberg
2020-02-11 16:01   ` Andy Shevchenko
2020-02-12 11:48     ` Mika Westerberg
2020-02-11 16:10 ` [PATCH v5 00/18] platform/x86: Rework intel_scu_ipc and intel_pmc_ipc drivers Andy Shevchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200211132603.73509-3-mika.westerberg@linux.intel.com \
    --to=mika.westerberg@linux.intel.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=david.e.box@linux.intel.com \
    --cc=dvhart@infradead.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=mingo@redhat.com \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=qipeng.zha@intel.com \
    --cc=tglx@linutronix.de \
    --cc=wim@linux-watchdog.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox