Re: [sky2 driver] 88E8056 PCI-E Gigabit Ethernet Controller not working after suspend

2018-12-04 Thread Laurent Bigonville

Le 30/11/18 à 12:16, Laurent Bigonville a écrit :

Le 10/10/18 à 21:09, Stephen Hemminger a écrit :

On Wed, 10 Oct 2018 03:16:40 +0200
Laurent Bigonville  wrote:


Le 9/10/18 à 22:09, Stephen Hemminger a écrit :

On Tue, 9 Oct 2018 19:30:30 +0200
Laurent Bigonville  wrote:

Hello,

On my desktop (Asus MB with dual Ethernet port), when waking up after
suspend, the network card is not detecting the link.

I have to rmmod the sky2 driver and then modprobing it again.

lspci shows me:

04:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 
PCI-E

Gigabit Ethernet Controller (rev 12)
05:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 
PCI-E

Gigabit Ethernet Controller (rev 12)

An idea what's wrong here?

Kind regards,

Laurent Bigonville

I used to have that motherboard (about 8 years ago). Long dead by now.

There was some issue with how the power management worked. Forgot 
the workaround,

you might have to dig in the mailing list archive.

I've made some test and it seems that this was working in 4.14 and then
broken in 4.15 (using the debian kernel pkg), so it was working not 
that

long ago:

The only commit I see to the sky2 driver is the following:

commit e99e88a9d2b067465adaa9c111ada99a041bef9a
Author: Kees Cook 
Date:   Mon Oct 16 14:43:17 2017 -0700

      treewide: setup_timer() -> timer_setup()

      This converts all remaining cases of the old setup_timer() API 
into

using
      timer_setup(), where the callback argument is the structure 
already
      holding the struct timer_list. These should have no behavioral 
changes,
      since they just change which pointer is passed into the 
callback with
      the same available pointers after conversion. It handles the 
following

      examples, in addition to some other variations.



Probably something in PCI power management could.


I can still reproduce this in 4.19, any could have a look at this? Or 
any other pointer I can look at?


After the suspend, the interface shows the following:

6: enp5s0:  mtu 1500 qdisc 
pfifo_fast state DOWN mode DEFAULT group default qlen 1000

    link/ether 00:26:18:XX:XX:XX brd ff:ff:ff:ff:ff:ff

But the link led on the port is on (and the activity led is blinking), 
so that would say that the interface is powered(?)


I've investigated a bit more and passing disable_msi=1 to the driver 
fixes this issue, the card is operational after suspend now. The module 
is still using pci_enable_msi() which seems deprecated, not sure that's 
relevant.


If I can trust the logs, I'm seeing quite some changes related to MSI 
between v4.14 and v4.15




Re: [sky2 driver] 88E8056 PCI-E Gigabit Ethernet Controller not working after suspend

2018-11-30 Thread Laurent Bigonville

Le 10/10/18 à 21:09, Stephen Hemminger a écrit :

On Wed, 10 Oct 2018 03:16:40 +0200
Laurent Bigonville  wrote:


Le 9/10/18 à 22:09, Stephen Hemminger a écrit :

On Tue, 9 Oct 2018 19:30:30 +0200
Laurent Bigonville  wrote:
  

Hello,

On my desktop (Asus MB with dual Ethernet port), when waking up after
suspend, the network card is not detecting the link.

I have to rmmod the sky2 driver and then modprobing it again.

lspci shows me:

04:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E
Gigabit Ethernet Controller (rev 12)
05:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E
Gigabit Ethernet Controller (rev 12)

An idea what's wrong here?

Kind regards,

Laurent Bigonville
  

I used to have that motherboard (about 8 years ago). Long  dead by now.

There was some issue with how the power management worked. Forgot the 
workaround,
you might have to dig in the mailing list archive.

I've made some test and it seems that this was working in 4.14 and then
broken in 4.15 (using the debian kernel pkg), so it was working not that
long ago:

The only commit I see to the sky2 driver is the following:

commit e99e88a9d2b067465adaa9c111ada99a041bef9a
Author: Kees Cook 
Date:   Mon Oct 16 14:43:17 2017 -0700

      treewide: setup_timer() -> timer_setup()

      This converts all remaining cases of the old setup_timer() API into
using
      timer_setup(), where the callback argument is the structure already
      holding the struct timer_list. These should have no behavioral changes,
      since they just change which pointer is passed into the callback with
      the same available pointers after conversion. It handles the following
      examples, in addition to some other variations.



Probably something in PCI power management could.


I can still reproduce this in 4.19, any could have a look at this? Or 
any other pointer I can look at?


After the suspend, the interface shows the following:

6: enp5s0:  mtu 1500 qdisc pfifo_fast 
state DOWN mode DEFAULT group default qlen 1000

    link/ether 00:26:18:XX:XX:XX brd ff:ff:ff:ff:ff:ff

But the link led on the port is on (and the activity led is blinking), 
so that would say that the interface is powered(?)




Re: [sky2 driver] 88E8056 PCI-E Gigabit Ethernet Controller not working after suspend

2018-10-10 Thread Stephen Hemminger
On Wed, 10 Oct 2018 03:16:40 +0200
Laurent Bigonville  wrote:

> Le 9/10/18 à 22:09, Stephen Hemminger a écrit :
> > On Tue, 9 Oct 2018 19:30:30 +0200
> > Laurent Bigonville  wrote:
> >  
> >> Hello,
> >>
> >> On my desktop (Asus MB with dual Ethernet port), when waking up after
> >> suspend, the network card is not detecting the link.
> >>
> >> I have to rmmod the sky2 driver and then modprobing it again.
> >>
> >> lspci shows me:
> >>
> >> 04:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E
> >> Gigabit Ethernet Controller (rev 12)
> >> 05:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E
> >> Gigabit Ethernet Controller (rev 12)
> >>
> >> An idea what's wrong here?
> >>
> >> Kind regards,
> >>
> >> Laurent Bigonville
> >>  
> > I used to have that motherboard (about 8 years ago). Long  dead by now.
> >
> > There was some issue with how the power management worked. Forgot the 
> > workaround,
> > you might have to dig in the mailing list archive.  
> 
> I've made some test and it seems that this was working in 4.14 and then 
> broken in 4.15 (using the debian kernel pkg), so it was working not that 
> long ago:
> 
> The only commit I see to the sky2 driver is the following:
> 
> commit e99e88a9d2b067465adaa9c111ada99a041bef9a
> Author: Kees Cook 
> Date:   Mon Oct 16 14:43:17 2017 -0700
> 
>      treewide: setup_timer() -> timer_setup()
> 
>      This converts all remaining cases of the old setup_timer() API into 
> using
>      timer_setup(), where the callback argument is the structure already
>      holding the struct timer_list. These should have no behavioral changes,
>      since they just change which pointer is passed into the callback with
>      the same available pointers after conversion. It handles the following
>      examples, in addition to some other variations.
> 
> 

Probably something in PCI power management could. 


Re: [sky2 driver] 88E8056 PCI-E Gigabit Ethernet Controller not working after suspend

2018-10-09 Thread Laurent Bigonville

Le 9/10/18 à 22:09, Stephen Hemminger a écrit :

On Tue, 9 Oct 2018 19:30:30 +0200
Laurent Bigonville  wrote:


Hello,

On my desktop (Asus MB with dual Ethernet port), when waking up after
suspend, the network card is not detecting the link.

I have to rmmod the sky2 driver and then modprobing it again.

lspci shows me:

04:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E
Gigabit Ethernet Controller (rev 12)
05:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E
Gigabit Ethernet Controller (rev 12)

An idea what's wrong here?

Kind regards,

Laurent Bigonville


I used to have that motherboard (about 8 years ago). Long  dead by now.

There was some issue with how the power management worked. Forgot the 
workaround,
you might have to dig in the mailing list archive.


I've made some test and it seems that this was working in 4.14 and then 
broken in 4.15 (using the debian kernel pkg), so it was working not that 
long ago:


The only commit I see to the sky2 driver is the following:

commit e99e88a9d2b067465adaa9c111ada99a041bef9a
Author: Kees Cook 
Date:   Mon Oct 16 14:43:17 2017 -0700

    treewide: setup_timer() -> timer_setup()

    This converts all remaining cases of the old setup_timer() API into 
using

    timer_setup(), where the callback argument is the structure already
    holding the struct timer_list. These should have no behavioral changes,
    since they just change which pointer is passed into the callback with
    the same available pointers after conversion. It handles the following
    examples, in addition to some other variations.




Re: [sky2 driver] 88E8056 PCI-E Gigabit Ethernet Controller not working after suspend

2018-10-09 Thread Stephen Hemminger
On Tue, 9 Oct 2018 19:30:30 +0200
Laurent Bigonville  wrote:

> Hello,
> 
> On my desktop (Asus MB with dual Ethernet port), when waking up after 
> suspend, the network card is not detecting the link.
> 
> I have to rmmod the sky2 driver and then modprobing it again.
> 
> lspci shows me:
> 
> 04:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E 
> Gigabit Ethernet Controller (rev 12)
> 05:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E 
> Gigabit Ethernet Controller (rev 12)
> 
> An idea what's wrong here?
> 
> Kind regards,
> 
> Laurent Bigonville
> 

I used to have that motherboard (about 8 years ago). Long  dead by now.

There was some issue with how the power management worked. Forgot the 
workaround,
you might have to dig in the mailing list archive.