[PATCH] ARM: i.MX6Q: Add fixup for RTL8211E Gigabit Ethernet PHY

Панов Андрей rockford at yandex.ru
Wed Mar 4 12:05:43 PST 2015



04.03.2015, 22:44, "Arnd Bergmann" <arnd at arndb.de>:
> On Wednesday 04 March 2015 22:08:42 Панов Андрей wrote:
>>>>   +               phy_register_fixup_for_uid(PHY_ID_RTL8211E, 0xffffffff,
>>>>   +                               rtl8211e_phy_fixup);
>>>  How do you ensure that this fixup is only applied on the boards that need
>>>  it, rather than all machines that happen to have this phy?
>>  I've thought that if there no other fixups in code here checking a particular
>>  board where they run, this isn't necessary.
>>  This SoC has only one ethernet MAC and if it is connected to this PHY,
>>  it should be initalized this way independently of board, like other code here does, I think.
>>
>>  This code just does forcibly restart autonegotiation.
>>  I can wrap it in if(!of_machine_is_compatible(...)){}, if it is need.
>
> Your explanation makes sense to me, though I wonder what the property of this
> SoC is that requires the PHY fixup. Is this something we could or should be doing
> in a more general way using the PHY API, by having the device driver call a
> phy API function to restart autoneg independent of the PHY?

Actually, I don't know. I've discovered this when I wanted to boot a more recent kernel
on this board, and network wasn't working. So I've had to disassembly a vendor's binary only module
to discover how they handle this situation.

--
 Андрей



More information about the linux-arm-kernel mailing list