Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1278344

Re: [PATCH v2 2/7] ACPI / LPSS: allow to use specific PM domain during ->probe()

From Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Newsgroups linux.kernel
Subject Re: [PATCH v2 2/7] ACPI / LPSS: allow to use specific PM domain during ->probe()
Date 2015-11-26 17:50 +0100
Message-ID <qz7U6-7K3-11@gated-at.bofh.it> (permalink)
References <qz6uZ-6U1-9@gated-at.bofh.it> <qz6EG-6XT-7@gated-at.bofh.it> <qz7Kq-7Fr-17@gated-at.bofh.it>
Organization Intel Finland Oy

Show all headers | View raw


On Thu, 2015-11-26 at 18:30 +0200, Jarkko Nikula wrote:
> On 11/26/2015 05:19 PM, Andy Shevchenko wrote:
> > This is an amendment to previously pushed commit 01ac170ba29a (ACPI
> > / LPSS:
> > allow to use specific PM domain during ->probe()). We can't assign
> > anything to
> > the platform device on ADD_DEVICE stage since it might be changed
> > during
> > unbound / bind cycle.
> > 
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > ---
> >   drivers/acpi/acpi_lpss.c | 9 +++++++--
> >   1 file changed, 7 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
> > index f9e0d09..e840229 100644
> > --- a/drivers/acpi/acpi_lpss.c
> > +++ b/drivers/acpi/acpi_lpss.c
> > @@ -705,8 +705,14 @@ static int acpi_lpss_platform_notify(struct
> > notifier_block *nb,
> >   	}
> > 
> >   	switch (action) {
> > -	case BUS_NOTIFY_ADD_DEVICE:
> > +	case BUS_NOTIFY_BIND_DRIVER:
> >   		pdev->dev.pm_domain = &acpi_lpss_pm_domain;
> > +		break;
> > +	case BUS_NOTIFY_BIND_DRIVER_ERROR:
> > +	case BUS_NOTIFY_UNBOUND_DRIVER:
> > +		pdev->dev.pm_domain = NULL;
> > +		break;
> > +	case BUS_NOTIFY_ADD_DEVICE:
> 
> This won't fix like revert of original commit does. Primary problem
> here 
> is that there is no explicit power on at all during LPSS device probe
> because dev->pm_domain is set before probing.

And we can't do this as in very original code of acpi_lpss.c since DMA
has to be sure it's powered on while probing. We could guarantee this
only in case when PM domain is assigned already and we do our quirk for
it.

From my point of view we have to fix hang first since it's most painful
case for users and their experience. Though I'm open to any better
solution if you have any in mind.

> 
> driver_probe_device
>    platform_drv_prove
>      dev_pm_domain_attach
>        acpi_dev_pm_attach
>          returns instantly because of dev->pm_domain is set
> 
> Problem got unnoticed because devices are on during boot but 
> rmmod/modprobe cycle will hit it.
> 
> With this patch situation remains the same but works if you assign
> the 
> domain after probing when BUS_NOTIFY_BOUND_DRIVER notification comes 
> (s/BUS_NOTIFY_BIND_DRIVER/BUS_NOTIFY_BOUND_DRIVER/ above).
> 

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v2 2/7] ACPI / LPSS: allow to use specific PM domain during ->probe() Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2015-11-26 16:30 +0100
  Re: [PATCH v2 2/7] ACPI / LPSS: allow to use specific PM domain  during ->probe() Jarkko Nikula <jarkko.nikula@linux.intel.com> - 2015-11-26 17:40 +0100
    Re: [PATCH v2 2/7] ACPI / LPSS: allow to use specific PM domain  during ->probe() Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2015-11-26 17:50 +0100
      Re: [PATCH v2 2/7] ACPI / LPSS: allow to use specific PM domain during ->probe() "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2015-11-26 23:50 +0100
        Re: [PATCH v2 2/7] ACPI / LPSS: allow to use specific PM domain  during ->probe() Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2015-11-27 11:00 +0100
      Re: [PATCH v2 2/7] ACPI / LPSS: allow to use specific PM domain  during ->probe() Jarkko Nikula <jarkko.nikula@linux.intel.com> - 2015-11-27 08:10 +0100
        Re: [PATCH v2 2/7] ACPI / LPSS: allow to use specific PM domain  during ->probe() Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2015-11-27 11:10 +0100

csiph-web