Commit 95c3e451 authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Felix Fietkau

mt76: use mt76x02_dev instead of mt76_dev in mt76x02_usb_mcu.c

Use mt76x02_dev data structure as reference in mt76x02_usb_mcu.c
instead of mt76_dev
Signed-off-by: default avatarLorenzo Bianconi <lorenzo.bianconi@redhat.com>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent d87cf75f
...@@ -40,8 +40,7 @@ mt76x0u_upload_firmware(struct mt76x02_dev *dev, ...@@ -40,8 +40,7 @@ mt76x0u_upload_firmware(struct mt76x02_dev *dev,
ilm_len = le32_to_cpu(hdr->ilm_len) - MT_MCU_IVB_SIZE; ilm_len = le32_to_cpu(hdr->ilm_len) - MT_MCU_IVB_SIZE;
dev_dbg(dev->mt76.dev, "loading FW - ILM %u + IVB %u\n", dev_dbg(dev->mt76.dev, "loading FW - ILM %u + IVB %u\n",
ilm_len, MT_MCU_IVB_SIZE); ilm_len, MT_MCU_IVB_SIZE);
err = mt76x02u_mcu_fw_send_data(&dev->mt76, err = mt76x02u_mcu_fw_send_data(dev, fw_payload + MT_MCU_IVB_SIZE,
fw_payload + MT_MCU_IVB_SIZE,
ilm_len, MCU_FW_URB_MAX_PAYLOAD, ilm_len, MCU_FW_URB_MAX_PAYLOAD,
MT_MCU_IVB_SIZE); MT_MCU_IVB_SIZE);
if (err) if (err)
...@@ -49,7 +48,7 @@ mt76x0u_upload_firmware(struct mt76x02_dev *dev, ...@@ -49,7 +48,7 @@ mt76x0u_upload_firmware(struct mt76x02_dev *dev,
dlm_len = le32_to_cpu(hdr->dlm_len); dlm_len = le32_to_cpu(hdr->dlm_len);
dev_dbg(dev->mt76.dev, "loading FW - DLM %u\n", dlm_len); dev_dbg(dev->mt76.dev, "loading FW - DLM %u\n", dlm_len);
err = mt76x02u_mcu_fw_send_data(&dev->mt76, err = mt76x02u_mcu_fw_send_data(dev,
fw_payload + le32_to_cpu(hdr->ilm_len), fw_payload + le32_to_cpu(hdr->ilm_len),
dlm_len, MCU_FW_URB_MAX_PAYLOAD, dlm_len, MCU_FW_URB_MAX_PAYLOAD,
MT_MCU_DLM_OFFSET); MT_MCU_DLM_OFFSET);
...@@ -121,7 +120,7 @@ static int mt76x0u_load_firmware(struct mt76x02_dev *dev) ...@@ -121,7 +120,7 @@ static int mt76x0u_load_firmware(struct mt76x02_dev *dev)
mt76_set(dev, MT_USB_DMA_CFG, mt76_set(dev, MT_USB_DMA_CFG,
(MT_USB_DMA_CFG_RX_BULK_EN | MT_USB_DMA_CFG_TX_BULK_EN) | (MT_USB_DMA_CFG_RX_BULK_EN | MT_USB_DMA_CFG_TX_BULK_EN) |
FIELD_PREP(MT_USB_DMA_CFG_RX_BULK_AGG_TOUT, 0x20)); FIELD_PREP(MT_USB_DMA_CFG_RX_BULK_AGG_TOUT, 0x20));
mt76x02u_mcu_fw_reset(&dev->mt76); mt76x02u_mcu_fw_reset(dev);
usleep_range(5000, 6000); usleep_range(5000, 6000);
/* /*
mt76x0_rmw(dev, MT_PBF_CFG, 0, (MT_PBF_CFG_TX0Q_EN | mt76x0_rmw(dev, MT_PBF_CFG, 0, (MT_PBF_CFG_TX0Q_EN |
......
...@@ -17,11 +17,11 @@ ...@@ -17,11 +17,11 @@
#ifndef __MT76x02_USB_H #ifndef __MT76x02_USB_H
#define __MT76x02_USB_H #define __MT76x02_USB_H
#include "mt76.h" #include "mt76x02.h"
void mt76x02u_init_mcu(struct mt76_dev *dev); void mt76x02u_init_mcu(struct mt76_dev *dev);
void mt76x02u_mcu_fw_reset(struct mt76_dev *dev); void mt76x02u_mcu_fw_reset(struct mt76x02_dev *dev);
int mt76x02u_mcu_fw_send_data(struct mt76_dev *dev, const void *data, int mt76x02u_mcu_fw_send_data(struct mt76x02_dev *dev, const void *data,
int data_len, u32 max_payload, u32 offset); int data_len, u32 max_payload, u32 offset);
int mt76x02u_skb_dma_info(struct sk_buff *skb, int port, u32 flags); int mt76x02u_skb_dma_info(struct sk_buff *skb, int port, u32 flags);
......
...@@ -17,8 +17,7 @@ ...@@ -17,8 +17,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/firmware.h> #include <linux/firmware.h>
#include "mt76.h" #include "mt76x02.h"
#include "mt76x02_dma.h"
#include "mt76x02_mcu.h" #include "mt76x02_mcu.h"
#include "mt76x02_usb.h" #include "mt76x02_usb.h"
...@@ -255,16 +254,16 @@ mt76x02u_mcu_rd_rp(struct mt76_dev *dev, u32 base, ...@@ -255,16 +254,16 @@ mt76x02u_mcu_rd_rp(struct mt76_dev *dev, u32 base,
return ret; return ret;
} }
void mt76x02u_mcu_fw_reset(struct mt76_dev *dev) void mt76x02u_mcu_fw_reset(struct mt76x02_dev *dev)
{ {
mt76u_vendor_request(dev, MT_VEND_DEV_MODE, mt76u_vendor_request(&dev->mt76, MT_VEND_DEV_MODE,
USB_DIR_OUT | USB_TYPE_VENDOR, USB_DIR_OUT | USB_TYPE_VENDOR,
0x1, 0, NULL, 0); 0x1, 0, NULL, 0);
} }
EXPORT_SYMBOL_GPL(mt76x02u_mcu_fw_reset); EXPORT_SYMBOL_GPL(mt76x02u_mcu_fw_reset);
static int static int
__mt76x02u_mcu_fw_send_data(struct mt76_dev *dev, struct mt76u_buf *buf, __mt76x02u_mcu_fw_send_data(struct mt76x02_dev *dev, struct mt76u_buf *buf,
const void *fw_data, int len, u32 dst_addr) const void *fw_data, int len, u32 dst_addr)
{ {
u8 *data = sg_virt(&buf->urb->sg[0]); u8 *data = sg_virt(&buf->urb->sg[0]);
...@@ -281,14 +280,14 @@ __mt76x02u_mcu_fw_send_data(struct mt76_dev *dev, struct mt76u_buf *buf, ...@@ -281,14 +280,14 @@ __mt76x02u_mcu_fw_send_data(struct mt76_dev *dev, struct mt76u_buf *buf,
memcpy(data + sizeof(info), fw_data, len); memcpy(data + sizeof(info), fw_data, len);
memset(data + sizeof(info) + len, 0, 4); memset(data + sizeof(info) + len, 0, 4);
mt76u_single_wr(dev, MT_VEND_WRITE_FCE, mt76u_single_wr(&dev->mt76, MT_VEND_WRITE_FCE,
MT_FCE_DMA_ADDR, dst_addr); MT_FCE_DMA_ADDR, dst_addr);
len = roundup(len, 4); len = roundup(len, 4);
mt76u_single_wr(dev, MT_VEND_WRITE_FCE, mt76u_single_wr(&dev->mt76, MT_VEND_WRITE_FCE,
MT_FCE_DMA_LEN, len << 16); MT_FCE_DMA_LEN, len << 16);
buf->len = MT_CMD_HDR_LEN + len + sizeof(info); buf->len = MT_CMD_HDR_LEN + len + sizeof(info);
err = mt76u_submit_buf(dev, USB_DIR_OUT, err = mt76u_submit_buf(&dev->mt76, USB_DIR_OUT,
MT_EP_OUT_INBAND_CMD, MT_EP_OUT_INBAND_CMD,
buf, GFP_KERNEL, buf, GFP_KERNEL,
mt76u_mcu_complete_urb, &cmpl); mt76u_mcu_complete_urb, &cmpl);
...@@ -297,31 +296,31 @@ __mt76x02u_mcu_fw_send_data(struct mt76_dev *dev, struct mt76u_buf *buf, ...@@ -297,31 +296,31 @@ __mt76x02u_mcu_fw_send_data(struct mt76_dev *dev, struct mt76u_buf *buf,
if (!wait_for_completion_timeout(&cmpl, if (!wait_for_completion_timeout(&cmpl,
msecs_to_jiffies(1000))) { msecs_to_jiffies(1000))) {
dev_err(dev->dev, "firmware upload timed out\n"); dev_err(dev->mt76.dev, "firmware upload timed out\n");
usb_kill_urb(buf->urb); usb_kill_urb(buf->urb);
return -ETIMEDOUT; return -ETIMEDOUT;
} }
if (mt76u_urb_error(buf->urb)) { if (mt76u_urb_error(buf->urb)) {
dev_err(dev->dev, "firmware upload failed: %d\n", dev_err(dev->mt76.dev, "firmware upload failed: %d\n",
buf->urb->status); buf->urb->status);
return buf->urb->status; return buf->urb->status;
} }
val = mt76u_rr(dev, MT_TX_CPU_FROM_FCE_CPU_DESC_IDX); val = mt76_rr(dev, MT_TX_CPU_FROM_FCE_CPU_DESC_IDX);
val++; val++;
mt76u_wr(dev, MT_TX_CPU_FROM_FCE_CPU_DESC_IDX, val); mt76_wr(dev, MT_TX_CPU_FROM_FCE_CPU_DESC_IDX, val);
return 0; return 0;
} }
int mt76x02u_mcu_fw_send_data(struct mt76_dev *dev, const void *data, int mt76x02u_mcu_fw_send_data(struct mt76x02_dev *dev, const void *data,
int data_len, u32 max_payload, u32 offset) int data_len, u32 max_payload, u32 offset)
{ {
int err, len, pos = 0, max_len = max_payload - 8; int err, len, pos = 0, max_len = max_payload - 8;
struct mt76u_buf buf; struct mt76u_buf buf;
err = mt76u_buf_alloc(dev, &buf, 1, max_payload, max_payload, err = mt76u_buf_alloc(&dev->mt76, &buf, 1, max_payload, max_payload,
GFP_KERNEL); GFP_KERNEL);
if (err < 0) if (err < 0)
return err; return err;
......
...@@ -137,7 +137,7 @@ static int mt76x2u_mcu_load_rom_patch(struct mt76x02_dev *dev) ...@@ -137,7 +137,7 @@ static int mt76x2u_mcu_load_rom_patch(struct mt76x02_dev *dev)
mt76_wr(dev, MT_VEND_ADDR(CFG, MT_USB_U3DMA_CFG), val); mt76_wr(dev, MT_VEND_ADDR(CFG, MT_USB_U3DMA_CFG), val);
/* vendor reset */ /* vendor reset */
mt76x02u_mcu_fw_reset(&dev->mt76); mt76x02u_mcu_fw_reset(dev);
usleep_range(5000, 10000); usleep_range(5000, 10000);
/* enable FCE to send in-band cmd */ /* enable FCE to send in-band cmd */
...@@ -151,7 +151,7 @@ static int mt76x2u_mcu_load_rom_patch(struct mt76x02_dev *dev) ...@@ -151,7 +151,7 @@ static int mt76x2u_mcu_load_rom_patch(struct mt76x02_dev *dev)
/* FCE skip_fs_en */ /* FCE skip_fs_en */
mt76_wr(dev, MT_FCE_SKIP_FS, 0x3); mt76_wr(dev, MT_FCE_SKIP_FS, 0x3);
err = mt76x02u_mcu_fw_send_data(&dev->mt76, fw->data + sizeof(*hdr), err = mt76x02u_mcu_fw_send_data(dev, fw->data + sizeof(*hdr),
fw->size - sizeof(*hdr), fw->size - sizeof(*hdr),
MCU_ROM_PATCH_MAX_PAYLOAD, MCU_ROM_PATCH_MAX_PAYLOAD,
MT76U_MCU_ROM_PATCH_OFFSET); MT76U_MCU_ROM_PATCH_OFFSET);
...@@ -210,7 +210,7 @@ static int mt76x2u_mcu_load_firmware(struct mt76x02_dev *dev) ...@@ -210,7 +210,7 @@ static int mt76x2u_mcu_load_firmware(struct mt76x02_dev *dev)
dev_info(dev->mt76.dev, "Build Time: %.16s\n", hdr->build_time); dev_info(dev->mt76.dev, "Build Time: %.16s\n", hdr->build_time);
/* vendor reset */ /* vendor reset */
mt76x02u_mcu_fw_reset(&dev->mt76); mt76x02u_mcu_fw_reset(dev);
usleep_range(5000, 10000); usleep_range(5000, 10000);
/* enable USB_DMA_CFG */ /* enable USB_DMA_CFG */
...@@ -230,7 +230,7 @@ static int mt76x2u_mcu_load_firmware(struct mt76x02_dev *dev) ...@@ -230,7 +230,7 @@ static int mt76x2u_mcu_load_firmware(struct mt76x02_dev *dev)
mt76_wr(dev, MT_FCE_SKIP_FS, 0x3); mt76_wr(dev, MT_FCE_SKIP_FS, 0x3);
/* load ILM */ /* load ILM */
err = mt76x02u_mcu_fw_send_data(&dev->mt76, fw->data + sizeof(*hdr), err = mt76x02u_mcu_fw_send_data(dev, fw->data + sizeof(*hdr),
ilm_len, MCU_FW_URB_MAX_PAYLOAD, ilm_len, MCU_FW_URB_MAX_PAYLOAD,
MT76U_MCU_ILM_OFFSET); MT76U_MCU_ILM_OFFSET);
if (err < 0) { if (err < 0) {
...@@ -241,8 +241,7 @@ static int mt76x2u_mcu_load_firmware(struct mt76x02_dev *dev) ...@@ -241,8 +241,7 @@ static int mt76x2u_mcu_load_firmware(struct mt76x02_dev *dev)
/* load DLM */ /* load DLM */
if (mt76xx_rev(dev) >= MT76XX_REV_E3) if (mt76xx_rev(dev) >= MT76XX_REV_E3)
dlm_offset += 0x800; dlm_offset += 0x800;
err = mt76x02u_mcu_fw_send_data(&dev->mt76, err = mt76x02u_mcu_fw_send_data(dev, fw->data + sizeof(*hdr) + ilm_len,
fw->data + sizeof(*hdr) + ilm_len,
dlm_len, MCU_FW_URB_MAX_PAYLOAD, dlm_len, MCU_FW_URB_MAX_PAYLOAD,
dlm_offset); dlm_offset);
if (err < 0) { if (err < 0) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment