* [PATCH]eepro100 resume failure
@ 2004-11-15 8:30 Li Shaohua
2004-11-15 8:43 ` Arjan van de Ven
0 siblings, 1 reply; 5+ messages in thread
From: Li Shaohua @ 2004-11-15 8:30 UTC (permalink / raw)
To: lkml; +Cc: Andrew Morton, Jeff Garzik
[-- Attachment #1: Type: text/plain, Size: 1095 bytes --]
Hi,
After resume from S3, eepro100 driver reported some errors and stop working in my Toshiba
laptop. Below patch fixes it.
Thanks,
Shaohua
Signed-off-by: Li Shaohua<shaohua.li@intel.com>
---
2.6-root/drivers/net/eepro100.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletion(-)
diff -puN drivers/net/eepro100.c~eepro100-pm drivers/net/eepro100.c
--- 2.6/drivers/net/eepro100.c~eepro100-pm 2004-11-15 16:06:22.500880880 +0800
+++ 2.6-root/drivers/net/eepro100.c 2004-11-15 16:16:43.057541928 +0800
@@ -2327,7 +2327,7 @@ static int eepro100_suspend(struct pci_d
netif_device_detach(dev);
outl(PortPartialReset, ioaddr + SCBPort);
- /* XXX call pci_set_power_state ()? */
+ pci_set_power_state (pdev, 3);
return 0;
}
@@ -2337,7 +2337,12 @@ static int eepro100_resume(struct pci_de
struct speedo_private *sp = netdev_priv(dev);
long ioaddr = dev->base_addr;
+ pci_set_power_state(pdev, 0);
pci_restore_state(pdev);
+ if (pdev->is_enabled)
+ pci_enable_device(pdev);
+ if (pdev->is_busmaster)
+ pci_set_master(pdev);
if (!netif_running(dev))
return 0;
_
[-- Attachment #2: eepro100-pm.patch --]
[-- Type: text/x-patch, Size: 905 bytes --]
---
2.6-root/drivers/net/eepro100.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletion(-)
diff -puN drivers/net/eepro100.c~eepro100-pm drivers/net/eepro100.c
--- 2.6/drivers/net/eepro100.c~eepro100-pm 2004-11-15 16:06:22.500880880 +0800
+++ 2.6-root/drivers/net/eepro100.c 2004-11-15 16:16:43.057541928 +0800
@@ -2327,7 +2327,7 @@ static int eepro100_suspend(struct pci_d
netif_device_detach(dev);
outl(PortPartialReset, ioaddr + SCBPort);
- /* XXX call pci_set_power_state ()? */
+ pci_set_power_state (pdev, 3);
return 0;
}
@@ -2337,7 +2337,12 @@ static int eepro100_resume(struct pci_de
struct speedo_private *sp = netdev_priv(dev);
long ioaddr = dev->base_addr;
+ pci_set_power_state(pdev, 0);
pci_restore_state(pdev);
+ if (pdev->is_enabled)
+ pci_enable_device(pdev);
+ if (pdev->is_busmaster)
+ pci_set_master(pdev);
if (!netif_running(dev))
return 0;
_
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH]eepro100 resume failure
2004-11-15 8:30 [PATCH]eepro100 resume failure Li Shaohua
@ 2004-11-15 8:43 ` Arjan van de Ven
2004-11-15 8:46 ` Li Shaohua
0 siblings, 1 reply; 5+ messages in thread
From: Arjan van de Ven @ 2004-11-15 8:43 UTC (permalink / raw)
To: Li Shaohua; +Cc: lkml, Andrew Morton, Jeff Garzik
>
> @@ -2337,7 +2337,12 @@ static int eepro100_resume(struct pci_de
> struct speedo_private *sp = netdev_priv(dev);
> long ioaddr = dev->base_addr;
>
> + pci_set_power_state(pdev, 0);
> pci_restore_state(pdev);
> + if (pdev->is_enabled)
> + pci_enable_device(pdev);
> + if (pdev->is_busmaster)
> + pci_set_master(pdev);
this is wrong; the driver should KNOW the device is enabled; no reason
to check for is_enabled. Same for is_busmaster...
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH]eepro100 resume failure
2004-11-15 8:43 ` Arjan van de Ven
@ 2004-11-15 8:46 ` Li Shaohua
2004-11-15 8:58 ` Arjan van de Ven
0 siblings, 1 reply; 5+ messages in thread
From: Li Shaohua @ 2004-11-15 8:46 UTC (permalink / raw)
To: Arjan van de Ven; +Cc: lkml, Andrew Morton, Jeff Garzik
[-- Attachment #1: Type: text/plain, Size: 1480 bytes --]
On Mon, 2004-11-15 at 16:43, Arjan van de Ven wrote:
> >
> > @@ -2337,7 +2337,12 @@ static int eepro100_resume(struct pci_de
> > struct speedo_private *sp = netdev_priv(dev);
> > long ioaddr = dev->base_addr;
> >
> > + pci_set_power_state(pdev, 0);
> > pci_restore_state(pdev);
> > + if (pdev->is_enabled)
> > + pci_enable_device(pdev);
> > + if (pdev->is_busmaster)
> > + pci_set_master(pdev);
>
> this is wrong; the driver should KNOW the device is enabled; no reason
> to check for is_enabled. Same for is_busmaster...
Oh, yes. The check isn't required. Updated one.
Thanks,
Shaohua
---
2.6-root/drivers/net/eepro100.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletion(-)
diff -puN drivers/net/eepro100.c~eepro100-pm drivers/net/eepro100.c
--- 2.6/drivers/net/eepro100.c~eepro100-pm 2004-11-15 16:06:22.500880880 +0800
+++ 2.6-root/drivers/net/eepro100.c 2004-11-15 16:40:47.211997080 +0800
@@ -2327,7 +2327,8 @@ static int eepro100_suspend(struct pci_d
netif_device_detach(dev);
outl(PortPartialReset, ioaddr + SCBPort);
- /* XXX call pci_set_power_state ()? */
+ pci_disable_device(pdev);
+ pci_set_power_state (pdev, 3);
return 0;
}
@@ -2337,7 +2338,10 @@ static int eepro100_resume(struct pci_de
struct speedo_private *sp = netdev_priv(dev);
long ioaddr = dev->base_addr;
+ pci_set_power_state(pdev, 0);
pci_restore_state(pdev);
+ pci_enable_device(pdev);
+ pci_set_master(pdev);
if (!netif_running(dev))
return 0;
_
[-- Attachment #2: eepro100-pm.patch --]
[-- Type: text/x-patch, Size: 880 bytes --]
---
2.6-root/drivers/net/eepro100.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletion(-)
diff -puN drivers/net/eepro100.c~eepro100-pm drivers/net/eepro100.c
--- 2.6/drivers/net/eepro100.c~eepro100-pm 2004-11-15 16:06:22.500880880 +0800
+++ 2.6-root/drivers/net/eepro100.c 2004-11-15 16:40:47.211997080 +0800
@@ -2327,7 +2327,8 @@ static int eepro100_suspend(struct pci_d
netif_device_detach(dev);
outl(PortPartialReset, ioaddr + SCBPort);
- /* XXX call pci_set_power_state ()? */
+ pci_disable_device(pdev);
+ pci_set_power_state (pdev, 3);
return 0;
}
@@ -2337,7 +2338,10 @@ static int eepro100_resume(struct pci_de
struct speedo_private *sp = netdev_priv(dev);
long ioaddr = dev->base_addr;
+ pci_set_power_state(pdev, 0);
pci_restore_state(pdev);
+ pci_enable_device(pdev);
+ pci_set_master(pdev);
if (!netif_running(dev))
return 0;
_
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH]eepro100 resume failure
2004-11-15 8:58 ` Arjan van de Ven
@ 2004-11-15 8:54 ` Li Shaohua
0 siblings, 0 replies; 5+ messages in thread
From: Li Shaohua @ 2004-11-15 8:54 UTC (permalink / raw)
To: Arjan van de Ven; +Cc: lkml, Andrew Morton, Jeff Garzik
On Mon, 2004-11-15 at 16:58, Arjan van de Ven wrote:
> > + pci_set_power_state(pdev, 0);
> > pci_restore_state(pdev);
> > + pci_enable_device(pdev);
> > + pci_set_master(pdev);
> >
>
> one more nitpick; pci_enable_device() already calls
> pci_set_power_state()... isn't that double up now ?
>
I think 'pci_restore_state' should be called after
'pci_set_power_state'.
Thanks,
Shaohua
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH]eepro100 resume failure
2004-11-15 8:46 ` Li Shaohua
@ 2004-11-15 8:58 ` Arjan van de Ven
2004-11-15 8:54 ` Li Shaohua
0 siblings, 1 reply; 5+ messages in thread
From: Arjan van de Ven @ 2004-11-15 8:58 UTC (permalink / raw)
To: Li Shaohua; +Cc: lkml, Andrew Morton, Jeff Garzik
> + pci_set_power_state(pdev, 0);
> pci_restore_state(pdev);
> + pci_enable_device(pdev);
> + pci_set_master(pdev);
>
one more nitpick; pci_enable_device() already calls
pci_set_power_state()... isn't that double up now ?
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2004-11-15 9:02 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-11-15 8:30 [PATCH]eepro100 resume failure Li Shaohua
2004-11-15 8:43 ` Arjan van de Ven
2004-11-15 8:46 ` Li Shaohua
2004-11-15 8:58 ` Arjan van de Ven
2004-11-15 8:54 ` Li Shaohua
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®