Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/dwc/if_dwc.c
| Show First 20 Lines • Show All 257 Lines • ▼ Show 20 Lines | case SIOCGIFMEDIA: | ||||
| error = ifmedia_ioctl(ifp, ifr, &mii->mii_media, cmd); | error = ifmedia_ioctl(ifp, ifr, &mii->mii_media, cmd); | ||||
| break; | break; | ||||
| case SIOCSIFCAP: | case SIOCSIFCAP: | ||||
| mask = ifr->ifr_reqcap ^ if_getcapenable(ifp); | mask = ifr->ifr_reqcap ^ if_getcapenable(ifp); | ||||
| if (mask & IFCAP_VLAN_MTU) { | if (mask & IFCAP_VLAN_MTU) { | ||||
| /* No work to do except acknowledge the change took */ | /* No work to do except acknowledge the change took */ | ||||
| if_togglecapenable(ifp, IFCAP_VLAN_MTU); | if_togglecapenable(ifp, IFCAP_VLAN_MTU); | ||||
| } | } | ||||
| if (mask & IFCAP_RXCSUM) | if (mask & (IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6)) | ||||
| if_togglecapenable(ifp, IFCAP_RXCSUM); | if_togglecapenable(ifp, IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6); | ||||
| if (mask & IFCAP_TXCSUM) | if (mask & IFCAP_TXCSUM) | ||||
| if_togglecapenable(ifp, IFCAP_TXCSUM); | if_togglecapenable(ifp, IFCAP_TXCSUM); | ||||
| if ((if_getcapenable(ifp) & IFCAP_TXCSUM) != 0) | if ((if_getcapenable(ifp) & IFCAP_TXCSUM) != 0) | ||||
| if_sethwassistbits(ifp, CSUM_IP | CSUM_DELAY_DATA, 0); | if_sethwassistbits(ifp, CSUM_IP | CSUM_DELAY_DATA, 0); | ||||
| else | else | ||||
| if_sethwassistbits(ifp, 0, CSUM_IP | CSUM_DELAY_DATA); | if_sethwassistbits(ifp, 0, CSUM_IP | CSUM_DELAY_DATA); | ||||
| if (mask & IFCAP_TXCSUM_IPV6) | if (mask & IFCAP_TXCSUM_IPV6) | ||||
| if_togglecapenable(ifp, IFCAP_TXCSUM_IPV6); | if_togglecapenable(ifp, IFCAP_TXCSUM_IPV6); | ||||
| ▲ Show 20 Lines • Show All 332 Lines • ▼ Show 20 Lines | dwc_attach(device_t dev) | ||||
| if_setsoftc(ifp, sc); | if_setsoftc(ifp, sc); | ||||
| if_initname(ifp, device_get_name(dev), device_get_unit(dev)); | if_initname(ifp, device_get_name(dev), device_get_unit(dev)); | ||||
| if_setflags(sc->ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST); | if_setflags(sc->ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST); | ||||
| if_setstartfn(ifp, dwc_txstart); | if_setstartfn(ifp, dwc_txstart); | ||||
| if_setioctlfn(ifp, dwc_ioctl); | if_setioctlfn(ifp, dwc_ioctl); | ||||
| if_setinitfn(ifp, dwc_init); | if_setinitfn(ifp, dwc_init); | ||||
| if_setsendqlen(ifp, TX_MAP_COUNT - 1); | if_setsendqlen(ifp, TX_MAP_COUNT - 1); | ||||
| if_setsendqready(sc->ifp); | if_setsendqready(sc->ifp); | ||||
| if_sethwassist(sc->ifp, CSUM_IP | CSUM_DELAY_DATA | CSUM_DELAY_DATA_IPV6); | if_sethwassist(sc->ifp, CSUM_IP | CSUM_DELAY_DATA | CSUM_DELAY_DATA_IPV6); | ||||
| if_setcapabilities(sc->ifp, IFCAP_VLAN_MTU | IFCAP_HWCSUM | IFCAP_TXCSUM_IPV6); | if_setcapabilities(sc->ifp, IFCAP_VLAN_MTU | IFCAP_HWCSUM | IFCAP_HWCSUM_IPV6); | ||||
timo.voelker_fh-muenster.de: After D54754 has been committed, `IFCAP_RXCSUM_IPV6` and `IFCAP_TXCSUM_IPV6` can be exchanged… | |||||
Done Inline Actions
That is the plan... tuexen: > After D54754 has been committed, `IFCAP_RXCSUM_IPV6` and `IFCAP_TXCSUM_IPV6` can be exchanged… | |||||
| if_setcapenable(sc->ifp, if_getcapabilities(sc->ifp)); | if_setcapenable(sc->ifp, if_getcapabilities(sc->ifp)); | ||||
| /* Attach the mii driver. */ | /* Attach the mii driver. */ | ||||
| error = mii_attach(dev, &sc->miibus, ifp, dwc_media_change, | error = mii_attach(dev, &sc->miibus, ifp, dwc_media_change, | ||||
| dwc_media_status, BMSR_DEFCAPMASK, MII_PHY_ANY, | dwc_media_status, BMSR_DEFCAPMASK, MII_PHY_ANY, | ||||
| MII_OFFSET_ANY, 0); | MII_OFFSET_ANY, 0); | ||||
| if (error != 0) { | if (error != 0) { | ||||
| ▲ Show 20 Lines • Show All 79 Lines • Show Last 20 Lines | |||||
After D54754 has been committed, IFCAP_RXCSUM_IPV6 and IFCAP_TXCSUM_IPV6 can be exchanged by IFCAP_HWCSUM_IPV6.