Subject: Re: r8169 not being recognized by different chipsets

From: Bjorn Helgaas <[email-masked]>
Date: Tue, 2 Apr 2019 08:25:14 -0500

[+cc PHY and r8169 maintainers, LKML]

Hi Matthew,

On Wed, Mar 27, 2019 at 02:15:53PM -0400, tedheadster wrote:
> The r8169 driver is not recognizing my CardBus ethernet card depending
> on the chipset it has. It seems to be related to the PCI bus
> recognizing the card.  It works with some hardware and not with others
> on the same kernel.
> 
> This is with both the 5.1.0-rc2 and 5.0.4 kernels, so I am up to date
> with patches.

I assume this has never worked, i.e., it is not a regression?  If it
*is* a regression, bisection is a possible approach if nobody has a
better idea.

> I have been able to debug it down to  mdiobus_scan() returning
> returned -EIO, but that failure probably should not happen.

I can't connect this failure to PCI yet (at least, I don't know enough
to connect the dots).  Maybe the PHY or r8169 folks can shed more
light.

> Below is the relevant PCI information:
> 
> Failing systems:
> - The same 81801 bridge chip, different CardBus chips
> 
> 00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge
> [8086:2448] (rev 81)
> 02:00.0 CardBus bridge [0607]: Texas Instruments PCI4520 PC card
> Cardbus Controller [104c:ac46] (rev 01)
> 02:00.1 CardBus bridge [0607]: Texas Instruments PCI4520 PC card
> Cardbus Controller [104c:ac46] (rev 01)
> 07:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
> RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> 
> 00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge
> [8086:2448] (rev 81)
> 02:01.0 CardBus bridge [0607]: Texas Instruments PCI1520 PC card
> Cardbus Controller [104c:ac55] (rev 01)
> 02:01.1 CardBus bridge [0607]: Texas Instruments PCI1520 PC card
> Cardbus Controller [104c:ac55] (rev 01)
> 03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
> RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> 
> Working systems:
> 
> 00:01.0 PCI bridge [0604]: Intel Corporation 440BX/ZX/DX -
> 82443BX/ZX/DX AGP bridge [8086:7191] (rev 02)
> 00:04.0 CardBus bridge [0607]: Texas Instruments PCI1220 [104c:ac17] (rev 02)
> 00:04.1 CardBus bridge [0607]: Texas Instruments PCI1220 [104c:ac17] (rev 02)
> 06:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
> RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> 
> 00:00.0 Host bridge [0600]: Cyrix Corporation PCI Master [1078:0001]
> 00:11.0 CardBus bridge [0607]: Texas Instruments PCI1221 [104c:ac19]
> 00:11.1 CardBus bridge [0607]: Texas Instruments PCI1221 [104c:ac19]
> 01:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd.
> RTL8169 PCI Gigabit Ethernet Controller [10ec:8169] (rev 10)
> 
> - Matthew Whitehead