mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-19 05:38:00 +00:00
kernel: update 3.10 to 3.10.32
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 39707
This commit is contained in:
parent
6c8300df3d
commit
f677b1bc7e
@ -17,8 +17,8 @@ endif
|
||||
ifeq ($(LINUX_VERSION),3.9.11)
|
||||
LINUX_KERNEL_MD5SUM:=edbf88eb7f7d34dbd5d3887726790755
|
||||
endif
|
||||
ifeq ($(LINUX_VERSION),3.10.28)
|
||||
LINUX_KERNEL_MD5SUM:=789a39e8a381a60e46fe922cb66d77e2
|
||||
ifeq ($(LINUX_VERSION),3.10.32)
|
||||
LINUX_KERNEL_MD5SUM:=58bfaf95f4e23be2d658dab0a7fb9615
|
||||
endif
|
||||
ifeq ($(LINUX_VERSION),3.12.10)
|
||||
LINUX_KERNEL_MD5SUM:=93325074b7b1d7bb76fb7d4348f0aa7a
|
||||
|
@ -13,7 +13,7 @@ FEATURES:=squashfs atm
|
||||
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
|
||||
SUBTARGETS:=generic ac49x
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
};
|
||||
|
||||
/* Uart divisor latch read */
|
||||
@@ -2839,7 +2846,11 @@ static void serial8250_console_putchar(s
|
||||
@@ -2843,7 +2850,11 @@ static void serial8250_console_putchar(s
|
||||
struct uart_8250_port *up =
|
||||
container_of(port, struct uart_8250_port, port);
|
||||
|
||||
|
@ -13,7 +13,7 @@ FEATURES:=mips16
|
||||
CPU_TYPE=34kc
|
||||
SUBTARGETS:=generic nand mikrotik
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
|
||||
--- a/lib/Makefile
|
||||
+++ b/lib/Makefile
|
||||
@@ -89,6 +89,7 @@ obj-$(CONFIG_XZ_DEC) += xz/
|
||||
@@ -90,6 +90,7 @@ obj-$(CONFIG_XZ_DEC) += xz/
|
||||
obj-$(CONFIG_RAID6_PQ) += raid6/
|
||||
obj-$(CONFIG_LZMA_COMPRESS) += lzma/
|
||||
obj-$(CONFIG_LZMA_DECOMPRESS) += lzma/
|
||||
|
@ -40,9 +40,9 @@
|
||||
retval = handshake (ehci, &ehci->regs->command,
|
||||
--- a/drivers/usb/host/ehci.h
|
||||
+++ b/drivers/usb/host/ehci.h
|
||||
@@ -201,6 +201,10 @@ struct ehci_hcd { /* one per controlle
|
||||
unsigned frame_index_bug:1; /* MosChip (AKA NetMos) */
|
||||
@@ -202,6 +202,10 @@ struct ehci_hcd { /* one per controlle
|
||||
unsigned need_oc_pp_cycle:1; /* MPC834X port power */
|
||||
unsigned imx28_write_fix:1; /* For Freescale i.MX28 */
|
||||
unsigned ignore_oc:1;
|
||||
+ unsigned qca_force_host_mode:1;
|
||||
+ unsigned qca_force_16bit_ptw:1; /* force 16 bit UTMI */
|
||||
|
@ -11,7 +11,7 @@ BOARD:=atheros
|
||||
BOARDNAME:=Atheros AR231x/AR5312
|
||||
FEATURES:=squashfs
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
|
@ -12,7 +12,7 @@ BOARDNAME:=Atmel AVR32
|
||||
FEATURES:=squashfs
|
||||
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
|
@ -13,7 +13,7 @@ FEATURES:=squashfs usb pci pcie gpio
|
||||
MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
|
||||
CPU_TYPE:=cortex-a9
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
|
@ -15,7 +15,7 @@ MAINTAINER:=Florian Fainelli <florian@openwrt.org>
|
||||
CPU_TYPE:=arm1176jzf-s
|
||||
CPU_SUBTYPE:=vfp
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
DEFAULT_PACKAGES += brcm2708-gpu-fw kmod-usb-hid kmod-sound-core kmod-sound-arm-bcm2835
|
||||
|
@ -411,7 +411,7 @@
|
||||
+MODULE_ALIAS("platform:" DRV_NAME);
|
||||
--- a/drivers/i2c/busses/Kconfig
|
||||
+++ b/drivers/i2c/busses/Kconfig
|
||||
@@ -344,6 +344,25 @@ config I2C_BCM2835
|
||||
@@ -345,6 +345,25 @@ config I2C_BCM2835
|
||||
This support is also available as a module. If so, the module
|
||||
will be called i2c-bcm2835.
|
||||
|
||||
|
@ -12,7 +12,7 @@ BOARDNAME:=Broadcom BCM947xx/953xx
|
||||
FEATURES:=squashfs usb pcmcia
|
||||
MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
DEFAULT_PACKAGES += swconfig wpad-mini nvram \
|
||||
|
@ -1,26 +0,0 @@
|
||||
From e85583b12b023773b488cf8406f11719a4037461 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Gorski <jogo@openwrt.org>
|
||||
Date: Sun, 1 Dec 2013 16:16:44 +0100
|
||||
Subject: [PATCH 1/2] spi/bcm63xx: don't substract prepend length from total
|
||||
length
|
||||
|
||||
The spi command must include the full message length including any
|
||||
prepended writes, else transfers larger than 256 bytes will be
|
||||
incomplete.
|
||||
|
||||
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
---
|
||||
drivers/spi/spi-bcm63xx.c | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
--- a/drivers/spi/spi-bcm63xx.c
|
||||
+++ b/drivers/spi/spi-bcm63xx.c
|
||||
@@ -180,8 +180,6 @@ static int bcm63xx_txrx_bufs(struct spi_
|
||||
transfer_list);
|
||||
}
|
||||
|
||||
- len -= prepend_len;
|
||||
-
|
||||
init_completion(&bs->done);
|
||||
|
||||
/* Fill in the Message control register */
|
@ -12,7 +12,7 @@ BOARDNAME:=Cavium Networks Econa CNS21xx
|
||||
FEATURES:=squashfs
|
||||
CPU_TYPE:=fa526
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
{USB_DEVICE(0x0af0, 0xd155)},
|
||||
--- a/drivers/usb/storage/unusual_devs.h
|
||||
+++ b/drivers/usb/storage/unusual_devs.h
|
||||
@@ -1259,6 +1259,18 @@ UNUSUAL_DEV( 0x0af0, 0x8304, 0x0000, 0x0
|
||||
@@ -1266,6 +1266,18 @@ UNUSUAL_DEV( 0x0af0, 0x8304, 0x0000, 0x0
|
||||
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||
0 ),
|
||||
|
||||
|
@ -3149,7 +3149,7 @@
|
||||
+module_exit(ovl_exit);
|
||||
--- a/fs/splice.c
|
||||
+++ b/fs/splice.c
|
||||
@@ -1313,6 +1313,7 @@ long do_splice_direct(struct file *in, l
|
||||
@@ -1331,6 +1331,7 @@ long do_splice_direct(struct file *in, l
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -61,10 +61,10 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org>
|
||||
retval = ehci_setup(hcd);
|
||||
--- a/drivers/usb/host/ehci.h
|
||||
+++ b/drivers/usb/host/ehci.h
|
||||
@@ -200,6 +200,7 @@ struct ehci_hcd { /* one per controlle
|
||||
unsigned has_synopsys_hc_bug:1; /* Synopsys HC */
|
||||
@@ -201,6 +201,7 @@ struct ehci_hcd { /* one per controlle
|
||||
unsigned frame_index_bug:1; /* MosChip (AKA NetMos) */
|
||||
unsigned need_oc_pp_cycle:1; /* MPC834X port power */
|
||||
unsigned imx28_write_fix:1; /* For Freescale i.MX28 */
|
||||
+ unsigned ignore_oc:1;
|
||||
|
||||
/* required for usb32 quirk */
|
||||
|
@ -1081,7 +1081,7 @@
|
||||
ifdef CONFIG_FUNCTION_TRACER
|
||||
ORIG_CFLAGS := $(KBUILD_CFLAGS)
|
||||
KBUILD_CFLAGS = $(subst -pg,,$(ORIG_CFLAGS))
|
||||
@@ -77,6 +87,8 @@ obj-$(CONFIG_LZO_COMPRESS) += lzo/
|
||||
@@ -78,6 +88,8 @@ obj-$(CONFIG_LZO_COMPRESS) += lzo/
|
||||
obj-$(CONFIG_LZO_DECOMPRESS) += lzo/
|
||||
obj-$(CONFIG_XZ_DEC) += xz/
|
||||
obj-$(CONFIG_RAID6_PQ) += raid6/
|
||||
|
@ -69,7 +69,7 @@
|
||||
static inline const char *rtn_type(char *buf, size_t len, unsigned int t)
|
||||
--- a/net/ipv4/ipmr.c
|
||||
+++ b/net/ipv4/ipmr.c
|
||||
@@ -181,6 +181,7 @@ static int ipmr_rule_action(struct fib_r
|
||||
@@ -184,6 +184,7 @@ static int ipmr_rule_action(struct fib_r
|
||||
case FR_ACT_UNREACHABLE:
|
||||
return -ENETUNREACH;
|
||||
case FR_ACT_PROHIBIT:
|
||||
@ -91,7 +91,7 @@
|
||||
table = fib6_get_table(net, rule->table);
|
||||
--- a/net/ipv6/ip6mr.c
|
||||
+++ b/net/ipv6/ip6mr.c
|
||||
@@ -166,6 +166,8 @@ static int ip6mr_rule_action(struct fib_
|
||||
@@ -169,6 +169,8 @@ static int ip6mr_rule_action(struct fib_
|
||||
return -ENETUNREACH;
|
||||
case FR_ACT_PROHIBIT:
|
||||
return -EACCES;
|
||||
|
@ -135,7 +135,7 @@
|
||||
|
||||
#include <net/protocol.h>
|
||||
#include <net/dst.h>
|
||||
@@ -471,6 +472,22 @@ struct sk_buff *__netdev_alloc_skb(struc
|
||||
@@ -441,6 +442,22 @@ struct sk_buff *__netdev_alloc_skb(struc
|
||||
}
|
||||
EXPORT_SYMBOL(__netdev_alloc_skb);
|
||||
|
||||
|
@ -14,7 +14,7 @@ CPU_TYPE:=cortex-a9
|
||||
CPU_SUBTYPE:=vfpv3
|
||||
MAINTAINER:=Luka Perkov <luka@openwrt.org>
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
|
@ -47,7 +47,7 @@ Signed-off-by: Jason Cooper <jason@lakedaemon.net>
|
||||
|
||||
--- a/drivers/of/address.c
|
||||
+++ b/drivers/of/address.c
|
||||
@@ -223,6 +223,73 @@ int of_pci_address_to_resource(struct de
|
||||
@@ -224,6 +224,73 @@ int of_pci_address_to_resource(struct de
|
||||
return __of_address_to_resource(dev, addrp, size, flags, NULL, r);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(of_pci_address_to_resource);
|
||||
|
@ -13,7 +13,7 @@ FEATURES:=squashfs
|
||||
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
|
||||
SUBTARGETS=generic harddisk
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
|
@ -57,7 +57,7 @@
|
||||
if (!port->mapbase)
|
||||
break;
|
||||
|
||||
@@ -3091,6 +3113,7 @@ static int serial8250_probe(struct platf
|
||||
@@ -3095,6 +3117,7 @@ static int serial8250_probe(struct platf
|
||||
uart.port.set_termios = p->set_termios;
|
||||
uart.port.pm = p->pm;
|
||||
uart.port.dev = &dev->dev;
|
||||
@ -65,7 +65,7 @@
|
||||
uart.port.irqflags |= irqflag;
|
||||
ret = serial8250_register_8250_port(&uart);
|
||||
if (ret < 0) {
|
||||
@@ -3242,6 +3265,7 @@ int serial8250_register_8250_port(struct
|
||||
@@ -3246,6 +3269,7 @@ int serial8250_register_8250_port(struct
|
||||
uart->port.flags = up->port.flags | UPF_BOOT_AUTOCONF;
|
||||
uart->bugs = up->bugs;
|
||||
uart->port.mapbase = up->port.mapbase;
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/net/core/skbuff.c
|
||||
+++ b/net/core/skbuff.c
|
||||
@@ -238,6 +238,9 @@ struct sk_buff *__alloc_skb(unsigned int
|
||||
@@ -208,6 +208,9 @@ struct sk_buff *__alloc_skb(unsigned int
|
||||
|
||||
if (sk_memalloc_socks() && (flags & SKB_ALLOC_RX))
|
||||
gfp_mask |= __GFP_MEMALLOC;
|
||||
@ -10,7 +10,7 @@
|
||||
|
||||
/* Get the HEAD */
|
||||
skb = kmem_cache_alloc_node(cache, gfp_mask & ~__GFP_DMA, node);
|
||||
@@ -1082,6 +1085,10 @@ int pskb_expand_head(struct sk_buff *skb
|
||||
@@ -1052,6 +1055,10 @@ int pskb_expand_head(struct sk_buff *skb
|
||||
if (skb_shared(skb))
|
||||
BUG();
|
||||
|
||||
|
@ -13,7 +13,7 @@ FEATURES:=targz usb jffs2_nand ubifs
|
||||
CPU_TYPE:=xscale
|
||||
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
|
@ -50,7 +50,7 @@ Signed-off-by: Jason Cooper <jason@lakedaemon.net>
|
||||
|
||||
--- a/drivers/of/address.c
|
||||
+++ b/drivers/of/address.c
|
||||
@@ -223,6 +223,73 @@ int of_pci_address_to_resource(struct de
|
||||
@@ -224,6 +224,73 @@ int of_pci_address_to_resource(struct de
|
||||
return __of_address_to_resource(dev, addrp, size, flags, NULL, r);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(of_pci_address_to_resource);
|
||||
|
@ -11,7 +11,7 @@ BOARDNAME:=Lantiq GPON/XWAY/SVIP
|
||||
FEATURES:=squashfs
|
||||
SUBTARGETS=xway xrx200 ase falcon
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
CPU_TYPE:=mips32r2
|
||||
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
|
||||
--- a/drivers/i2c/busses/Kconfig
|
||||
+++ b/drivers/i2c/busses/Kconfig
|
||||
@@ -495,6 +495,16 @@ config I2C_IOP3XX
|
||||
@@ -496,6 +496,16 @@ config I2C_IOP3XX
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called i2c-iop3xx.
|
||||
|
||||
|
@ -20,7 +20,7 @@ Subject: [PATCH 32/34] USB: fix roothub for IFXHCD
|
||||
choice
|
||||
--- a/drivers/usb/core/hub.c
|
||||
+++ b/drivers/usb/core/hub.c
|
||||
@@ -4053,7 +4053,7 @@ hub_port_init (struct usb_hub *hub, stru
|
||||
@@ -4026,7 +4026,7 @@ hub_port_init (struct usb_hub *hub, stru
|
||||
udev->ttport = hdev->ttport;
|
||||
} else if (udev->speed != USB_SPEED_HIGH
|
||||
&& hdev->speed == USB_SPEED_HIGH) {
|
||||
|
@ -10,11 +10,9 @@ Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
|
||||
drivers/pinctrl/pinctrl-xway.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/pinctrl/pinctrl-xway.c b/drivers/pinctrl/pinctrl-xway.c
|
||||
index ed2d1ba..e66f4ca 100644
|
||||
--- a/drivers/pinctrl/pinctrl-xway.c
|
||||
+++ b/drivers/pinctrl/pinctrl-xway.c
|
||||
@@ -332,10 +332,10 @@ static const struct ltq_pin_group xway_grps[] = {
|
||||
@@ -332,10 +332,10 @@ static const struct ltq_pin_group xway_g
|
||||
GRP_MUX("mdio", MDIO, pins_mdio),
|
||||
GRP_MUX("gphy0 led0", GPHY, pins_gphy0_led0),
|
||||
GRP_MUX("gphy0 led1", GPHY, pins_gphy0_led1),
|
||||
@ -27,6 +25,3 @@ index ed2d1ba..e66f4ca 100644
|
||||
};
|
||||
|
||||
static const struct ltq_pin_group ase_grps[] = {
|
||||
--
|
||||
1.8.5.3
|
||||
|
||||
|
@ -12,7 +12,7 @@ SUBTARGETS:=le be le64 be64
|
||||
INITRAMFS_EXTRA_FILES:=
|
||||
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
DEVICE_TYPE:=developerboard
|
||||
|
||||
|
@ -14,7 +14,7 @@ FEATURES:=spe_fpu squashfs
|
||||
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
|
||||
SUBTARGETS=generic p1020
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
|
@ -14,7 +14,7 @@ CPU_TYPE:=cortex-a9
|
||||
CPU_SUBTYPE:=vfpv3
|
||||
MAINTAINER:=Luka Perkov <luka@openwrt.org>
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
|
@ -49,7 +49,7 @@ Acked-by: Grant Likely <grant.likely@secretlab.ca>
|
||||
|
||||
--- a/drivers/of/address.c
|
||||
+++ b/drivers/of/address.c
|
||||
@@ -223,6 +223,73 @@ int of_pci_address_to_resource(struct de
|
||||
@@ -224,6 +224,73 @@ int of_pci_address_to_resource(struct de
|
||||
return __of_address_to_resource(dev, addrp, size, flags, NULL, r);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(of_pci_address_to_resource);
|
||||
|
@ -1,46 +0,0 @@
|
||||
From 60b78d28057f9f1ecce39955755d26e4cd3130de Mon Sep 17 00:00:00 2001
|
||||
From: Lior Amsalem <alior@marvell.com>
|
||||
Date: Mon, 25 Nov 2013 17:26:44 +0100
|
||||
Subject: [PATCH 085/203] irqchip: armada-370-xp: fix IPI race condition
|
||||
|
||||
In the Armada 370/XP driver, when we receive an IRQ 0, we read the
|
||||
list of doorbells that caused the interrupt from register
|
||||
ARMADA_370_XP_IN_DRBEL_CAUSE_OFFS. This gives the list of IPIs that
|
||||
were generated. However, instead of acknowledging only the IPIs that
|
||||
were generated, we acknowledge *all* the IPIs, by writing
|
||||
~IPI_DOORBELL_MASK in the ARMADA_370_XP_IN_DRBEL_CAUSE_OFFS register.
|
||||
|
||||
This creates a race condition: if a new IPI that isn't part of the
|
||||
ones read into the temporary "ipimask" variable is fired before we
|
||||
acknowledge all IPIs, then we will simply loose it. This is causing
|
||||
scheduling hangs on SMP intensive workloads.
|
||||
|
||||
It is important to mention that this ARMADA_370_XP_IN_DRBEL_CAUSE_OFFS
|
||||
register has the following behavior: "A CPU write of 0 clears the bits
|
||||
in this field. A CPU write of 1 has no effect". This is what allows us
|
||||
to simply write ~ipimask to acknoledge the handled IPIs.
|
||||
|
||||
Notice that the same problem is present in the MSI implementation, but
|
||||
it will be fixed as a separate patch, so that this IPI fix can be
|
||||
pushed to older stable versions as appropriate (all the way to 3.8),
|
||||
while the MSI code only appeared in 3.13.
|
||||
|
||||
Signed-off-by: Lior Amsalem <alior@marvell.com>
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Cc: stable@vger.kernel.org
|
||||
Cc: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
drivers/irqchip/irq-armada-370-xp.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/irqchip/irq-armada-370-xp.c
|
||||
+++ b/drivers/irqchip/irq-armada-370-xp.c
|
||||
@@ -407,7 +407,7 @@ armada_370_xp_handle_irq(struct pt_regs
|
||||
ARMADA_370_XP_IN_DRBEL_CAUSE_OFFS)
|
||||
& IPI_DOORBELL_MASK;
|
||||
|
||||
- writel(~IPI_DOORBELL_MASK, per_cpu_int_base +
|
||||
+ writel(~ipimask, per_cpu_int_base +
|
||||
ARMADA_370_XP_IN_DRBEL_CAUSE_OFFS);
|
||||
|
||||
/* Handle all pending doorbells */
|
@ -17,7 +17,7 @@ Signed-off-by: Grant Likely <grant.likely@linaro.org>
|
||||
|
||||
--- a/drivers/of/address.c
|
||||
+++ b/drivers/of/address.c
|
||||
@@ -481,7 +481,7 @@ static u64 __of_translate_address(struct
|
||||
@@ -482,7 +482,7 @@ static u64 __of_translate_address(struct
|
||||
int na, ns, pna, pns;
|
||||
u64 result = OF_BAD_ADDR;
|
||||
|
||||
@ -26,7 +26,7 @@ Signed-off-by: Grant Likely <grant.likely@linaro.org>
|
||||
|
||||
/* Increase refcount at current level */
|
||||
of_node_get(dev);
|
||||
@@ -496,13 +496,13 @@ static u64 __of_translate_address(struct
|
||||
@@ -497,13 +497,13 @@ static u64 __of_translate_address(struct
|
||||
bus->count_cells(dev, &na, &ns);
|
||||
if (!OF_CHECK_COUNTS(na, ns)) {
|
||||
printk(KERN_ERR "prom_parse: Bad cell count for %s\n",
|
||||
|
@ -468,7 +468,7 @@ Conflicts:
|
||||
|
||||
--- a/drivers/of/address.c
|
||||
+++ b/drivers/of/address.c
|
||||
@@ -524,12 +524,12 @@ static u64 __of_translate_address(struct
|
||||
@@ -525,12 +525,12 @@ static u64 __of_translate_address(struct
|
||||
pbus->count_cells(dev, &pna, &pns);
|
||||
if (!OF_CHECK_COUNTS(pna, pns)) {
|
||||
printk(KERN_ERR "prom_parse: Bad cell count for %s\n",
|
||||
|
@ -1,58 +0,0 @@
|
||||
From d587c866f34aa8e59ddc3628969113e725e36eab Mon Sep 17 00:00:00 2001
|
||||
From: Lior Amsalem <alior@marvell.com>
|
||||
Date: Mon, 23 Dec 2013 13:07:35 +0100
|
||||
Subject: [PATCH 196/203] ata: sata_mv: setting PHY speed according to SControl
|
||||
speed
|
||||
|
||||
This patch fixes a SATA hotplug issue on the Armada 370 and Armada XP
|
||||
SoCs. Without it, if a disk is unplugged from a SATA port, then further
|
||||
hotplug notification are now longer received on this port.
|
||||
|
||||
This should be applied to every -stable kernel supporting Armada SoCs.
|
||||
|
||||
Signed-off-by: Lior Amsalem <alior@marvell.com>
|
||||
Signed-off-by: Nadav Haklai <nadavh@marvell.com>
|
||||
Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
|
||||
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Cc: Jason Cooper <jason@lakedaemon.net>
|
||||
Cc: Andrew Lunn <andrew@lunn.ch>
|
||||
Cc: Gregory Clement <gregory.clement@free-electrons.com>
|
||||
Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
|
||||
Cc: stable@vger.kernel.org
|
||||
---
|
||||
drivers/ata/sata_mv.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
--- a/drivers/ata/sata_mv.c
|
||||
+++ b/drivers/ata/sata_mv.c
|
||||
@@ -304,6 +304,7 @@ enum {
|
||||
MV5_LTMODE = 0x30,
|
||||
MV5_PHY_CTL = 0x0C,
|
||||
SATA_IFCFG = 0x050,
|
||||
+ LP_PHY_CTL = 0x058,
|
||||
|
||||
MV_M2_PREAMP_MASK = 0x7e0,
|
||||
|
||||
@@ -1353,6 +1354,7 @@ static int mv_scr_write(struct ata_link
|
||||
|
||||
if (ofs != 0xffffffffU) {
|
||||
void __iomem *addr = mv_ap_base(link->ap) + ofs;
|
||||
+ void __iomem *lp_phy_addr = mv_ap_base(link->ap) + LP_PHY_CTL;
|
||||
if (sc_reg_in == SCR_CONTROL) {
|
||||
/*
|
||||
* Workaround for 88SX60x1 FEr SATA#26:
|
||||
@@ -1369,6 +1371,14 @@ static int mv_scr_write(struct ata_link
|
||||
*/
|
||||
if ((val & 0xf) == 1 || (readl(addr) & 0xf) == 1)
|
||||
val |= 0xf000;
|
||||
+
|
||||
+ /*
|
||||
+ * Setting PHY speed according to SControl speed
|
||||
+ */
|
||||
+ if ((val & 0xf0) == 0x10)
|
||||
+ writelfl(0x7, lp_phy_addr);
|
||||
+ else
|
||||
+ writelfl(0x227, lp_phy_addr);
|
||||
}
|
||||
writelfl(val, addr);
|
||||
return 0;
|
@ -81,7 +81,7 @@ Conflicts:
|
||||
return -ENOMEM;
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -4654,7 +4654,6 @@ int xhci_gen_setup(struct usb_hcd *hcd,
|
||||
@@ -4657,7 +4657,6 @@ int xhci_gen_setup(struct usb_hcd *hcd,
|
||||
struct xhci_hcd *xhci;
|
||||
struct device *dev = hcd->self.controller;
|
||||
int retval;
|
||||
@ -89,7 +89,7 @@ Conflicts:
|
||||
|
||||
/* Accept arbitrarily long scatter-gather lists */
|
||||
hcd->self.sg_tablesize = ~0;
|
||||
@@ -4682,14 +4681,6 @@ int xhci_gen_setup(struct usb_hcd *hcd,
|
||||
@@ -4685,14 +4684,6 @@ int xhci_gen_setup(struct usb_hcd *hcd,
|
||||
/* xHCI private pointer was set in xhci_pci_probe for the second
|
||||
* registered roothub.
|
||||
*/
|
||||
@ -104,7 +104,7 @@ Conflicts:
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -4728,12 +4719,12 @@ int xhci_gen_setup(struct usb_hcd *hcd,
|
||||
@@ -4731,12 +4722,12 @@ int xhci_gen_setup(struct usb_hcd *hcd,
|
||||
goto error;
|
||||
xhci_dbg(xhci, "Reset complete\n");
|
||||
|
||||
|
@ -14,7 +14,7 @@ CPU_TYPE:=octeon
|
||||
CPU_CFLAGS_octeon:=-march=octeon
|
||||
MAINTAINER:=John Crispin <blogic@openwrt.org>
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
|
@ -13,7 +13,7 @@ FEATURES:=squashfs
|
||||
CPU_TYPE:=405
|
||||
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
|
@ -13,7 +13,7 @@ FEATURES:=squashfs broken
|
||||
CPU_TYPE:=440
|
||||
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
||||
|
@ -12,7 +12,7 @@ BOARDNAME:=Ralink RT288x/RT3xxx
|
||||
SUBTARGETS:=rt305x mt7620a mt7620n mt7621 rt3883 rt288x
|
||||
FEATURES:=squashfs gpio
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
DEFAULT_PACKAGES+=\
|
||||
|
@ -45,7 +45,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
+};
|
||||
--- a/drivers/i2c/busses/Kconfig
|
||||
+++ b/drivers/i2c/busses/Kconfig
|
||||
@@ -629,6 +629,10 @@ config I2C_PXA_SLAVE
|
||||
@@ -630,6 +630,10 @@ config I2C_PXA_SLAVE
|
||||
is necessary for systems where the PXA may be a target on the
|
||||
I2C bus.
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/drivers/usb/core/hub.c
|
||||
+++ b/drivers/usb/core/hub.c
|
||||
@@ -1259,7 +1259,7 @@ static void hub_quiesce(struct usb_hub *
|
||||
@@ -1254,7 +1254,7 @@ static void hub_quiesce(struct usb_hub *
|
||||
if (type != HUB_SUSPEND) {
|
||||
/* Disconnect all the children */
|
||||
for (i = 0; i < hdev->maxchild; ++i) {
|
||||
@ -120,7 +120,7 @@
|
||||
static int xhci_free_msi(struct xhci_hcd *xhci)
|
||||
{
|
||||
int i;
|
||||
@@ -386,6 +408,7 @@ static int xhci_try_enable_msi(struct us
|
||||
@@ -389,6 +411,7 @@ static int xhci_try_enable_msi(struct us
|
||||
return ret;
|
||||
}
|
||||
hcd->irq = pdev->irq;
|
||||
@ -128,7 +128,7 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -427,6 +450,11 @@ static void compliance_mode_recovery(uns
|
||||
@@ -430,6 +453,11 @@ static void compliance_mode_recovery(uns
|
||||
xhci_dbg(xhci, "Attempting compliance mode recovery\n");
|
||||
hcd = xhci->shared_hcd;
|
||||
|
||||
@ -140,7 +140,7 @@
|
||||
if (hcd->state == HC_STATE_SUSPENDED)
|
||||
usb_hcd_resume_root_hub(hcd);
|
||||
|
||||
@@ -475,6 +503,9 @@ bool xhci_compliance_mode_recovery_timer
|
||||
@@ -478,6 +506,9 @@ bool xhci_compliance_mode_recovery_timer
|
||||
{
|
||||
const char *dmi_product_name, *dmi_sys_vendor;
|
||||
|
||||
@ -150,7 +150,7 @@
|
||||
dmi_product_name = dmi_get_system_info(DMI_PRODUCT_NAME);
|
||||
dmi_sys_vendor = dmi_get_system_info(DMI_SYS_VENDOR);
|
||||
if (!dmi_product_name || !dmi_sys_vendor)
|
||||
@@ -518,6 +549,10 @@ int xhci_init(struct usb_hcd *hcd)
|
||||
@@ -521,6 +552,10 @@ int xhci_init(struct usb_hcd *hcd)
|
||||
} else {
|
||||
xhci_dbg(xhci, "xHCI doesn't need link TRB QUIRK\n");
|
||||
}
|
||||
@ -161,7 +161,7 @@
|
||||
retval = xhci_mem_init(xhci, GFP_KERNEL);
|
||||
xhci_dbg(xhci, "Finished xhci_init\n");
|
||||
|
||||
@@ -661,7 +696,11 @@ int xhci_run(struct usb_hcd *hcd)
|
||||
@@ -664,7 +699,11 @@ int xhci_run(struct usb_hcd *hcd)
|
||||
xhci_dbg(xhci, "// Set the interrupt modulation register\n");
|
||||
temp = xhci_readl(xhci, &xhci->ir_set->irq_control);
|
||||
temp &= ~ER_IRQ_INTERVAL_MASK;
|
||||
@ -173,7 +173,7 @@
|
||||
xhci_writel(xhci, temp, &xhci->ir_set->irq_control);
|
||||
|
||||
/* Set the HCD state before we enable the irqs */
|
||||
@@ -682,6 +721,9 @@ int xhci_run(struct usb_hcd *hcd)
|
||||
@@ -685,6 +724,9 @@ int xhci_run(struct usb_hcd *hcd)
|
||||
xhci_queue_vendor_command(xhci, 0, 0, 0,
|
||||
TRB_TYPE(TRB_NEC_GET_FW));
|
||||
|
||||
@ -183,7 +183,7 @@
|
||||
xhci_dbg(xhci, "Finished xhci_run for USB2 roothub\n");
|
||||
return 0;
|
||||
}
|
||||
@@ -999,7 +1041,6 @@ int xhci_resume(struct xhci_hcd *xhci, b
|
||||
@@ -1002,7 +1044,6 @@ int xhci_resume(struct xhci_hcd *xhci, b
|
||||
|
||||
/* If restore operation fails, re-initialize the HC during resume */
|
||||
if ((temp & STS_SRE) || hibernated) {
|
||||
@ -191,7 +191,7 @@
|
||||
if ((xhci->quirks & XHCI_COMP_MODE_QUIRK) &&
|
||||
!(xhci_all_ports_seen_u0(xhci))) {
|
||||
del_timer_sync(&xhci->comp_mode_recovery_timer);
|
||||
@@ -1583,6 +1624,13 @@ int xhci_drop_endpoint(struct usb_hcd *h
|
||||
@@ -1586,6 +1627,13 @@ int xhci_drop_endpoint(struct usb_hcd *h
|
||||
u32 drop_flag;
|
||||
u32 new_add_flags, new_drop_flags, new_slot_info;
|
||||
int ret;
|
||||
@ -205,7 +205,7 @@
|
||||
|
||||
ret = xhci_check_args(hcd, udev, ep, 1, true, __func__);
|
||||
if (ret <= 0)
|
||||
@@ -1634,6 +1682,40 @@ int xhci_drop_endpoint(struct usb_hcd *h
|
||||
@@ -1637,6 +1685,40 @@ int xhci_drop_endpoint(struct usb_hcd *h
|
||||
|
||||
xhci_endpoint_zero(xhci, xhci->devs[udev->slot_id], ep);
|
||||
|
||||
@ -246,7 +246,7 @@
|
||||
xhci_dbg(xhci, "drop ep 0x%x, slot id %d, new drop flags = %#x, new add flags = %#x, new slot info = %#x\n",
|
||||
(unsigned int) ep->desc.bEndpointAddress,
|
||||
udev->slot_id,
|
||||
@@ -1669,6 +1751,18 @@ int xhci_add_endpoint(struct usb_hcd *hc
|
||||
@@ -1672,6 +1754,18 @@ int xhci_add_endpoint(struct usb_hcd *hc
|
||||
u32 new_add_flags, new_drop_flags, new_slot_info;
|
||||
struct xhci_virt_device *virt_dev;
|
||||
int ret = 0;
|
||||
@ -265,7 +265,7 @@
|
||||
|
||||
ret = xhci_check_args(hcd, udev, ep, 1, true, __func__);
|
||||
if (ret <= 0) {
|
||||
@@ -1731,6 +1825,56 @@ int xhci_add_endpoint(struct usb_hcd *hc
|
||||
@@ -1734,6 +1828,56 @@ int xhci_add_endpoint(struct usb_hcd *hc
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
@ -322,7 +322,7 @@
|
||||
ctrl_ctx->add_flags |= cpu_to_le32(added_ctxs);
|
||||
new_add_flags = le32_to_cpu(ctrl_ctx->add_flags);
|
||||
|
||||
@@ -2694,7 +2838,7 @@ int xhci_check_bandwidth(struct usb_hcd
|
||||
@@ -2697,7 +2841,7 @@ int xhci_check_bandwidth(struct usb_hcd
|
||||
if (ctrl_ctx->add_flags == cpu_to_le32(SLOT_FLAG) &&
|
||||
ctrl_ctx->drop_flags == 0)
|
||||
return 0;
|
||||
@ -331,7 +331,7 @@
|
||||
xhci_dbg(xhci, "New Input Control Context:\n");
|
||||
slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->in_ctx);
|
||||
xhci_dbg_ctx(xhci, virt_dev->in_ctx,
|
||||
@@ -4230,10 +4374,14 @@ static u16 xhci_call_host_update_timeout
|
||||
@@ -4233,10 +4377,14 @@ static u16 xhci_call_host_update_timeout
|
||||
u16 *timeout)
|
||||
{
|
||||
if (state == USB3_LPM_U1) {
|
||||
@ -346,7 +346,7 @@
|
||||
return xhci_calculate_intel_u2_timeout(udev, desc);
|
||||
}
|
||||
|
||||
@@ -4659,7 +4807,9 @@ int xhci_gen_setup(struct usb_hcd *hcd,
|
||||
@@ -4662,7 +4810,9 @@ int xhci_gen_setup(struct usb_hcd *hcd,
|
||||
/* Accept arbitrarily long scatter-gather lists */
|
||||
hcd->self.sg_tablesize = ~0;
|
||||
/* XHCI controllers don't stop the ep queue on short packets :| */
|
||||
@ -356,7 +356,7 @@
|
||||
|
||||
if (usb_hcd_is_primary_hcd(hcd)) {
|
||||
xhci = kzalloc(sizeof(struct xhci_hcd), GFP_KERNEL);
|
||||
@@ -4728,6 +4878,10 @@ int xhci_gen_setup(struct usb_hcd *hcd,
|
||||
@@ -4731,6 +4881,10 @@ int xhci_gen_setup(struct usb_hcd *hcd,
|
||||
goto error;
|
||||
xhci_dbg(xhci, "Reset complete\n");
|
||||
|
||||
@ -367,7 +367,7 @@
|
||||
temp = xhci_readl(xhci, &xhci->cap_regs->hcc_params);
|
||||
if (HCC_64BIT_ADDR(temp)) {
|
||||
xhci_dbg(xhci, "Enabling 64-bit DMA addresses.\n");
|
||||
@@ -4752,8 +4906,21 @@ MODULE_DESCRIPTION(DRIVER_DESC);
|
||||
@@ -4755,8 +4909,21 @@ MODULE_DESCRIPTION(DRIVER_DESC);
|
||||
MODULE_AUTHOR(DRIVER_AUTHOR);
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
@ -389,7 +389,7 @@
|
||||
int retval;
|
||||
|
||||
retval = xhci_register_pci();
|
||||
@@ -4766,6 +4933,33 @@ static int __init xhci_hcd_init(void)
|
||||
@@ -4769,6 +4936,33 @@ static int __init xhci_hcd_init(void)
|
||||
printk(KERN_DEBUG "Problem registering platform driver.");
|
||||
goto unreg_pci;
|
||||
}
|
||||
@ -423,7 +423,7 @@
|
||||
/*
|
||||
* Check the compiler generated sizes of structures that must be laid
|
||||
* out in specific ways for hardware access.
|
||||
@@ -4783,6 +4977,7 @@ static int __init xhci_hcd_init(void)
|
||||
@@ -4786,6 +4980,7 @@ static int __init xhci_hcd_init(void)
|
||||
BUILD_BUG_ON(sizeof(struct xhci_intr_reg) != 8*32/8);
|
||||
/* xhci_run_regs has eight fields and embeds 128 xhci_intr_regs */
|
||||
BUILD_BUG_ON(sizeof(struct xhci_run_regs) != (8+8*128)*32/8);
|
||||
|
@ -1,8 +1,6 @@
|
||||
Index: linux-3.10.28/drivers/pinctrl/pinctrl-rt2880.c
|
||||
===================================================================
|
||||
--- linux-3.10.28.orig/drivers/pinctrl/pinctrl-rt2880.c 2014-02-14 10:46:06.216549358 +0000
|
||||
+++ linux-3.10.28/drivers/pinctrl/pinctrl-rt2880.c 2014-02-14 14:58:18.580040433 +0000
|
||||
@@ -204,6 +204,7 @@
|
||||
--- a/drivers/pinctrl/pinctrl-rt2880.c
|
||||
+++ b/drivers/pinctrl/pinctrl-rt2880.c
|
||||
@@ -204,6 +204,7 @@ static int rt2880_pmx_group_enable(struc
|
||||
{
|
||||
struct rt2880_priv *p = pinctrl_dev_get_drvdata(pctrldev);
|
||||
u32 mode = 0;
|
||||
@ -10,7 +8,7 @@ Index: linux-3.10.28/drivers/pinctrl/pinctrl-rt2880.c
|
||||
|
||||
/* dont allow double use */
|
||||
if (p->groups[group].enabled) {
|
||||
@@ -217,16 +218,16 @@
|
||||
@@ -217,16 +218,16 @@ static int rt2880_pmx_group_enable(struc
|
||||
mode = rt_sysc_r32(SYSC_REG_GPIO_MODE);
|
||||
mode &= ~(p->groups[group].mask << p->groups[group].shift);
|
||||
|
||||
|
@ -11,7 +11,7 @@ BOARD:=rb532
|
||||
BOARDNAME:=Mikrotik RouterBoard 532
|
||||
FEATURES:=pci targz broken
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
DEFAULT_PACKAGES += wpad-mini kmod-madwifi kmod-input-rb532
|
||||
|
@ -14,7 +14,7 @@ CPU_TYPE:=mpcore
|
||||
CPU_SUBTYPE:=vfp
|
||||
MAINTAINER:=Florian Fainelli <florian@openwrt.org>
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
DEVICE_TYPE:=developerboard
|
||||
|
||||
|
@ -11,7 +11,7 @@ BOARD:=sparc
|
||||
BOARDNAME:=Sun UltraSPARC
|
||||
FEATURES+=fpu tgz ext4 squashfs broken
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
|
||||
|
||||
include $(INCLUDE_DIR)/target.mk
|
||||
|
@ -19,7 +19,7 @@ DEFAULT_PACKAGES += \
|
||||
kmod-ledtrig-heartbeat kmod-ledtrig-gpio \
|
||||
kmod-ledtrig-netdev \
|
||||
kmod-cpu-msr hwclock wpad
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
CS5535_MASK:=0x0b000042
|
||||
|
||||
CPU_TYPE := geode
|
||||
|
@ -1,6 +1,6 @@
|
||||
BOARDNAME:=Generic
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
define Target/Description
|
||||
Build firmware images for x86 based boards
|
||||
|
@ -2,4 +2,4 @@ BOARDNAME:=KVM Guest
|
||||
FEATURES:=ext4 pci usb
|
||||
DEFAULT_PACKAGES += kmod-virtio-balloon kmod-virtio-net kmod-virtio-random
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
@ -12,7 +12,7 @@ BOARDNAME:=Ingenic XBurst
|
||||
FEATURES:=targz ubifs audio
|
||||
SUBTARGETS:=qi_lb60 n516 n526 id800wt
|
||||
|
||||
LINUX_VERSION:=3.10.28
|
||||
LINUX_VERSION:=3.10.32
|
||||
|
||||
DEVICE_TYPE=other
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user