From: Bard Liao <yung-chuan.liao@linux.intel.com>
To: alsa-devel@alsa-project.org, vkoul@kernel.org
Cc: vinod.koul@linaro.org, linux-kernel@vger.kernel.org,
tiwai@suse.de, broonie@kernel.org, gregkh@linuxfoundation.org,
jank@cadence.com, srinivas.kandagatla@linaro.org,
rander.wang@linux.intel.com, ranjani.sridharan@linux.intel.com,
hui.wang@canonical.com, pierre-louis.bossart@linux.intel.com,
sanyog.r.kale@intel.com, mengdong.lin@intel.com,
bard.liao@intel.com
Subject: [PATCH 4/7] soundwire: bus: use quirk to filter out invalid parity errors
Date: Tue, 18 Aug 2020 22:06:53 +0800 [thread overview]
Message-ID: <20200818140656.29014-5-yung-chuan.liao@linux.intel.com> (raw)
In-Reply-To: <20200818140656.29014-1-yung-chuan.liao@linux.intel.com>
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
If a Slave device reports with a quirk that its initial parity check
may be incorrect, filter it but keep the parity checks active in
steady state.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
---
drivers/soundwire/bus.c | 8 +++++++-
include/linux/soundwire/sdw.h | 4 ++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/soundwire/bus.c b/drivers/soundwire/bus.c
index cddf39e3adfc..869290a8db40 100644
--- a/drivers/soundwire/bus.c
+++ b/drivers/soundwire/bus.c
@@ -1362,6 +1362,8 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
unsigned long port;
bool slave_notify = false;
u8 buf, buf2[2], _buf, _buf2[2];
+ bool parity_check;
+ bool parity_quirk;
sdw_modify_slave_status(slave, SDW_SLAVE_ALERT);
@@ -1394,7 +1396,11 @@ static int sdw_handle_slave_alerts(struct sdw_slave *slave)
* interrupt
*/
if (buf & SDW_SCP_INT1_PARITY) {
- if (slave->prop.scp_int1_mask & SDW_SCP_INT1_PARITY)
+ parity_check = slave->prop.scp_int1_mask & SDW_SCP_INT1_PARITY;
+ parity_quirk = !slave->first_interrupt_done &&
+ (slave->prop.quirks & SDW_SLAVE_QUIRKS_INVALID_INITIAL_PARITY);
+
+ if (parity_check && !parity_quirk)
dev_err(&slave->dev, "Parity error detected\n");
clear |= SDW_SCP_INT1_PARITY;
}
diff --git a/include/linux/soundwire/sdw.h b/include/linux/soundwire/sdw.h
index 3550ab530c43..19bec6e4bbb6 100644
--- a/include/linux/soundwire/sdw.h
+++ b/include/linux/soundwire/sdw.h
@@ -356,6 +356,7 @@ struct sdw_dpn_prop {
* @src_dpn_prop: Source Data Port N properties
* @sink_dpn_prop: Sink Data Port N properties
* @scp_int1_mask: SCP_INT1_MASK desired settings
+ * @quirks: bitmask identifying deltas from the MIPI specification
*/
struct sdw_slave_prop {
u32 mipi_revision;
@@ -378,8 +379,11 @@ struct sdw_slave_prop {
struct sdw_dpn_prop *src_dpn_prop;
struct sdw_dpn_prop *sink_dpn_prop;
u8 scp_int1_mask;
+ u32 quirks;
};
+#define SDW_SLAVE_QUIRKS_INVALID_INITIAL_PARITY BIT(0)
+
/**
* struct sdw_master_prop - Master properties
* @revision: MIPI spec version of the implementation
--
2.17.1
next prev parent reply other threads:[~2020-08-19 2:01 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-18 14:06 [PATCH 0/7] soundwire: filter out invalid PARITY errors Bard Liao
2020-08-18 14:06 ` [PATCH 1/7] soundwire: bus: use property to set interrupt masks Bard Liao
2020-08-28 6:51 ` Vinod Koul
2020-09-08 12:05 ` Jaroslav Kysela
2020-09-08 12:11 ` Mark Brown
2020-09-08 12:28 ` Jaroslav Kysela
2020-09-08 14:33 ` Mark Brown
2020-09-08 14:43 ` Jaroslav Kysela
2020-09-08 14:47 ` Pierre-Louis Bossart
2020-09-08 15:14 ` Mark Brown
2020-09-08 15:33 ` Pierre-Louis Bossart
2020-08-18 14:06 ` [PATCH 2/7] soundwire: bus: filter-out unwanted interrupt reports Bard Liao
2020-08-18 14:06 ` [PATCH 3/7] soundwire: slave: add first_interrupt_done status Bard Liao
2020-08-18 14:06 ` Bard Liao [this message]
2020-08-18 14:06 ` [PATCH 5/7] ASoC: codecs: realtek-soundwire: ignore initial PARITY errors Bard Liao
2020-08-19 8:39 ` Mark Brown
2020-08-18 14:06 ` [PATCH 6/7] soundwire: bus: export broadcast read/write capability for tests Bard Liao
2020-08-18 14:06 ` [PATCH 7/7] soundwire: cadence: add parity error injection through debugfs Bard Liao
2020-09-08 12:07 ` [PATCH 0/7] soundwire: filter out invalid PARITY errors Jaroslav Kysela
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=20200818140656.29014-5-yung-chuan.liao@linux.intel.com \
--to=yung-chuan.liao@linux.intel.com \
--cc=alsa-devel@alsa-project.org \
--cc=bard.liao@intel.com \
--cc=broonie@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=hui.wang@canonical.com \
--cc=jank@cadence.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mengdong.lin@intel.com \
--cc=pierre-louis.bossart@linux.intel.com \
--cc=rander.wang@linux.intel.com \
--cc=ranjani.sridharan@linux.intel.com \
--cc=sanyog.r.kale@intel.com \
--cc=srinivas.kandagatla@linaro.org \
--cc=tiwai@suse.de \
--cc=vinod.koul@linaro.org \
--cc=vkoul@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
all inboxes | Powered by JetHome®