Common .suspend()/.resume() template for PCI devices (was: Re: [PATCH 1/3] Misc: phantom, synchronize_irq() on suspend)
From: Rafael J. Wysocki
Date: Tue Oct 16 2007 - 07:54:23 EST
On Tuesday, 16 October 2007 01:23, Andrew Morton wrote:
> On Mon, 15 Oct 2007 09:32:28 -0700
> Jiri Slaby <jirislaby@xxxxxxxxx> wrote:
>
> > phantom, synchronize_irq() on suspend
> >
> > Wait after disabling device's interrupt until the handler finishes its
> > work if still in progress.
> >
> > Signed-off-by: Jiri Slaby <jirislaby@xxxxxxxxx>
> >
> > ---
> > commit 7e792ef384190b517f2fb27cd0237fa30dbe0775
> > tree 17b15e5ab7c90eef0e7ae57e532839e81b831d58
> > parent 5c008a5651ee92ebe020dd5108a66a7db74fe41d
> > author Jiri Slaby <jirislaby@xxxxxxxxx> Mon, 15 Oct 2007 15:52:21 +0200
> > committer Jiri Slaby <jirislaby@xxxxxxxxx> Mon, 15 Oct 2007 15:52:21 +0200
> >
> > drivers/misc/phantom.c | 2 ++
> > 1 files changed, 2 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/misc/phantom.c b/drivers/misc/phantom.c
> > index 5108b7c..6e61a79 100644
> > --- a/drivers/misc/phantom.c
> > +++ b/drivers/misc/phantom.c
> > @@ -378,6 +378,8 @@ static int phantom_suspend(struct pci_dev *pdev, pm_message_t state)
> > iowrite32(0, dev->caddr + PHN_IRQCTL);
> > ioread32(dev->caddr + PHN_IRQCTL); /* PCI posting */
> >
> > + synchronize_irq(pdev->irq);
> > +
> > return 0;
> > }
> >
>
> What inspired this change? Some bug report, or does it just seem the right
> thing to do?
Probably this thread: http://lkml.org/lkml/2007/10/10/261
> Would it be logical to do this operation from the PCI core somewhere, on
> behalf of all PCI drivers?
Yes, it would.
The problem is that we don't have a common template for PCI devices' .suspend()
and .resume() callbacks and I don't feel confident enough to propose one.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/