| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: if_mos.c,v 1.23 2022/08/20 14:08:59 riastradh Exp $ */ | | 1 | /* $NetBSD: if_mos.c,v 1.24 2022/10/10 18:30:28 martin Exp $ */ |
2 | /* $OpenBSD: if_mos.c,v 1.40 2019/07/07 06:40:10 kevlo Exp $ */ | | 2 | /* $OpenBSD: if_mos.c,v 1.40 2019/07/07 06:40:10 kevlo Exp $ */ |
3 | | | 3 | |
4 | /* | | 4 | /* |
5 | * Copyright (c) 2008 Johann Christian Rode <jcrode@gmx.net> | | 5 | * Copyright (c) 2008 Johann Christian Rode <jcrode@gmx.net> |
6 | * | | 6 | * |
7 | * Permission to use, copy, modify, and distribute this software for any | | 7 | * Permission to use, copy, modify, and distribute this software for any |
8 | * purpose with or without fee is hereby granted, provided that the above | | 8 | * purpose with or without fee is hereby granted, provided that the above |
9 | * copyright notice and this permission notice appear in all copies. | | 9 | * copyright notice and this permission notice appear in all copies. |
10 | * | | 10 | * |
11 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | | 11 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
12 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | | 12 | * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
13 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | | 13 | * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
14 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | | 14 | * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
| @@ -62,27 +62,27 @@ | | | @@ -62,27 +62,27 @@ |
62 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | | 62 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
63 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | | 63 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
64 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF | | 64 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF |
65 | * THE POSSIBILITY OF SUCH DAMAGE. | | 65 | * THE POSSIBILITY OF SUCH DAMAGE. |
66 | */ | | 66 | */ |
67 | | | 67 | |
68 | /* | | 68 | /* |
69 | * Moschip MCS7730/MCS7830/MCS7832 USB to Ethernet controller | | 69 | * Moschip MCS7730/MCS7830/MCS7832 USB to Ethernet controller |
70 | * The datasheet is available at the following URL: | | 70 | * The datasheet is available at the following URL: |
71 | * http://www.moschip.com/data/products/MCS7830/Data%20Sheet_7830.pdf | | 71 | * http://www.moschip.com/data/products/MCS7830/Data%20Sheet_7830.pdf |
72 | */ | | 72 | */ |
73 | | | 73 | |
74 | #include <sys/cdefs.h> | | 74 | #include <sys/cdefs.h> |
75 | __KERNEL_RCSID(0, "$NetBSD: if_mos.c,v 1.23 2022/08/20 14:08:59 riastradh Exp $"); | | 75 | __KERNEL_RCSID(0, "$NetBSD: if_mos.c,v 1.24 2022/10/10 18:30:28 martin Exp $"); |
76 | | | 76 | |
77 | #include <sys/param.h> | | 77 | #include <sys/param.h> |
78 | | | 78 | |
79 | #include <dev/usb/usbnet.h> | | 79 | #include <dev/usb/usbnet.h> |
80 | #include <dev/usb/if_mosreg.h> | | 80 | #include <dev/usb/if_mosreg.h> |
81 | | | 81 | |
82 | #define MOS_PAUSE_REWRITES 3 | | 82 | #define MOS_PAUSE_REWRITES 3 |
83 | | | 83 | |
84 | #define MOS_TIMEOUT 1000 | | 84 | #define MOS_TIMEOUT 1000 |
85 | | | 85 | |
86 | #define MOS_RX_LIST_CNT 1 | | 86 | #define MOS_RX_LIST_CNT 1 |
87 | #define MOS_TX_LIST_CNT 1 | | 87 | #define MOS_TX_LIST_CNT 1 |
88 | | | 88 | |
| @@ -642,28 +642,28 @@ mos_attach(device_t parent, device_t sel | | | @@ -642,28 +642,28 @@ mos_attach(device_t parent, device_t sel |
642 | usbnet_attach(un); | | 642 | usbnet_attach(un); |
643 | | | 643 | |
644 | mos_chip_init(un); | | 644 | mos_chip_init(un); |
645 | | | 645 | |
646 | /* | | 646 | /* |
647 | * Read MAC address, inform the world. | | 647 | * Read MAC address, inform the world. |
648 | */ | | 648 | */ |
649 | err = mos_readmac(un); | | 649 | err = mos_readmac(un); |
650 | if (err) { | | 650 | if (err) { |
651 | aprint_error_dev(self, "couldn't read MAC address\n"); | | 651 | aprint_error_dev(self, "couldn't read MAC address\n"); |
652 | return; | | 652 | return; |
653 | } | | 653 | } |
654 | | | 654 | |
655 | struct ifnet *ifp = usbnet_ifp(un); | | 655 | struct ethercom *ec = usbnet_ec(un); |
656 | ifp->if_capabilities = ETHERCAP_VLAN_MTU; | | 656 | ec->ec_capabilities = ETHERCAP_VLAN_MTU; |
657 | | | 657 | |
658 | usbnet_attach_ifp(un, IFF_SIMPLEX | IFF_BROADCAST | IFF_MULTICAST, | | 658 | usbnet_attach_ifp(un, IFF_SIMPLEX | IFF_BROADCAST | IFF_MULTICAST, |
659 | 0, &unm); | | 659 | 0, &unm); |
660 | } | | 660 | } |
661 | | | 661 | |
662 | /* | | 662 | /* |
663 | * A frame has been uploaded: pass the resulting mbuf chain up to | | 663 | * A frame has been uploaded: pass the resulting mbuf chain up to |
664 | * the higher level protocols. | | 664 | * the higher level protocols. |
665 | */ | | 665 | */ |
666 | void | | 666 | void |
667 | mos_uno_rx_loop(struct usbnet * un, struct usbnet_chain *c, uint32_t total_len) | | 667 | mos_uno_rx_loop(struct usbnet * un, struct usbnet_chain *c, uint32_t total_len) |
668 | { | | 668 | { |
669 | struct ifnet *ifp = usbnet_ifp(un); | | 669 | struct ifnet *ifp = usbnet_ifp(un); |