All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vinod Koul <vkoul@kernel.org>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: Bard Liao <yung-chuan.liao@linux.intel.com>,
	alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org,
	gregkh@linuxfoundation.org, srinivas.kandagatla@linaro.org,
	sanyog.r.kale@intel.com, bard.liao@intel.com
Subject: Re: [PATCH] soundwire: bus_type: fix remove and shutdown support
Date: Mon, 4 Jul 2022 11:13:10 +0530	[thread overview]
Message-ID: <YsJ97kNAmz7U+42m@matsya> (raw)
In-Reply-To: <a861f3b2-dec4-982d-0939-1dfc18dd2f53@linux.intel.com>

On 23-06-22, 09:54, Pierre-Louis Bossart wrote:
> 
> 
> On 6/23/22 02:55, Vinod Koul wrote:
> > On 10-06-22, 09:51, Bard Liao wrote:
> >> From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
> >>
> >> The bus sdw_drv_remove() and sdw_drv_shutdown() helpers are used
> >> conditionally, if the driver provides these routines.
> >>
> >> These helpers already test if the driver provides a .remove or
> >> .shutdown callback, so there's no harm in invoking the
> >> sdw_drv_remove() and sdw_drv_shutdown() unconditionally.
> > 
> > Okay sounds good
> > 
> >> In addition, the current code is imbalanced with
> >> dev_pm_domain_attach() called from sdw_drv_probe(), but
> >> dev_pm_domain_detach() called from sdw_drv_remove() only if the driver
> >> provides a .remove callback.
> > 
> > Am not sure I follow what is imbalance, pm_domain_attach/detach?
> 
> Yes, the dev_pm_domain_detach() is done conditionally, depending on the
> presence of a driver .remove callback, that's not so good.

Sorry am bit confused now, this is what I have in sdw-next

static int sdw_drv_remove(struct device *dev)
{
        struct sdw_slave *slave = dev_to_sdw_dev(dev);
        struct sdw_driver *drv = drv_to_sdw_driver(dev->driver);
        int ret = 0;

        if (drv->remove)
                ret = drv->remove(slave);

        dev_pm_domain_detach(dev, false);

        return ret;
}

I see that dev_pm_domain_detach() is called unconditionally and not
dependent on remove method which seems right to me.

The code seems same since 9251345dca24b

-- 
~Vinod

WARNING: multiple messages have this Message-ID (diff)
From: Vinod Koul <vkoul@kernel.org>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: alsa-devel@alsa-project.org, gregkh@linuxfoundation.org,
	linux-kernel@vger.kernel.org, srinivas.kandagatla@linaro.org,
	sanyog.r.kale@intel.com,
	Bard Liao <yung-chuan.liao@linux.intel.com>,
	bard.liao@intel.com
Subject: Re: [PATCH] soundwire: bus_type: fix remove and shutdown support
Date: Mon, 4 Jul 2022 11:13:10 +0530	[thread overview]
Message-ID: <YsJ97kNAmz7U+42m@matsya> (raw)
In-Reply-To: <a861f3b2-dec4-982d-0939-1dfc18dd2f53@linux.intel.com>

On 23-06-22, 09:54, Pierre-Louis Bossart wrote:
> 
> 
> On 6/23/22 02:55, Vinod Koul wrote:
> > On 10-06-22, 09:51, Bard Liao wrote:
> >> From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
> >>
> >> The bus sdw_drv_remove() and sdw_drv_shutdown() helpers are used
> >> conditionally, if the driver provides these routines.
> >>
> >> These helpers already test if the driver provides a .remove or
> >> .shutdown callback, so there's no harm in invoking the
> >> sdw_drv_remove() and sdw_drv_shutdown() unconditionally.
> > 
> > Okay sounds good
> > 
> >> In addition, the current code is imbalanced with
> >> dev_pm_domain_attach() called from sdw_drv_probe(), but
> >> dev_pm_domain_detach() called from sdw_drv_remove() only if the driver
> >> provides a .remove callback.
> > 
> > Am not sure I follow what is imbalance, pm_domain_attach/detach?
> 
> Yes, the dev_pm_domain_detach() is done conditionally, depending on the
> presence of a driver .remove callback, that's not so good.

Sorry am bit confused now, this is what I have in sdw-next

static int sdw_drv_remove(struct device *dev)
{
        struct sdw_slave *slave = dev_to_sdw_dev(dev);
        struct sdw_driver *drv = drv_to_sdw_driver(dev->driver);
        int ret = 0;

        if (drv->remove)
                ret = drv->remove(slave);

        dev_pm_domain_detach(dev, false);

        return ret;
}

I see that dev_pm_domain_detach() is called unconditionally and not
dependent on remove method which seems right to me.

The code seems same since 9251345dca24b

-- 
~Vinod

  reply	other threads:[~2022-07-04  5:44 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-10  1:51 [PATCH] soundwire: bus_type: fix remove and shutdown support Bard Liao
2022-06-10  1:51 ` Bard Liao
2022-06-23  7:55 ` Vinod Koul
2022-06-23  7:55   ` Vinod Koul
2022-06-23 14:54   ` Pierre-Louis Bossart
2022-06-23 14:54     ` Pierre-Louis Bossart
2022-07-04  5:43     ` Vinod Koul [this message]
2022-07-04  5:43       ` Vinod Koul
2022-07-04  6:20       ` Vinod Koul
2022-07-04  6:20         ` 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=YsJ97kNAmz7U+42m@matsya \
    --to=vkoul@kernel.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=bard.liao@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=sanyog.r.kale@intel.com \
    --cc=srinivas.kandagatla@linaro.org \
    --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 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.