Hello!
On Fri, 2006-04-07 at 23:24 +0200, Francois Romieu wrote:
> Pavel Roskin <proski-mXXj517/zsQ@xxxxxxxxxxxxxxxx> :
> [...]
> > diff --git a/drivers/net/wireless/orinoco_pci.c
> > b/drivers/net/wireless/orinoco_pci.c
> > index 5362c21..e57e92b 100644
> > --- a/drivers/net/wireless/orinoco_pci.c
> > +++ b/drivers/net/wireless/orinoco_pci.c
> > @@ -304,7 +304,9 @@ static int orinoco_pci_suspend(struct pc
> >
> > orinoco_unlock(priv, &flags);
> >
> > + free_irq(pdev->irq, dev);
> > pci_save_state(pdev);
> > + pci_disable_device(pdev);
> > pci_set_power_state(pdev, PCI_D3hot);
> >
> > return 0;
>
> /me stares at the thread behind http://lkml.org/lkml/2005/7/30/143
>
> Imho {free/request}_irq during suspend/resume deserves some
> explanation.
I followed examples from other drivers. The thread in question deals
with the patch where pci_disable_device() precedes free_irq(). Besides,
bridges may need special care because they pass interrupts from other
devices.
I also followed the kernel documentation (Documentation/power/pci.txt),
which says that the driver should free the IRQ on suspend.
If you can suggest an alternative approach, please do so. I don't see
what I can do differently.
--
Regards,
Pavel Roskin
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
|