From: Vinod Koul <vinod.koul@intel.com>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: ALSA <alsa-devel@alsa-project.org>,
Charles Keepax <ckeepax@opensource.cirrus.com>,
Sudheer Papothi <spapothi@codeaurora.org>,
Takashi <tiwai@suse.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
plai@codeaurora.org, LKML <linux-kernel@vger.kernel.org>,
patches.audio@intel.com, Mark <broonie@kernel.org>,
srinivas.kandagatla@linaro.org,
Sagar Dharia <sdharia@codeaurora.org>,
alan@linux.intel.com
Subject: Re: [PATCH v4 09/15] soundwire: Add slave status handling
Date: Wed, 6 Dec 2017 15:14:48 +0530 [thread overview]
Message-ID: <20171206094448.GP32417@localhost> (raw)
In-Reply-To: <382cc7a0-a478-fb30-9ea4-22f828cd9093@linux.intel.com>
On Sun, Dec 03, 2017 at 09:52:48PM -0600, Pierre-Louis Bossart wrote:
> On 12/3/17 9:21 PM, Vinod Koul wrote:
> >On Sun, Dec 03, 2017 at 09:11:39PM -0600, Pierre-Louis Bossart wrote:
> >>On 12/3/17 11:11 AM, Vinod Koul wrote:
> >>>On Fri, Dec 01, 2017 at 05:52:03PM -0600, Pierre-Louis Bossart wrote:
> >>>
> >>>>>+ status = sdw_read(slave, SDW_DP0_INT);
> >>>>>+ if (status < 0) {
> >>>>>+ dev_err(slave->bus->dev,
> >>>>>+ "SDW_DP0_INT read failed:%d", status);
> >>>>>+ return status;
> >>>>>+ }
> >>>>>+
> >>>>>+ count++;
> >>>>>+
> >>>>>+ /* we can get alerts while processing so keep retrying */
> >>>>
> >>>>This is not incorrect, but this goes beyond what the spec requires.
> >>>>
> >>>>The additional read is to make sure some interrupts are not lost due to a
> >>>>known race condition. It would be enough to mask the status read the second
> >>>>time to only check if the interrupts sources which were cleared are still
> >>>>signaling something.
> >>>>
> >>>>With the code as it is, you may catch *new* interrupt sources, which could
> >>>>impact the arbitration/priority/policy in handling interrupts. It's not
> >>>>necessarily bad, but you'd need to document whether you want to deal with
> >>>>the race condition described in the MIPI spec or try to be smarter.
> >>>
> >>>This was based on your last comment, lets discuss more offline on this to
> >>>see what else is required here.
> >>
> >>I am fine if you leave the code as is for now, it's not bad but can be
> >>optimized.
> >
> >Not bad is not good here :)
> >
> >Okay I still havent grabbed my coffee, so help me out here. I am not sure I
> >understand here, can you point me to the part of spec handling you were
> >referring and what should be *ideally* done
>
> You first read the status, then clear the interrupts then re-read the
> status. I'd be good enough in the second read to mask with the settings of
> the first read. This is intended to detect alert sources that fired between
> the last successful read and the write to clear interrupts (see Figure 92 in
> the 1.1 spec)
>
> e.g.
>
> do {
> status1= sdw_read()
> deal with interrupts
> status2 = sdw_read()
> status2 &= status1; /* filter initial sources */
Sounds better, updated now, thanks
--
~Vinod
WARNING: multiple messages have this Message-ID (diff)
From: Vinod Koul <vinod.koul@intel.com>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
LKML <linux-kernel@vger.kernel.org>,
ALSA <alsa-devel@alsa-project.org>, Mark <broonie@kernel.org>,
Takashi <tiwai@suse.de>,
patches.audio@intel.com, alan@linux.intel.com,
Charles Keepax <ckeepax@opensource.cirrus.com>,
Sagar Dharia <sdharia@codeaurora.org>,
srinivas.kandagatla@linaro.org, plai@codeaurora.org,
Sudheer Papothi <spapothi@codeaurora.org>
Subject: Re: [alsa-devel] [PATCH v4 09/15] soundwire: Add slave status handling
Date: Wed, 6 Dec 2017 15:14:48 +0530 [thread overview]
Message-ID: <20171206094448.GP32417@localhost> (raw)
In-Reply-To: <382cc7a0-a478-fb30-9ea4-22f828cd9093@linux.intel.com>
On Sun, Dec 03, 2017 at 09:52:48PM -0600, Pierre-Louis Bossart wrote:
> On 12/3/17 9:21 PM, Vinod Koul wrote:
> >On Sun, Dec 03, 2017 at 09:11:39PM -0600, Pierre-Louis Bossart wrote:
> >>On 12/3/17 11:11 AM, Vinod Koul wrote:
> >>>On Fri, Dec 01, 2017 at 05:52:03PM -0600, Pierre-Louis Bossart wrote:
> >>>
> >>>>>+ status = sdw_read(slave, SDW_DP0_INT);
> >>>>>+ if (status < 0) {
> >>>>>+ dev_err(slave->bus->dev,
> >>>>>+ "SDW_DP0_INT read failed:%d", status);
> >>>>>+ return status;
> >>>>>+ }
> >>>>>+
> >>>>>+ count++;
> >>>>>+
> >>>>>+ /* we can get alerts while processing so keep retrying */
> >>>>
> >>>>This is not incorrect, but this goes beyond what the spec requires.
> >>>>
> >>>>The additional read is to make sure some interrupts are not lost due to a
> >>>>known race condition. It would be enough to mask the status read the second
> >>>>time to only check if the interrupts sources which were cleared are still
> >>>>signaling something.
> >>>>
> >>>>With the code as it is, you may catch *new* interrupt sources, which could
> >>>>impact the arbitration/priority/policy in handling interrupts. It's not
> >>>>necessarily bad, but you'd need to document whether you want to deal with
> >>>>the race condition described in the MIPI spec or try to be smarter.
> >>>
> >>>This was based on your last comment, lets discuss more offline on this to
> >>>see what else is required here.
> >>
> >>I am fine if you leave the code as is for now, it's not bad but can be
> >>optimized.
> >
> >Not bad is not good here :)
> >
> >Okay I still havent grabbed my coffee, so help me out here. I am not sure I
> >understand here, can you point me to the part of spec handling you were
> >referring and what should be *ideally* done
>
> You first read the status, then clear the interrupts then re-read the
> status. I'd be good enough in the second read to mask with the settings of
> the first read. This is intended to detect alert sources that fired between
> the last successful read and the write to clear interrupts (see Figure 92 in
> the 1.1 spec)
>
> e.g.
>
> do {
> status1= sdw_read()
> deal with interrupts
> status2 = sdw_read()
> status2 &= status1; /* filter initial sources */
Sounds better, updated now, thanks
--
~Vinod
next prev parent reply other threads:[~2017-12-06 9:41 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-01 9:56 [PATCH v4 00/15] soundwire: Add a new SoundWire subsystem Vinod Koul
2017-12-01 9:56 ` [PATCH v4 01/15] Documentation: Add SoundWire summary Vinod Koul
2017-12-01 9:56 ` [PATCH v4 02/15] soundwire: Add SoundWire bus type Vinod Koul
2017-12-01 9:56 ` Vinod Koul
2017-12-01 9:56 ` [PATCH v4 03/15] soundwire: Add Master registration Vinod Koul
2017-12-01 22:10 ` [alsa-devel] " Pierre-Louis Bossart
2017-12-03 16:41 ` Vinod Koul
2017-12-04 2:44 ` Pierre-Louis Bossart
2017-12-04 2:59 ` Vinod Koul
2017-12-01 9:56 ` [PATCH v4 04/15] soundwire: Add MIPI DisCo property helpers Vinod Koul
2017-12-01 9:56 ` Vinod Koul
2017-12-01 22:49 ` [alsa-devel] " Pierre-Louis Bossart
2017-12-03 16:52 ` Vinod Koul
2017-12-03 16:52 ` [alsa-devel] " Vinod Koul
2017-12-04 2:50 ` Pierre-Louis Bossart
2017-12-04 2:50 ` [alsa-devel] " Pierre-Louis Bossart
2017-12-01 9:56 ` [PATCH v4 05/15] soundwire: Add SoundWire MIPI defined registers Vinod Koul
2017-12-01 9:56 ` Vinod Koul
2017-12-01 9:56 ` [PATCH v4 06/15] soundwire: Add IO transfer Vinod Koul
2017-12-01 23:27 ` [alsa-devel] " Pierre-Louis Bossart
2017-12-03 17:04 ` Vinod Koul
2017-12-03 17:04 ` [alsa-devel] " Vinod Koul
2017-12-04 3:01 ` Pierre-Louis Bossart
2017-12-05 6:31 ` Vinod Koul
2017-12-05 13:43 ` Pierre-Louis Bossart
2017-12-05 14:48 ` Pierre-Louis Bossart
2017-12-05 14:48 ` [alsa-devel] " Pierre-Louis Bossart
2017-12-06 5:58 ` Vinod Koul
2017-12-06 13:32 ` Pierre-Louis Bossart
2017-12-06 13:32 ` [alsa-devel] " Pierre-Louis Bossart
2017-12-06 14:44 ` Vinod Koul
2017-12-01 9:56 ` [PATCH v4 07/15] regmap: Add SoundWire bus support Vinod Koul
2017-12-01 9:56 ` Vinod Koul
2017-12-01 9:56 ` [PATCH v4 08/15] soundwire: Add Slave status handling helpers Vinod Koul
2017-12-01 23:36 ` [alsa-devel] " Pierre-Louis Bossart
2017-12-03 17:08 ` Vinod Koul
2017-12-04 3:07 ` Pierre-Louis Bossart
2017-12-04 3:07 ` [alsa-devel] " Pierre-Louis Bossart
2017-12-04 3:13 ` Vinod Koul
2017-12-04 3:13 ` [alsa-devel] " Vinod Koul
2017-12-01 9:56 ` [PATCH v4 09/15] soundwire: Add slave status handling Vinod Koul
2017-12-01 23:52 ` [alsa-devel] " Pierre-Louis Bossart
2017-12-03 17:11 ` Vinod Koul
2017-12-03 17:11 ` [alsa-devel] " Vinod Koul
2017-12-04 3:11 ` Pierre-Louis Bossart
2017-12-04 3:21 ` Vinod Koul
2017-12-04 3:21 ` [alsa-devel] " Vinod Koul
2017-12-04 3:52 ` Pierre-Louis Bossart
2017-12-04 3:52 ` [alsa-devel] " Pierre-Louis Bossart
2017-12-06 9:44 ` Vinod Koul [this message]
2017-12-06 9:44 ` Vinod Koul
2017-12-01 9:56 ` [PATCH v4 10/15] soundwire: Add sysfs for SoundWire DisCo properties Vinod Koul
2017-12-01 9:56 ` [PATCH v4 11/15] soundwire: cdns: Add cadence library Vinod Koul
2017-12-01 9:56 ` Vinod Koul
2017-12-01 9:56 ` [PATCH v4 12/15] soundwire: cdns: Add sdw_master_ops and IO transfer support Vinod Koul
2017-12-02 0:02 ` Pierre-Louis Bossart
2017-12-02 0:02 ` [alsa-devel] " Pierre-Louis Bossart
2017-12-03 17:10 ` Vinod Koul
2017-12-03 17:10 ` [alsa-devel] " Vinod Koul
2017-12-01 9:56 ` [PATCH v4 13/15] soundwire: intel: Add Intel Master driver Vinod Koul
2017-12-01 9:56 ` [PATCH v4 14/15] soundwire: intel: Add Intel init module Vinod Koul
2017-12-01 9:56 ` [PATCH v4 15/15] MAINTAINERS: Add SoundWire entry Vinod Koul
2017-12-02 0:24 ` [PATCH v4 00/15] soundwire: Add a new SoundWire subsystem Pierre-Louis Bossart
2017-12-02 0:24 ` [alsa-devel] " Pierre-Louis Bossart
2017-12-03 17:12 ` Vinod Koul
2017-12-03 17:12 ` [alsa-devel] " Vinod Koul
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=20171206094448.GP32417@localhost \
--to=vinod.koul@intel.com \
--cc=alan@linux.intel.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=ckeepax@opensource.cirrus.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=patches.audio@intel.com \
--cc=pierre-louis.bossart@linux.intel.com \
--cc=plai@codeaurora.org \
--cc=sdharia@codeaurora.org \
--cc=spapothi@codeaurora.org \
--cc=srinivas.kandagatla@linaro.org \
--cc=tiwai@suse.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.