Refreshed all patches.
Removed upstream ramips patch: 0063-set-CM_GCR_BASE_CMDEFTGT_MEM-according-to-datasheet.patch
Compile-tested: ar71xx
Run-tested: ar71xx
Signed-off-by: Etienne Haarsma <bladeoner112@gmail.com>
Tested-by: Stijn Segers <francesco.borromini@inventati.org>
LINUX_RELEASE?=1
LINUX_VERSION-3.18 = .43
-LINUX_VERSION-4.4 = .93
+LINUX_VERSION-4.4 = .102
LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c
-LINUX_KERNEL_HASH-4.4.93 = ed349314f16e78a6571b5f8884f6452782aef6c26b81bcc7ccdac44ecd917c36
+LINUX_KERNEL_HASH-4.4.102 = ede2c22a559e1d894161d53e1d634ee969380a159642aafc0c9c268daf8eaafe
ifdef KERNEL_PATCHVER
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
t = ip6gre_tunnel_lookup(skb->dev, &ipv6h->daddr, &ipv6h->saddr,
key, greh->protocol);
-@@ -479,11 +479,11 @@ static int ip6gre_rcv(struct sk_buff *sk
+@@ -482,11 +482,11 @@ static int ip6gre_rcv(struct sk_buff *sk
offset += 4;
}
if (flags&GRE_KEY) {
offset += 4;
}
}
-@@ -745,7 +745,7 @@ static netdev_tx_t ip6gre_xmit2(struct s
+@@ -748,7 +748,7 @@ static netdev_tx_t ip6gre_xmit2(struct s
if (tunnel->parms.o_flags&GRE_SEQ) {
++tunnel->o_seqno;
ptr--;
}
if (tunnel->parms.o_flags&GRE_KEY) {
-@@ -841,7 +841,7 @@ static inline int ip6gre_xmit_ipv6(struc
+@@ -844,7 +844,7 @@ static inline int ip6gre_xmit_ipv6(struc
dsfield = ipv6_get_dsfield(ipv6h);
if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS)
}
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
-@@ -4975,7 +4975,7 @@ static void port_event(struct usb_hub *h
+@@ -4978,7 +4978,7 @@ static void port_event(struct usb_hub *h
if (portchange & USB_PORT_STAT_C_OVERCURRENT) {
u16 status = 0, unused;
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -6816,8 +6816,6 @@ int alloc_contig_range(unsigned long sta
+@@ -6831,8 +6831,6 @@ int alloc_contig_range(unsigned long sta
/* Make sure the range is really isolated. */
if (test_pages_isolated(outer_start, end, false)) {
.length = SZ_512K,
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
-@@ -564,6 +564,16 @@ config PATA_EP93XX
+@@ -567,6 +567,16 @@ config PATA_EP93XX
If unsure, say N.
/* Set the SP after an empty pt_regs. */
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
-@@ -814,6 +814,10 @@ void __init setup_arch(char **cmdline_p)
+@@ -886,6 +886,10 @@ void __init setup_arch(char **cmdline_p)
unsigned long kernelsp[NR_CPUS];
unsigned long fw_arg0, fw_arg1, fw_arg2, fw_arg3;
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -5357,7 +5357,7 @@ static void __init_refok alloc_node_mem_
+@@ -5372,7 +5372,7 @@ static void __init_refok alloc_node_mem_
mem_map = NODE_DATA(0)->node_mem_map;
#if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
--- a/include/uapi/linux/spi/spidev.h
+++ b/include/uapi/linux/spi/spidev.h
-@@ -111,7 +111,7 @@ struct spi_ioc_transfer {
+@@ -112,7 +112,7 @@ struct spi_ioc_transfer {
/* not all platforms use <asm-generic/ioctl.h> or _IOC_TYPECHECK() ... */
#define SPI_MSGSIZE(N) \
#define PACKET_FANOUT_LB 1
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
-@@ -1776,6 +1776,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1784,6 +1784,7 @@ static int packet_rcv_spkt(struct sk_buf
{
struct sock *sk;
struct sockaddr_pkt *spkt;
/*
* When we registered the protocol we saved the socket in the data
-@@ -1783,6 +1784,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1791,6 +1792,7 @@ static int packet_rcv_spkt(struct sk_buf
*/
sk = pt->af_packet_priv;
/*
* Yank back the headers [hope the device set this
-@@ -1795,7 +1797,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1803,7 +1805,7 @@ static int packet_rcv_spkt(struct sk_buf
* so that this procedure is noop.
*/
goto out;
if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -1998,12 +2000,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -2006,12 +2008,12 @@ static int packet_rcv(struct sk_buff *sk
int skb_len = skb->len;
unsigned int snaplen, res;
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -2123,12 +2125,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -2131,12 +2133,12 @@ static int tpacket_rcv(struct sk_buff *s
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -3115,6 +3117,7 @@ static int packet_create(struct net *net
+@@ -3127,6 +3129,7 @@ static int packet_create(struct net *net
mutex_init(&po->pg_vec_lock);
po->rollover = NULL;
po->prot_hook.func = packet_rcv;
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
-@@ -3744,6 +3747,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3756,6 +3759,16 @@ packet_setsockopt(struct socket *sock, i
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
return 0;
}
default:
return -ENOPROTOOPT;
}
-@@ -3796,6 +3809,13 @@ static int packet_getsockopt(struct sock
+@@ -3809,6 +3822,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;
* @phydev: the phy_device struct
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -800,6 +800,7 @@ void phy_start_machine(struct phy_device
+@@ -796,6 +796,7 @@ void phy_start_machine(struct phy_device
void phy_stop_machine(struct phy_device *phydev);
int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd);
int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd);
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -501,6 +501,12 @@ struct phy_driver {
+@@ -497,6 +497,12 @@ struct phy_driver {
/* Determines the negotiated speed and duplex */
int (*read_status)(struct phy_device *phydev);
phy_suspend(phydev);
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -519,6 +519,12 @@ struct phy_driver {
+@@ -515,6 +515,12 @@ struct phy_driver {
*/
int (*did_interrupt)(struct phy_device *phydev);
phy_device_free(phydev);
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -839,6 +839,23 @@ void mdio_bus_exit(void);
+@@ -835,6 +835,23 @@ void mdio_bus_exit(void);
extern struct bus_type mdio_bus_type;
}
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
-@@ -1553,10 +1553,12 @@ static int __init setup_vmstat(void)
+@@ -1555,10 +1555,12 @@ static int __init setup_vmstat(void)
cpu_notifier_register_done();
#endif
#ifdef CONFIG_PROC_FS
goto err;
--- a/net/core/sock.c
+++ b/net/core/sock.c
-@@ -3042,6 +3042,8 @@ static __net_initdata struct pernet_oper
+@@ -3044,6 +3044,8 @@ static __net_initdata struct pernet_oper
static int __init proto_init(void)
{
--- a/drivers/net/ethernet/intel/igb/e1000_82575.c
+++ b/drivers/net/ethernet/intel/igb/e1000_82575.c
-@@ -2154,7 +2154,7 @@ static s32 igb_read_phy_reg_82580(struct
+@@ -2165,7 +2165,7 @@ static s32 igb_read_phy_reg_82580(struct
if (ret_val)
goto out;
hw->phy.ops.release(hw);
-@@ -2179,7 +2179,7 @@ static s32 igb_write_phy_reg_82580(struc
+@@ -2190,7 +2190,7 @@ static s32 igb_write_phy_reg_82580(struc
if (ret_val)
goto out;
--- a/drivers/net/ethernet/intel/igb/e1000_82575.c
+++ b/drivers/net/ethernet/intel/igb/e1000_82575.c
-@@ -613,13 +613,25 @@ static s32 igb_get_invariants_82575(stru
+@@ -624,13 +624,25 @@ static s32 igb_get_invariants_82575(stru
switch (link_mode) {
case E1000_CTRL_EXT_LINK_MODE_1000BASE_KX:
hw->phy.media_type = e1000_media_type_internal_serdes;
}
/* fall through for I2C based SGMII */
case E1000_CTRL_EXT_LINK_MODE_PCIE_SERDES:
-@@ -636,8 +648,11 @@ static s32 igb_get_invariants_82575(stru
+@@ -647,8 +659,11 @@ static s32 igb_get_invariants_82575(stru
hw->phy.media_type = e1000_media_type_copper;
dev_spec->sgmii_active = true;
}
/* start the watchdog. */
hw->mac.get_link_status = 1;
schedule_work(&adapter->watchdog_task);
-@@ -7102,21 +7240,41 @@ void igb_alloc_rx_buffers(struct igb_rin
+@@ -7104,21 +7242,41 @@ void igb_alloc_rx_buffers(struct igb_rin
static int igb_mii_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd)
{
struct igb_adapter *adapter = netdev_priv(netdev);
#define DSA_MAX_SWITCHES 4
--- a/net/dsa/Kconfig
+++ b/net/dsa/Kconfig
-@@ -26,6 +26,9 @@ config NET_DSA_HWMON
+@@ -27,6 +27,9 @@ config NET_DSA_HWMON
via the hwmon sysfs interface and exposes the onboard sensors.
# tagging formats
}
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -377,6 +377,7 @@ struct phy_device {
+@@ -373,6 +373,7 @@ struct phy_device {
bool is_pseudo_fixed_link;
bool has_fixups;
bool suspended;
}
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -377,6 +377,7 @@ struct phy_device {
+@@ -373,6 +373,7 @@ struct phy_device {
bool is_pseudo_fixed_link;
bool has_fixups;
bool suspended;
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -433,6 +433,7 @@ struct phy_device {
+@@ -429,6 +429,7 @@ struct phy_device {
u8 mdix;
case PHY_##_state: \
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -816,6 +816,7 @@ int phy_ethtool_gset(struct phy_device *
+@@ -812,6 +812,7 @@ int phy_ethtool_gset(struct phy_device *
int phy_ethtool_ioctl(struct phy_device *phydev, void *useraddr);
int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd);
int phy_start_interrupts(struct phy_device *phydev);
+MODULE_LICENSE("GPL");
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -147,6 +147,7 @@ static inline const char *phy_modes(phy_
+@@ -143,6 +143,7 @@ static inline const char *phy_modes(phy_
#define MII_ADDR_C45 (1<<30)
struct device;
struct sk_buff;
/*
-@@ -429,6 +430,7 @@ struct phy_device {
+@@ -425,6 +426,7 @@ struct phy_device {
struct mutex lock;
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
-@@ -429,6 +429,13 @@ config SATA_VITESSE
+@@ -432,6 +432,13 @@ config SATA_VITESSE
If unsure, say N.
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
-@@ -696,7 +696,6 @@ static void __init arch_mem_init(char **
+@@ -768,7 +768,6 @@ static void __init arch_mem_init(char **
crashk_res.end - crashk_res.start + 1,
BOOTMEM_DEFAULT);
#endif
sparse_init();
plat_swiotlb_setup();
paging_init();
-@@ -809,6 +808,7 @@ void __init setup_arch(char **cmdline_p)
+@@ -881,6 +880,7 @@ void __init setup_arch(char **cmdline_p)
prefill_possible_map();
cpu_cache_init();
}
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
-@@ -377,6 +377,7 @@ struct phy_device {
+@@ -373,6 +373,7 @@ struct phy_device {
bool is_pseudo_fixed_link;
bool has_fixups;
bool suspended;
+++ /dev/null
---- a/arch/mips/include/asm/mips-cm.h
-+++ b/arch/mips/include/asm/mips-cm.h
-@@ -238,8 +238,7 @@ BUILD_CM_Cx_R_(tcid_8_priority, 0x80)
- #define CM_GCR_BASE_GCRBASE_MSK (_ULCAST_(0x1ffff) << 15)
- #define CM_GCR_BASE_CMDEFTGT_SHF 0
- #define CM_GCR_BASE_CMDEFTGT_MSK (_ULCAST_(0x3) << 0)
--#define CM_GCR_BASE_CMDEFTGT_DISABLED 0
--#define CM_GCR_BASE_CMDEFTGT_MEM 1
-+#define CM_GCR_BASE_CMDEFTGT_MEM 0
- #define CM_GCR_BASE_CMDEFTGT_IOCU0 2
- #define CM_GCR_BASE_CMDEFTGT_IOCU1 3
-
--- a/drivers/clocksource/cs5535-clockevt.c
+++ b/drivers/clocksource/cs5535-clockevt.c
-@@ -129,7 +129,8 @@ static irqreturn_t mfgpt_tick(int irq, v
+@@ -130,7 +130,8 @@ static irqreturn_t mfgpt_tick(int irq, v
cs5535_mfgpt_write(cs5535_event_clock, MFGPT_REG_SETUP,
MFGPT_SETUP_CNTEN | MFGPT_SETUP_CMP2);