Messages in this thread |  | | From | Måns Rullgård <> | | Subject | Re: [PATCH 3/3] net: ethernet: add driver for Aurora VLSI NB8800 Ethernet controller | | Date | Sat, 24 Oct 2015 16:45:48 +0100 |
| |
Florian Fainelli <f.fainelli@gmail.com> 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 addresses.
>>>> + 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 mans@mansr.com
|  |