summaryrefslogtreecommitdiffstats
path: root/sys/dev/usb/if_rum.c
diff options
context:
space:
mode:
authordamien <damien@openbsd.org>2006-07-19 19:27:30 +0000
committerdamien <damien@openbsd.org>2006-07-19 19:27:30 +0000
commit5cfb09932f774e09036b21493a0a273dcb562ad2 (patch)
tree5a45f7f5ae3e266d75e5694866f0bfc803afe7d0 /sys/dev/usb/if_rum.c
parentkick ASIC only after clearing STA registers. (diff)
downloadwireguard-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.c17
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