From 3b08966d99ae0c8e21aca14504e58b0c916b98f1 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 12 Jul 2019 15:51:58 +0200 Subject: [PATCH] Revert "mt76: usb: use full intermediate buffer in mt76u_copy" This reverts commit 5e1e5b75d6e8bfac7f4f30ca03d09f27e206227d. --- usb.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/usb.c b/usb.c index d8c755d4..d73fe3f2 100644 --- a/usb.c +++ b/usb.c @@ -160,24 +160,19 @@ static void mt76u_copy(struct mt76_dev *dev, u32 offset, const void *data, int len) { struct mt76_usb *usb = &dev->usb; - int ret, req_len; + const u32 *val = data; + int i, ret; mutex_lock(&usb->usb_ctrl_mtx); - do { - req_len = min_t(int, len, sizeof(usb->data)); - - memcpy(usb->data, data, req_len); - + for (i = 0; i < DIV_ROUND_UP(len, 4); i++) { + put_unaligned(val[i], usb->data); ret = __mt76u_vendor_request(dev, MT_VEND_MULTI_WRITE, USB_DIR_OUT | USB_TYPE_VENDOR, - 0, offset, usb->data, req_len); + 0, offset + i * 4, usb->data, + sizeof(u32)); if (ret < 0) break; - - data += req_len; - offset += req_len; - len -= req_len; - } while (len > 0); + } mutex_unlock(&usb->usb_ctrl_mtx); }