summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Sliwa <dominik.sliwa@toradex.com>2018-09-18 17:35:14 +0200
committerDominik Sliwa <dominik.sliwa@toradex.com>2018-09-18 17:55:35 +0200
commit781c0004e3f634ba931e588cc5af49f1268a95e5 (patch)
tree066fc8b3965754aed69e5782c11fa5f7291676c8
parent69ff0b5709d0d06545fcb2d08c7645b56d3687dd (diff)
mt7601u: compile on tegra 3.1 and 3.10 kernels
Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
-rw-r--r--backport-include/linux/of_device.h5
-rw-r--r--compat/backport-4.12.c65
-rw-r--r--drivers/net/wireless/mediatek/mt7601u/dma.c5
-rw-r--r--drivers/net/wireless/mediatek/mt7601u/mac.c3
-rw-r--r--drivers/net/wireless/mediatek/mt7601u/mcu.c13
-rw-r--r--drivers/net/wireless/mediatek/mt7601u/phy.c9
-rw-r--r--drivers/net/wireless/mediatek/mt7601u/tx.c1
-rw-r--r--drivers/net/wireless/mediatek/mt7601u/usb.c5
8 files changed, 70 insertions, 36 deletions
diff --git a/backport-include/linux/of_device.h b/backport-include/linux/of_device.h
index 9f621c6..bd33a98 100644
--- a/backport-include/linux/of_device.h
+++ b/backport-include/linux/of_device.h
@@ -4,6 +4,11 @@
#include <linux/version.h>
+#if LINUX_VERSION_IS_LESS(4,4,0)
+int bp_of_device_uevent_modalias(struct device *dev, struct kobj_uevent_env *env);
+#define of_device_uevent_modalias bp_of_device_uevent_modalias
+#endif
+
#if LINUX_VERSION_IS_LESS(4,12,0)
ssize_t bp_of_device_modalias(struct device *dev, char *str, ssize_t len);
#define of_device_modalias bp_of_device_modalias
diff --git a/compat/backport-4.12.c b/compat/backport-4.12.c
index 8f3e5ab..5cab315 100644
--- a/compat/backport-4.12.c
+++ b/compat/backport-4.12.c
@@ -280,12 +280,77 @@ int bp_extack_genl_unregister_family(struct genl_family *family)
EXPORT_SYMBOL_GPL(bp_extack_genl_unregister_family);
#ifdef CONFIG_OF
+#if LINUX_VERSION_IS_LESS(4,4,0)
+static ssize_t bp_of_device_get_modalias(struct device *dev, char *str, ssize_t len)
+{
+ const char *compat;
+ char *c;
+ struct property *p;
+ ssize_t csize;
+ ssize_t tsize;
+
+ if ((!dev) || (!dev->of_node))
+ return -ENODEV;
+
+ /* Name & Type */
+ csize = snprintf(str, len, "of:N%sT%s", dev->of_node->name,
+ dev->of_node->type);
+ tsize = csize;
+ len -= csize;
+ if (str)
+ str += csize;
+
+ of_property_for_each_string(dev->of_node, "compatible", p, compat) {
+ csize = strlen(compat) + 1;
+ tsize += csize;
+ if (csize > len)
+ continue;
+
+ csize = snprintf(str, len, "C%s", compat);
+ for (c = str; c; ) {
+ c = strchr(c, ' ');
+ if (c)
+ *c++ = '_';
+ }
+ len -= csize;
+ str += csize;
+ }
+
+ return tsize;
+}
+
+int bp_of_device_uevent_modalias(struct device *dev, struct kobj_uevent_env *env)
+{
+ int sl;
+
+ if ((!dev) || (!dev->of_node))
+ return -ENODEV;
+
+ /* Devicetree modalias is tricky, we add it in 2 steps */
+ if (add_uevent_var(env, "MODALIAS="))
+ return -ENOMEM;
+
+ sl = bp_of_device_get_modalias(dev, &env->buf[env->buflen-1],
+ sizeof(env->buf) - env->buflen);
+ if (sl >= (sizeof(env->buf) - env->buflen))
+ return -ENOMEM;
+ env->buflen += sl;
+
+ return 0;
+}
+EXPORT_SYMBOL_GPL(bp_of_device_uevent_modalias);
+#endif
+
/**
* of_device_modalias - Fill buffer with newline terminated modalias string
*/
ssize_t bp_of_device_modalias(struct device *dev, char *str, ssize_t len)
{
+#if LINUX_VERSION_IS_LESS(4,4,0)
+ ssize_t sl = bp_of_device_get_modalias(dev, str, len - 2);
+#else
ssize_t sl = of_device_get_modalias(dev, str, len - 2);
+#endif
if (sl < 0)
return sl;
if (sl > len - 2)
diff --git a/drivers/net/wireless/mediatek/mt7601u/dma.c b/drivers/net/wireless/mediatek/mt7601u/dma.c
index 7f3e398..29b2e5d 100644
--- a/drivers/net/wireless/mediatek/mt7601u/dma.c
+++ b/drivers/net/wireless/mediatek/mt7601u/dma.c
@@ -155,9 +155,6 @@ mt7601u_rx_process_entry(struct mt7601u_dev *dev, struct mt7601u_dma_buf_rx *e)
cnt++;
}
- if (cnt > 1)
- trace_mt_rx_dma_aggr(dev, cnt, !!new_p);
-
if (new_p) {
/* we have one extra ref from the allocator */
__free_pages(e->p, MT_RX_ORDER);
@@ -236,7 +233,6 @@ static void mt7601u_complete_tx(struct urb *urb)
goto out;
skb = q->e[q->start].skb;
- trace_mt_tx_dma_done(dev, skb);
__skb_queue_tail(&dev->tx_skb_done, skb);
tasklet_schedule(&dev->tx_tasklet);
@@ -391,7 +387,6 @@ static int mt7601u_submit_rx_buf(struct mt7601u_dev *dev,
usb_fill_bulk_urb(e->urb, usb_dev, pipe, buf, MT_RX_URB_SIZE,
mt7601u_complete_rx, dev);
- trace_mt_submit_urb(dev, e->urb);
ret = usb_submit_urb(e->urb, gfp);
if (ret)
dev_err(dev->dev, "Error: submit RX URB failed:%d\n", ret);
diff --git a/drivers/net/wireless/mediatek/mt7601u/mac.c b/drivers/net/wireless/mediatek/mt7601u/mac.c
index 148c36d..b081749 100644
--- a/drivers/net/wireless/mediatek/mt7601u/mac.c
+++ b/drivers/net/wireless/mediatek/mt7601u/mac.c
@@ -547,7 +547,6 @@ int mt76_mac_wcid_set_key(struct mt7601u_dev *dev, u8 idx,
if (cipher == MT_CIPHER_NONE && key)
return -EINVAL;
- trace_set_key(dev, idx);
mt7601u_wr_copy(dev, MT_WCID_KEY(idx), key_data, sizeof(key_data));
@@ -587,8 +586,6 @@ int mt76_mac_shared_key_setup(struct mt7601u_dev *dev, u8 vif_idx, u8 key_idx,
if (cipher == MT_CIPHER_NONE && key)
return -EINVAL;
- trace_set_shared_key(dev, vif_idx, key_idx);
-
mt7601u_wr_copy(dev, MT_SKEY(vif_idx, key_idx),
key_data, sizeof(key_data));
diff --git a/drivers/net/wireless/mediatek/mt7601u/mcu.c b/drivers/net/wireless/mediatek/mt7601u/mcu.c
index 61705f6..09fabc4 100644
--- a/drivers/net/wireless/mediatek/mt7601u/mcu.c
+++ b/drivers/net/wireless/mediatek/mt7601u/mcu.c
@@ -47,17 +47,6 @@ static inline void mt7601u_dma_skb_wrap_cmd(struct sk_buff *skb,
FIELD_PREP(MT_TXD_CMD_INFO_TYPE, cmd)));
}
-static inline void trace_mt_mcu_msg_send_cs(struct mt7601u_dev *dev,
- struct sk_buff *skb, bool need_resp)
-{
- u32 i, csum = 0;
-
- for (i = 0; i < skb->len / 4; i++)
- csum ^= get_unaligned_le32(skb->data + i * 4);
-
- trace_mt_mcu_msg_send(dev, skb, csum, need_resp);
-}
-
static struct sk_buff *mt7601u_mcu_msg_alloc(const void *data, int len)
{
struct sk_buff *skb;
@@ -138,8 +127,6 @@ mt7601u_mcu_msg_send(struct mt7601u_dev *dev, struct sk_buff *skb,
if (dev->mcu.resp_cmpl.done)
dev_err(dev->dev, "Error: MCU response pre-completed!\n");
- trace_mt_mcu_msg_send_cs(dev, skb, wait_resp);
- trace_mt_submit_urb_sync(dev, cmd_pipe, skb->len);
ret = usb_bulk_msg(usb_dev, cmd_pipe, skb->data, skb->len, &sent, 500);
if (ret) {
dev_err(dev->dev, "Error: send MCU cmd failed:%d\n", ret);
diff --git a/drivers/net/wireless/mediatek/mt7601u/phy.c b/drivers/net/wireless/mediatek/mt7601u/phy.c
index b804abd..f8be471 100644
--- a/drivers/net/wireless/mediatek/mt7601u/phy.c
+++ b/drivers/net/wireless/mediatek/mt7601u/phy.c
@@ -47,7 +47,6 @@ mt7601u_rf_wr(struct mt7601u_dev *dev, u8 bank, u8 offset, u8 value)
FIELD_PREP(MT_RF_CSR_CFG_REG_ID, offset) |
MT_RF_CSR_CFG_WR |
MT_RF_CSR_CFG_KICK);
- trace_rf_write(dev, bank, offset, value);
out:
mutex_unlock(&dev->reg_atomic_mutex);
@@ -87,7 +86,6 @@ mt7601u_rf_rr(struct mt7601u_dev *dev, u8 bank, u8 offset)
if (FIELD_GET(MT_RF_CSR_CFG_REG_ID, val) == offset &&
FIELD_GET(MT_RF_CSR_CFG_REG_BANK, val) == bank) {
ret = FIELD_GET(MT_RF_CSR_CFG_DATA, val);
- trace_rf_read(dev, bank, offset, ret);
}
out:
mutex_unlock(&dev->reg_atomic_mutex);
@@ -144,7 +142,6 @@ static void mt7601u_bbp_wr(struct mt7601u_dev *dev, u8 offset, u8 val)
FIELD_PREP(MT_BBP_CSR_CFG_VAL, val) |
FIELD_PREP(MT_BBP_CSR_CFG_REG_NUM, offset) |
MT_BBP_CSR_CFG_RW_MODE | MT_BBP_CSR_CFG_BUSY);
- trace_bbp_write(dev, offset, val);
out:
mutex_unlock(&dev->reg_atomic_mutex);
}
@@ -175,7 +172,6 @@ static int mt7601u_bbp_rr(struct mt7601u_dev *dev, u8 offset)
val = mt7601u_rr(dev, MT_BBP_CSR_CFG);
if (FIELD_GET(MT_BBP_CSR_CFG_REG_NUM, val) == offset) {
ret = FIELD_GET(MT_BBP_CSR_CFG_VAL, val);
- trace_bbp_read(dev, offset, ret);
}
out:
mutex_unlock(&dev->reg_atomic_mutex);
@@ -315,7 +311,6 @@ static int mt7601u_bbp_temp(struct mt7601u_dev *dev, int mode, const char *name)
return 0;
dev->temp_mode = mode;
- trace_temp_mode(dev, mode);
t = bbp_mode_table[dev->temp_mode];
ret = mt7601u_write_reg_pairs(dev, MT_MCU_MEMMAP_BBP,
@@ -531,7 +526,6 @@ static s8 mt7601u_read_bootup_temp(struct mt7601u_dev *dev)
mt7601u_wr(dev, MT_RF_SETTING_0, rf_set);
mt7601u_wr(dev, MT_RF_BYPASS_0, rf_bp);
- trace_read_temp(dev, temp);
return temp;
}
@@ -549,7 +543,6 @@ static s8 mt7601u_read_temp(struct mt7601u_dev *dev)
temp = mt7601u_bbp_r47_get(dev, val, BBP_R47_F_TEMP);
- trace_read_temp(dev, temp);
return temp;
}
@@ -1025,7 +1018,6 @@ __mt7601u_phy_freq_cal(struct mt7601u_dev *dev, s8 last_offset, u8 phy_mode)
{
u8 activate_threshold, deactivate_threshold;
- trace_freq_cal_offset(dev, phy_mode, last_offset);
/* No beacons received - reschedule soon */
if (last_offset == MT_FREQ_OFFSET_INVALID)
@@ -1070,7 +1062,6 @@ __mt7601u_phy_freq_cal(struct mt7601u_dev *dev, s8 last_offset, u8 phy_mode)
dev->freq_cal.adjusting = false;
}
- trace_freq_cal_adjust(dev, dev->freq_cal.freq);
mt7601u_rf_wr(dev, 0, 12, dev->freq_cal.freq);
mt7601u_vco_cal(dev);
diff --git a/drivers/net/wireless/mediatek/mt7601u/tx.c b/drivers/net/wireless/mediatek/mt7601u/tx.c
index 3600e91..659881c 100644
--- a/drivers/net/wireless/mediatek/mt7601u/tx.c
+++ b/drivers/net/wireless/mediatek/mt7601u/tx.c
@@ -251,7 +251,6 @@ void mt7601u_tx_stat(struct work_struct *work)
cleaned++;
}
- trace_mt_tx_status_cleaned(dev, cleaned);
spin_lock_irqsave(&dev->tx_lock, flags);
if (cleaned)
diff --git a/drivers/net/wireless/mediatek/mt7601u/usb.c b/drivers/net/wireless/mediatek/mt7601u/usb.c
index 2927e3d..fe1c40b 100644
--- a/drivers/net/wireless/mediatek/mt7601u/usb.c
+++ b/drivers/net/wireless/mediatek/mt7601u/usb.c
@@ -77,7 +77,6 @@ int mt7601u_usb_submit_buf(struct mt7601u_dev *dev, int dir, int ep_idx,
buf->urb->transfer_dma = buf->dma;
buf->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
- trace_mt_submit_urb(dev, buf->urb);
ret = usb_submit_urb(buf->urb, gfp);
if (ret)
dev_err(dev->dev, "Error: submit URB dir:%d ep:%d failed:%d\n",
@@ -106,8 +105,6 @@ int mt7601u_vendor_request(struct mt7601u_dev *dev, const u8 req,
ret = usb_control_msg(usb_dev, pipe, req, req_type,
val, offset, buf, buflen,
MT_VEND_REQ_TOUT_MS);
- trace_mt_vend_req(dev, pipe, req, req_type, val, offset,
- buf, buflen, ret);
if (ret == -ENODEV)
set_bit(MT7601U_STATE_REMOVED, &dev->state);
@@ -145,7 +142,6 @@ static u32 __mt7601u_rr(struct mt7601u_dev *dev, u32 offset)
dev_err(dev->dev, "Error: wrong size read:%d off:%08x\n",
ret, offset);
- trace_reg_read(dev, offset, val);
return val;
}
@@ -169,7 +165,6 @@ static int __mt7601u_vendor_single_wr(struct mt7601u_dev *dev, const u8 req,
if (!ret)
ret = mt7601u_vendor_request(dev, req, USB_DIR_OUT,
val >> 16, offset + 2, NULL, 0);
- trace_reg_write(dev, offset, val);
return ret;
}