diff options
author | 2006-07-19 19:27:30 +0000 | |
---|---|---|
committer | 2006-07-19 19:27:30 +0000 | |
commit | 5cfb09932f774e09036b21493a0a273dcb562ad2 (patch) | |
tree | 5a45f7f5ae3e266d75e5694866f0bfc803afe7d0 /sys/dev/usb/if_rum.c | |
parent | kick ASIC only after clearing STA registers. (diff) | |
download | wireguard-openbsd-5cfb09932f774e09036b21493a0a273dcb562ad2.tar.xz wireguard-openbsd-5cfb09932f774e09036b21493a0a273dcb562ad2.zip |
fix rum_write().
on RT2501USB, registers are 32bit thus the value doesn't fit into the
wValue field (16bit) of a usb_device_request_t structure.
define rum_write() using rum_write_multi(4).
Diffstat (limited to 'sys/dev/usb/if_rum.c')
-rw-r--r-- | sys/dev/usb/if_rum.c | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/sys/dev/usb/if_rum.c b/sys/dev/usb/if_rum.c index e5992831778..e763efbeb2b 100644 --- a/sys/dev/usb/if_rum.c +++ b/sys/dev/usb/if_rum.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_rum.c,v 1.20 2006/07/19 19:23:26 damien Exp $ */ +/* $OpenBSD: if_rum.c,v 1.21 2006/07/19 19:27:30 damien Exp $ */ /*- * Copyright (c) 2005, 2006 Damien Bergamini <damien.bergamini@free.fr> * Copyright (c) 2006 Niall O'Higgins <niallo@openbsd.org> @@ -1435,20 +1435,9 @@ rum_read_multi(struct rum_softc *sc, uint16_t reg, void *buf, int len) void rum_write(struct rum_softc *sc, uint16_t reg, uint32_t val) { - usb_device_request_t req; - usbd_status error; - - req.bmRequestType = UT_WRITE_VENDOR_DEVICE; - req.bRequest = RT2573_WRITE_MAC; - USETW(req.wValue, val); - USETW(req.wIndex, reg); - USETW(req.wLength, 0); + uint32_t tmp = htole32(val); - error = usbd_do_request(sc->sc_udev, &req, NULL); - if (error != 0) { - printf("%s: could not write MAC register: %s\n", - USBDEVNAME(sc->sc_dev), usbd_errstr(error)); - } + rum_write_multi(sc, reg, &tmp, sizeof tmp); } void |