Re: [PATCH 3/3] net: ethernet: add driver for Aurora VLSI NB8800 Ethernet controller

From: Måns Rullgård
Date: Sat Oct 24 2015 - 11:45:56 EST

Florian Fainelli <f.fainelli@xxxxxxxxx> writes:

>>>> +static void nb8800_set_rx_mode(struct net_device *dev)
>>>> +{
>>>> + struct nb8800_priv *priv = netdev_priv(dev);
>>>> + struct netdev_hw_addr *ha;
>>>> + int af_en;
>>>> +
>>>> + if ((dev->flags & (IFF_PROMISC | IFF_ALLMULTI)) ||
>>>> + netdev_mc_count(dev) > 64)
>>> 64, that's pretty generous for a perfect match filter, nice.
>> That's bogus; I forgot to delete it. The hardware uses a 64-entry hash
>> table, and whoever wrote the old driver apparently didn't understand how
>> it works.
> Might be best to put the interface in promiscuous mode until you have
> proper multicast support. Since this is for a Set-Top box chip, having
> proper multicast support still seems like something highly desirable.

The code below should work correctly with any number of multicast

>>>> + phydev = phy_find_first(bus);
>>>> + if (!phydev || phy_read(phydev, MII_BMSR) <= 0) {
>>> What is this additional MII_MBSR read used for?
>> On one of my boards, phylib misdetects a phy on the second ethernet port
>> even though there is none. Perhaps I should revisit that problem and
>> look for a better solution.
> I think that would be best, if you are currently using the Generic PHY
> driver, consider writing a specific driver which would take care of
> quirky behavior.

The problem is that there is no PHY, yet for some reason reading the ID
registers appears to succeed.

Måns Rullgård
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at