> Extend mt76u_bulk_msg() such it can be used for synchronous bulk reads.
> 
> Signed-off-by: Stanislaw Gruszka <[email protected]>
> ---
>  drivers/net/wireless/mediatek/mt76/mt76.h            | 13 ++++++++++---
>  drivers/net/wireless/mediatek/mt76/mt76x02_usb_mcu.c |  4 ++--
>  2 files changed, 12 insertions(+), 5 deletions(-)
> 

[...]

> @@ -737,8 +738,14 @@ mt76u_bulk_msg(struct mt76_dev *dev, void *data, int 
> len, int timeout)
>       unsigned int pipe;
>       int sent;
>  
> -     pipe = usb_sndbulkpipe(udev, usb->out_ep[MT_EP_OUT_INBAND_CMD]);
> -     return usb_bulk_msg(udev, pipe, data, len, &sent, timeout);
> +     if (actual_len) {
> +             pipe = usb_rcvbulkpipe(udev, usb->in_ep[MT_EP_IN_CMD_RESP]);
> +     } else {
> +             actual_len = &sent;
> +             pipe = usb_sndbulkpipe(udev, usb->out_ep[MT_EP_OUT_INBAND_CMD]);

Hi Stanislaw,

I guess you can drop sent here since even if actual_len is NULL it will be 
managed
by usb_start_wait_urb()

Regards,
Lorenzo

> +     }
> +
> +     return usb_bulk_msg(udev, pipe, data, len, actual_len, timeout);
>  }
>  
>  int mt76u_vendor_request(struct mt76_dev *dev, u8 req,
> diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_usb_mcu.c 
> b/drivers/net/wireless/mediatek/mt76/mt76x02_usb_mcu.c
> index e469e383cb88..f497c8e4332a 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt76x02_usb_mcu.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_usb_mcu.c
> @@ -126,7 +126,7 @@ __mt76x02u_mcu_send_msg(struct mt76_dev *dev, struct 
> sk_buff *skb,
>       if (ret)
>               return ret;
>  
> -     ret = mt76u_bulk_msg(dev, skb->data, skb->len, 500);
> +     ret = mt76u_bulk_msg(dev, skb->data, skb->len, NULL, 500);
>       if (ret)
>               return ret;
>  
> @@ -271,7 +271,7 @@ __mt76x02u_mcu_fw_send_data(struct mt76x02_dev *dev, u8 
> *data,
>  
>       data_len = MT_CMD_HDR_LEN + len + sizeof(info);
>  
> -     err = mt76u_bulk_msg(&dev->mt76, data, data_len, 1000);
> +     err = mt76u_bulk_msg(&dev->mt76, data, data_len, NULL, 1000);
>       if (err) {
>               dev_err(dev->mt76.dev, "firmware upload failed: %d\n", err);
>               return err;
> -- 
> 2.7.5
> 

Reply via email to