public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
From: Ondrej Zary <linux@rainbow-software.org>
To: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Andrew Morton <akpm@osdl.org>,
	ALSA development <alsa-devel@alsa-project.org>,
	Takashi Iwai <tiwai@suse.de>,
	Rene Herman <rene.herman@keyaccess.nl>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	Jaroslav Kysela <perex@perex.cz>, Pavel Machek <pavel@suse.cz>,
	Pierre Ossman <drzeus@drzeus.cx>,
	linux-pm@lists.linux-foundation.org
Subject: Re: -mm: pnp-do-not-stop-start-devices-in-suspend-resume-path.patch breaks resuming isapnp cards
Date: Wed, 16 Jan 2008 19:03:23 +0100	[thread overview]
Message-ID: <200801161903.28813.linux@rainbow-software.org> (raw)
In-Reply-To: <200801161046.05174.bjorn.helgaas@hp.com>

On Wednesday 16 January 2008 18:46:03 Bjorn Helgaas wrote:
> On Tuesday 15 January 2008 12:51:35 am Jaroslav Kysela wrote:
> > On Mon, 14 Jan 2008, Bjorn Helgaas wrote:
> > > On Saturday 12 January 2008 11:13:35 pm Rene Herman wrote:
> > > > ... And, now that I have your attention, while it's
> > > > not important to the issue anymore with the tests removed as the
> > > > submitted patch did, do you have an opinion on (include/linux/pnp.h):
> > > >
> > > > /* pnp driver flags */
> > > > #define PNP_DRIVER_RES_DO_NOT_CHANGE    0x0001  /* do not change the
> > > > state of the device */
> > > > #define PNP_DRIVER_RES_DISABLE          0x0003  /* ensure the device
> > > > is disabled */
> > > >
> > > > I find DISABLE including DO_NOT_CHANGE rather unexpected...
> > >
> > > I don't know the history of those flags, but I wish they didn't exist.
> >
> > Ok, something to explain. These flags exists to allow drivers to
> > manually configure (override) PnP resources at init time - we know - for
> > example in ALSA - that some combinations simply does not work for all
> > soundcards.
> >
> > The DISABLE flags simply tells core PnP layer - driver will handle
> > resource allocation itself, don't do anything, just disable hw physically
> > and do not change (allocate) any resources. Value 0x03 is valid in this
> > semantics.
>
> It looks like sound drivers use PNP_DRIVER_RES_DISABLE to say "ignore
> what PNP tells us about resource usage and we'll just use the compiled-
> in or command-line-specified resources".
>
> The main reason to do that would be to work around BIOS defects or
> to work around deficiencies in the Linux PNP infrastructure (e.g.,
> maybe we erroneously place another device on top of the sound card
> or something).
>
> I'm just suspicious because PNP_DRIVER_RES_DISABLE is only used in
> sound drivers.  If it's to work around BIOS defects, why wouldn't
> other PNP drivers need it sometimes, too?  And wouldn't it be better
> to use PNP quirks for BIOS workarounds?
>
> > Unfortunately, suspend / resume complicates things a bit, but PnP core
> > can handle DO_NOT_CHANGE flag. But it will just mean - _preserve_
> > resource allocation from last suspend state for this device and enable hw
> > physically before calling resume() callback.
>
> When resuming, wouldn't we *always* want to preserve the resource
> allocation from the last suspend, regardless of whether
> PNP_DRIVER_RES_DO_NOT_CHANGE is specified?

I'd say yes. If base address of a card changes, driver will break.

I grepped drivers for these flags too - to find out what they do (or should 
do?) - but failed to find out anything useful.

> Linux PNP definitely has issues with suspend/resume, and I suspect
> this is one of them.
>
> Bjorn
> --
> 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/



-- 
Ondrej Zary

  parent reply	other threads:[~2008-01-16 18:03 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200801092343.48726.linux@rainbow-software.org>
     [not found] ` <20080111080141.75aaad5f@poseidon.drzeus.cx>
     [not found]   ` <47877B83.5040604@keyaccess.nl>
     [not found]     ` <200801111940.22023.linux@rainbow-software.org>
2008-01-12  1:23       ` [alsa-devel] PNP_DRIVER_RES_DISABLE breaks swsusp at least with snd_cs4236 Rene Herman
     [not found]       ` <4788168F.8070403@keyaccess.nl>
2008-01-12 11:12         ` Pierre Ossman
     [not found]         ` <20080112121256.0f2e96ad@poseidon.drzeus.cx>
2008-01-12 13:39           ` Rene Herman
     [not found]           ` <4788C323.6090206@keyaccess.nl>
2008-01-12 15:21             ` Pierre Ossman
     [not found]             ` <20080112162150.1ec9cad0@poseidon.drzeus.cx>
2008-01-12 16:46               ` Ondrej Zary
2008-01-12 17:00               ` Rene Herman
     [not found]               ` <4788F226.7040101@keyaccess.nl>
2008-01-12 19:08                 ` Rafael J. Wysocki
2008-01-12 20:08                   ` -mm: pnp-do-not-stop-start-devices-in-suspend-resume-path.patch breaks resuming isapnp cards Rene Herman
     [not found]                   ` <47891E21.8060209@keyaccess.nl>
2008-01-13  5:50                     ` Bjorn Helgaas
     [not found]                     ` <200801122250.44220.bjorn.helgaas@hp.com>
2008-01-13  6:13                       ` Rene Herman
     [not found]                       ` <4789AC0F.9030007@keyaccess.nl>
2008-01-14 22:26                         ` Bjorn Helgaas
     [not found]                         ` <200801141526.57744.bjorn.helgaas@hp.com>
2008-01-14 23:46                           ` Rene Herman
2008-01-15  7:51                           ` Jaroslav Kysela
     [not found]                           ` <Pine.LNX.4.61.0801150842480.7446@tm8103.perex-int.cz>
2008-01-16 17:46                             ` Bjorn Helgaas
     [not found]                             ` <200801161046.05174.bjorn.helgaas@hp.com>
2008-01-16 18:03                               ` Ondrej Zary [this message]
2008-01-16 18:16                               ` Rene Herman
2008-01-12 19:01             ` [alsa-devel] PNP_DRIVER_RES_DISABLE breaks swsusp at least with snd_cs4236 Rafael J. Wysocki

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=200801161903.28813.linux@rainbow-software.org \
    --to=linux@rainbow-software.org \
    --cc=akpm@osdl.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=bjorn.helgaas@hp.com \
    --cc=drzeus@drzeus.cx \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=pavel@suse.cz \
    --cc=perex@perex.cz \
    --cc=rene.herman@keyaccess.nl \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox