From 781c0004e3f634ba931e588cc5af49f1268a95e5 Mon Sep 17 00:00:00 2001 From: Dominik Sliwa Date: Tue, 18 Sep 2018 17:35:14 +0200 Subject: mt7601u: compile on tegra 3.1 and 3.10 kernels Signed-off-by: Dominik Sliwa --- backport-include/linux/of_device.h | 5 +++ compat/backport-4.12.c | 65 +++++++++++++++++++++++++++++ drivers/net/wireless/mediatek/mt7601u/dma.c | 5 --- drivers/net/wireless/mediatek/mt7601u/mac.c | 3 -- drivers/net/wireless/mediatek/mt7601u/mcu.c | 13 ------ drivers/net/wireless/mediatek/mt7601u/phy.c | 9 ---- drivers/net/wireless/mediatek/mt7601u/tx.c | 1 - drivers/net/wireless/mediatek/mt7601u/usb.c | 5 --- 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 +#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; } -- cgit v1.2.3