From: Vinod Koul <vkoul@kernel.org>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: alsa-devel@alsa-project.org, tiwai@suse.de,
gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org,
Ranjani Sridharan <ranjani.sridharan@linux.intel.com>,
broonie@kernel.org, srinivas.kandagatla@linaro.org,
jank@cadence.com, slawomir.blauciak@intel.com,
Sanyog Kale <sanyog.r.kale@intel.com>,
Bard liao <yung-chuan.liao@linux.intel.com>,
Rander Wang <rander.wang@linux.intel.com>
Subject: Re: [alsa-devel] [PATCH v2 2/5] soundwire: cadence_master: add hw_reset capability in debugfs
Date: Tue, 22 Oct 2019 10:23:24 +0530 [thread overview]
Message-ID: <20191022045324.GI2654@vkoul-mobl> (raw)
In-Reply-To: <96f5b446-ae02-afd6-9e5c-12e3507567f3@linux.intel.com>
On 21-10-19, 05:20, Pierre-Louis Bossart wrote:
> On 10/20/19 11:04 PM, Vinod Koul wrote:
> > On 16-09-19, 14:09, Pierre-Louis Bossart wrote:
> > > Provide debugfs capability to kick link and devices into hard-reset
> > > (as defined by MIPI). This capability is really useful when some
> > > devices are no longer responsive and/or to check the software handling
> > > of resynchronization.
> > >
> > > Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
> > > ---
> > > drivers/soundwire/cadence_master.c | 20 ++++++++++++++++++++
> > > 1 file changed, 20 insertions(+)
> > >
> > > diff --git a/drivers/soundwire/cadence_master.c b/drivers/soundwire/cadence_master.c
> > > index e3d06330d125..5f900cf2acb9 100644
> > > --- a/drivers/soundwire/cadence_master.c
> > > +++ b/drivers/soundwire/cadence_master.c
> > > @@ -340,6 +340,23 @@ static int cdns_reg_show(struct seq_file *s, void *data)
> > > }
> > > DEFINE_SHOW_ATTRIBUTE(cdns_reg);
> > > +static int cdns_hw_reset(void *data, u64 value)
> > > +{
> > > + struct sdw_cdns *cdns = data;
> > > + int ret;
> > > +
> > > + if (value != 1)
> > > + return -EINVAL;
> > > +
> > > + ret = sdw_cdns_exit_reset(cdns);
> >
> > So we are performing reset of the device behind the kernel, so I think
> > it makes sense to mark the kernel as tainted.
>
> This is a bit ironic. This reset is the only way to prove that the
> enumeration is done right and that all the subsystem fully recovers, and yet
> we'd mark the kernel as 'untrustworthy' and all bug reports would be
> ignored.
Nope you dont expect this would be done on a production system and for
you own testing you can choose not to ignore the reports!
> I don't mind doing this but we'd have to agree on a code. The only one I see
> relevant is "taint requested by userspace application", which is not exactly
> super useful.
But it does tell you that userspace did something so watch out!
> > > + dev_dbg(cdns->dev, "link hw_reset done: %d\n", ret);
> > > +
> > > + return ret;
> >
> > We may want to get rid of the debug and do:
> > return sdw_cdns_exit_reset();
>
> this debug line is useful, it marks the start of the reset sequence and
> that's valuable information. Remove it and you've lost the ability to
> analyze the dmesg logs. It's even more useful if we mark the kernel as
> tainted as you suggested above.
ok
>
> >
> > > +}
> > > +
> > > +DEFINE_DEBUGFS_ATTRIBUTE(cdns_hw_reset_fops, NULL, cdns_hw_reset, "%llu\n");
> > > +
> > > /**
> > > * sdw_cdns_debugfs_init() - Cadence debugfs init
> > > * @cdns: Cadence instance
> > > @@ -348,6 +365,9 @@ DEFINE_SHOW_ATTRIBUTE(cdns_reg);
> > > void sdw_cdns_debugfs_init(struct sdw_cdns *cdns, struct dentry *root)
> > > {
> > > debugfs_create_file("cdns-registers", 0400, root, cdns, &cdns_reg_fops);
> > > +
> > > + debugfs_create_file("cdns-hw-reset", 0200, root, cdns,
> > > + &cdns_hw_reset_fops);
> > > }
> > > EXPORT_SYMBOL_GPL(sdw_cdns_debugfs_init);
> > > --
> > > 2.20.1
> >
--
~Vinod
next prev parent reply other threads:[~2019-10-22 4:53 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-16 19:09 [PATCH v2 0/5] soundwire: intel/cadence: better initialization Pierre-Louis Bossart
2019-09-16 19:09 ` [PATCH v2 1/5] soundwire: intel/cadence: fix startup sequence Pierre-Louis Bossart
2019-09-16 19:09 ` [PATCH v2 2/5] soundwire: cadence_master: add hw_reset capability in debugfs Pierre-Louis Bossart
2019-10-21 4:04 ` Vinod Koul
2019-10-21 10:20 ` [alsa-devel] " Pierre-Louis Bossart
2019-10-22 4:53 ` Vinod Koul [this message]
2019-09-16 19:09 ` [PATCH v2 3/5] soundwire: intel: add helper for initialization Pierre-Louis Bossart
2019-09-16 19:09 ` [PATCH v2 4/5] soundwire: intel/cadence: add flag for interrupt enable Pierre-Louis Bossart
2019-10-21 4:14 ` Vinod Koul
2019-10-21 10:26 ` [alsa-devel] " Pierre-Louis Bossart
2019-10-22 4:55 ` Vinod Koul
2019-10-22 20:41 ` Pierre-Louis Bossart
2019-09-16 19:09 ` [PATCH v2 5/5] soundwire: cadence_master: make clock stop exit configurable on init Pierre-Louis Bossart
2019-10-14 16:00 ` [alsa-devel] [PATCH v2 0/5] soundwire: intel/cadence: better initialization Pierre-Louis Bossart
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=20191022045324.GI2654@vkoul-mobl \
--to=vkoul@kernel.org \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=jank@cadence.com \
--cc=linux-kernel@vger.kernel.org \
--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=slawomir.blauciak@intel.com \
--cc=srinivas.kandagatla@linaro.org \
--cc=tiwai@suse.de \
--cc=yung-chuan.liao@linux.intel.com \
/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