.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
---|
1 | 2 | /* |
---|
2 | 3 | * Ethernet driver for the WIZnet W5100 chip. |
---|
3 | 4 | * |
---|
4 | 5 | * Copyright (C) 2006-2008 WIZnet Co.,Ltd. |
---|
5 | 6 | * Copyright (C) 2012 Mike Sinkovsky <msink@permonline.ru> |
---|
6 | | - * |
---|
7 | | - * Licensed under the GPL-2 or later. |
---|
8 | 7 | */ |
---|
9 | 8 | |
---|
10 | 9 | #include <linux/kernel.h> |
---|
.. | .. |
---|
219 | 218 | static inline int w5100_write_direct(struct net_device *ndev, u32 addr, u8 data) |
---|
220 | 219 | { |
---|
221 | 220 | __w5100_write_direct(ndev, addr, data); |
---|
222 | | - mmiowb(); |
---|
223 | 221 | |
---|
224 | 222 | return 0; |
---|
225 | 223 | } |
---|
.. | .. |
---|
236 | 234 | { |
---|
237 | 235 | __w5100_write_direct(ndev, addr, data >> 8); |
---|
238 | 236 | __w5100_write_direct(ndev, addr + 1, data); |
---|
239 | | - mmiowb(); |
---|
240 | 237 | |
---|
241 | 238 | return 0; |
---|
242 | 239 | } |
---|
.. | .. |
---|
259 | 256 | |
---|
260 | 257 | for (i = 0; i < len; i++, addr++) |
---|
261 | 258 | __w5100_write_direct(ndev, addr, *buf++); |
---|
262 | | - |
---|
263 | | - mmiowb(); |
---|
264 | 259 | |
---|
265 | 260 | return 0; |
---|
266 | 261 | } |
---|
.. | .. |
---|
375 | 370 | for (i = 0; i < len; i++) |
---|
376 | 371 | *buf++ = w5100_read_direct(ndev, W5100_IDM_DR); |
---|
377 | 372 | |
---|
378 | | - mmiowb(); |
---|
379 | 373 | spin_unlock_irqrestore(&mmio_priv->reg_lock, flags); |
---|
380 | 374 | |
---|
381 | 375 | return 0; |
---|
.. | .. |
---|
394 | 388 | for (i = 0; i < len; i++) |
---|
395 | 389 | __w5100_write_direct(ndev, W5100_IDM_DR, *buf++); |
---|
396 | 390 | |
---|
397 | | - mmiowb(); |
---|
398 | 391 | spin_unlock_irqrestore(&mmio_priv->reg_lock, flags); |
---|
399 | 392 | |
---|
400 | 393 | return 0; |
---|
.. | .. |
---|
797 | 790 | w5100_restart(priv->ndev); |
---|
798 | 791 | } |
---|
799 | 792 | |
---|
800 | | -static void w5100_tx_timeout(struct net_device *ndev) |
---|
| 793 | +static void w5100_tx_timeout(struct net_device *ndev, unsigned int txqueue) |
---|
801 | 794 | { |
---|
802 | 795 | struct w5100_priv *priv = netdev_priv(ndev); |
---|
803 | 796 | |
---|
.. | .. |
---|
1166 | 1159 | INIT_WORK(&priv->setrx_work, w5100_setrx_work); |
---|
1167 | 1160 | INIT_WORK(&priv->restart_work, w5100_restart_work); |
---|
1168 | 1161 | |
---|
1169 | | - if (mac_addr) |
---|
| 1162 | + if (!IS_ERR_OR_NULL(mac_addr)) |
---|
1170 | 1163 | memcpy(ndev->dev_addr, mac_addr, ETH_ALEN); |
---|
1171 | 1164 | else |
---|
1172 | 1165 | eth_hw_addr_random(ndev); |
---|