diff options
| author | Andrea Galbusera <gizero@gmail.com> | 2011-04-20 22:21:21 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2011-04-21 19:59:30 -0400 |
| commit | e2a85aecebc03d165bc2dcd233deadd5dd97ea9f (patch) | |
| tree | b10efdc196b4ae601a499f36ade2ed98492302fe /drivers | |
| parent | a9cf73ea7ff78f52662c8658d93c226effbbedde (diff) | |
powerpc: Fix multicast problem in fs_enet driver
mac-fec.c was setting individual UDP address registers instead of multicast
group address registers when joining a multicast group.
This prevented from correctly receiving UDP multicast packets.
According to datasheet, replaced hash_table_high and hash_table_low
with grp_hash_table_high and grp_hash_table_low respectively.
Also renamed hash_table_* with grp_hash_table_* in struct fec declaration
for 8xx: these registers are used only for multicast there.
Tested on a MPC5121 based board.
Build tested also against mpc866_ads_defconfig.
Signed-off-by: Andrea Galbusera <gizero@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/net/fs_enet/mac-fec.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/fs_enet/mac-fec.c b/drivers/net/fs_enet/mac-fec.c index 61035fc5599b..b9fbc83d64a7 100644 --- a/drivers/net/fs_enet/mac-fec.c +++ b/drivers/net/fs_enet/mac-fec.c | |||
| @@ -226,8 +226,8 @@ static void set_multicast_finish(struct net_device *dev) | |||
| 226 | } | 226 | } |
| 227 | 227 | ||
| 228 | FC(fecp, r_cntrl, FEC_RCNTRL_PROM); | 228 | FC(fecp, r_cntrl, FEC_RCNTRL_PROM); |
| 229 | FW(fecp, hash_table_high, fep->fec.hthi); | 229 | FW(fecp, grp_hash_table_high, fep->fec.hthi); |
| 230 | FW(fecp, hash_table_low, fep->fec.htlo); | 230 | FW(fecp, grp_hash_table_low, fep->fec.htlo); |
| 231 | } | 231 | } |
| 232 | 232 | ||
| 233 | static void set_multicast_list(struct net_device *dev) | 233 | static void set_multicast_list(struct net_device *dev) |
| @@ -273,8 +273,8 @@ static void restart(struct net_device *dev) | |||
| 273 | /* | 273 | /* |
| 274 | * Reset all multicast. | 274 | * Reset all multicast. |
| 275 | */ | 275 | */ |
| 276 | FW(fecp, hash_table_high, fep->fec.hthi); | 276 | FW(fecp, grp_hash_table_high, fep->fec.hthi); |
| 277 | FW(fecp, hash_table_low, fep->fec.htlo); | 277 | FW(fecp, grp_hash_table_low, fep->fec.htlo); |
| 278 | 278 | ||
| 279 | /* | 279 | /* |
| 280 | * Set maximum receive buffer size. | 280 | * Set maximum receive buffer size. |
