DHDAXCW-Rockchip-OpenWrt/package/firmware/quantenna/patches/050-quantenna-pcie2-k5.4.patch

145 lines
4.9 KiB
Diff

diff -Naur quantenna_gpl_v37.3.2.44/drivers/pcie2/host/common/qdpc_init.c quantenna_gpl_v37.3.2.44-mod/drivers/pcie2/host/common/qdpc_init.c
--- quantenna_gpl_v37.3.2.44/drivers/pcie2/host/common/qdpc_init.c 2018-03-16 15:08:37.000000000 +0200
+++ quantenna_gpl_v37.3.2.44-mod/drivers/pcie2/host/common/qdpc_init.c 2020-08-02 08:47:22.352332685 +0300
@@ -691,7 +691,7 @@
/* add code to reboot the while QCA system here*/
printk("%s: Attempting to reboot QCA system.\n", __func__);
- machine_restart(NULL);
+ emergency_restart();
break;
}
msleep(500);
diff -Naur quantenna_gpl_v37.3.2.44/drivers/pcie2/host/common/qdpc_init.h quantenna_gpl_v37.3.2.44-mod/drivers/pcie2/host/common/qdpc_init.h
--- quantenna_gpl_v37.3.2.44/drivers/pcie2/host/common/qdpc_init.h 2018-03-16 15:08:37.000000000 +0200
+++ quantenna_gpl_v37.3.2.44-mod/drivers/pcie2/host/common/qdpc_init.h 2020-08-02 07:38:28.814212107 +0300
@@ -42,6 +42,8 @@
#define QDPC_ROW_INCR_OFFSET 0x04
#undef QDPC_CS_DEBUG
+#define mmiowb() do { } while (0)
+
extern unsigned int (*qdpc_pci_readl)(void *addr);
extern void (*qdpc_pci_writel)(unsigned int val, void *addr);
diff -Naur quantenna_gpl_v37.3.2.44/drivers/pcie2/host/common/qdpc_pcie.c quantenna_gpl_v37.3.2.44-mod/drivers/pcie2/host/common/qdpc_pcie.c
--- quantenna_gpl_v37.3.2.44/drivers/pcie2/host/common/qdpc_pcie.c 2018-03-16 15:08:37.000000000 +0200
+++ quantenna_gpl_v37.3.2.44-mod/drivers/pcie2/host/common/qdpc_pcie.c 2020-08-02 07:42:31.174353547 +0300
@@ -29,7 +29,7 @@
#include <asm/byteorder.h>
#include <linux/pci.h>
#include <linux/moduleparam.h>
-#include <asm-generic/pci-dma-compat.h>
+#include <linux/pci-dma-compat.h>
#include <linux/module.h>
#include "qdpc_config.h"
diff -Naur quantenna_gpl_v37.3.2.44/drivers/pcie2/host/common/topaz_vnet.c quantenna_gpl_v37.3.2.44-mod/drivers/pcie2/host/common/topaz_vnet.c
--- quantenna_gpl_v37.3.2.44/drivers/pcie2/host/common/topaz_vnet.c 2018-03-16 15:08:37.000000000 +0200
+++ quantenna_gpl_v37.3.2.44-mod/drivers/pcie2/host/common/topaz_vnet.c 2020-08-05 10:40:48.405527180 +0300
@@ -21,6 +21,8 @@
#define EXPORT_SYMTAB
#endif
+#define NET_NAME_USER 3 /* provided by user-space */
+
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/string.h>
@@ -50,13 +52,13 @@
#include "qdpc_init.h"
#include "qdpc_debug.h"
#include "qdpc_regs.h"
-#include "nss_api_if.h"
+//#include "nss_api_if.h"
#include "qdpc_version.h"
#define DRV_NAME "qdpc-host"
#ifndef DRV_VERSION
-#define DRV_VERSION "1.0"
+#define DRV_VERSION "1.0-k5.4-openwrt-nonss-tc"
#endif
#define DRV_AUTHOR "Quantenna Communications Inc."
@@ -73,8 +75,6 @@
static int __sram_text skb2rbd_attach(struct net_device *ndev, uint16_t i, uint32_t wrap);
static irqreturn_t vmac_interrupt(int irq, void *dev_id);
static void vmac_tx_timeout(struct net_device *ndev);
-static int vmac_get_settings(struct net_device *ndev, struct ethtool_cmd *cmd);
-static int vmac_set_settings(struct net_device *ndev, struct ethtool_cmd *cmd);
static void vmac_get_drvinfo(struct net_device *ndev, struct ethtool_drvinfo *info);
static void free_tx_skbs(struct vmac_priv *vmp);
static void init_tx_bd(struct vmac_priv *vmp);
@@ -824,7 +824,7 @@
dump_rx_bd(vmp);
- ndev->last_rx = jiffies;
+ netif_trans_update(ndev);
/*
* We are done with the current buffer attached to this descriptor, so attach a new
@@ -1180,7 +1180,7 @@
inline static void vmac_tx_timeout(struct net_device *ndev)
{
printk(KERN_ERR "%s: vmac_tx_timeout: ndev=%p\n", ndev->name, ndev);
- ndev->trans_start = jiffies;
+ netif_trans_update(ndev);
}
#ifdef RC_TXDONE_TIMER
@@ -1202,21 +1202,6 @@
}
#endif
-/* ethtools support */
-static int vmac_get_settings(struct net_device *ndev, struct ethtool_cmd *cmd)
-{
- return -EINVAL;
-}
-
-static int vmac_set_settings(struct net_device *ndev, struct ethtool_cmd *cmd)
-{
-
- if (!capable(CAP_NET_ADMIN))
- return -EPERM;
-
- return -EINVAL;
-}
-
static int vmac_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd)
{
return -EINVAL;
@@ -1233,13 +1218,6 @@
info->regdump_len = 0;
}
-static const struct ethtool_ops vmac_ethtool_ops = {
- .get_settings = vmac_get_settings,
- .set_settings = vmac_set_settings,
- .get_drvinfo = vmac_get_drvinfo,
- .get_link = ethtool_op_get_link,
-};
-
static const struct net_device_ops vmac_device_ops = {
.ndo_open = vmac_open,
.ndo_stop = vmac_close,
@@ -1254,7 +1232,7 @@
struct net_device * ndev;
/* Allocate device structure */
- ndev = alloc_netdev(sizeof(struct vmac_priv), vmaccfg.ifname, ether_setup);
+ ndev = alloc_netdev(sizeof(struct vmac_priv), vmaccfg.ifname, NET_NAME_USER ,ether_setup);
if(!ndev)
printk(KERN_ERR "%s: alloc_etherdev failed\n", vmaccfg.ifname);
@@ -1297,7 +1275,6 @@
ndev->netdev_ops = &vmac_device_ops;
ndev->tx_queue_len = QTN_GLOBAL_INIT_EMAC_TX_QUEUE_LEN;
- SET_ETHTOOL_OPS(ndev, &vmac_ethtool_ops);
/* Initialize private data */
vmp = netdev_priv(ndev);