mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
Upgrade rb532 to .23, provide generic GPIO API to this board
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@10171 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
diff -urN linux.old/arch/mips/Kconfig linux.dev/arch/mips/Kconfig
|
||||
--- linux.old/arch/mips/Kconfig 2006-11-29 22:57:37.000000000 +0100
|
||||
+++ linux.dev/arch/mips/Kconfig 2006-12-14 04:09:50.000000000 +0100
|
||||
@@ -780,6 +780,19 @@
|
||||
select SYS_SUPPORTS_BIG_ENDIAN
|
||||
select TOSHIBA_BOARDS
|
||||
diff -urN linux-2.6.23.12/arch/mips/Kconfig linux-2.6.23.12.new/arch/mips/Kconfig
|
||||
--- linux-2.6.23.12/arch/mips/Kconfig 2007-12-18 22:55:57.000000000 +0100
|
||||
+++ linux-2.6.23.12.new/arch/mips/Kconfig 2008-01-11 08:46:20.000000000 +0100
|
||||
@@ -595,6 +595,20 @@
|
||||
This enables support for the Wind River MIPS32 4KC PPMC evaluation
|
||||
board, which is based on GT64120 bridge chip.
|
||||
|
||||
+config MIKROTIK_RB500
|
||||
+ bool "Support for RB5xx boards"
|
||||
@@ -14,83 +14,84 @@ diff -urN linux.old/arch/mips/Kconfig linux.dev/arch/mips/Kconfig
|
||||
+ select SYS_SUPPORTS_32BIT_KERNEL
|
||||
+ select SWAP_IO_SPACE
|
||||
+ select DMA_NONCOHERENT
|
||||
+ select GENERIC_GPIO
|
||||
+ help
|
||||
+ Support the Mikrotik(tm) Routerboard 500 series,
|
||||
+ such as the RB532.
|
||||
+ Support the Mikrotik(tm) Routerboard 500 series,
|
||||
+ such as the RB532.
|
||||
+
|
||||
config TOSHIBA_RBTX4927
|
||||
bool "Toshiba TBTX49[23]7 board"
|
||||
select DMA_NONCOHERENT
|
||||
@@ -1106,7 +1119,7 @@
|
||||
endchoice
|
||||
|
||||
config MIPS_L1_CACHE_SHIFT
|
||||
int
|
||||
- default "4" if MACH_DECSTATION || SNI_RM
|
||||
+ default "4" if MACH_DECSTATION || SNI_RM || MIKROTIK_RB500
|
||||
default "7" if SGI_IP27
|
||||
source "arch/mips/au1000/Kconfig"
|
||||
@@ -829,6 +843,7 @@
|
||||
default "4" if MACH_DECSTATION
|
||||
default "7" if SGI_IP27 || SNI_RM
|
||||
default "4" if PMC_MSP4200_EVAL
|
||||
+ default "4" if MIKROTIK_RB500
|
||||
default "5"
|
||||
|
||||
diff -urN linux.old/arch/mips/Makefile linux.dev/arch/mips/Makefile
|
||||
--- linux.old/arch/mips/Makefile 2006-12-14 03:13:55.000000000 +0100
|
||||
+++ linux.dev/arch/mips/Makefile 2006-12-14 04:09:50.000000000 +0100
|
||||
@@ -586,6 +586,13 @@
|
||||
load-$(CONFIG_TOSHIBA_JMR3927) += 0xffffffff80050000
|
||||
config HAVE_STD_PC_SERIAL_PORT
|
||||
diff -urN linux-2.6.23.12/arch/mips/Makefile linux-2.6.23.12.new/arch/mips/Makefile
|
||||
--- linux-2.6.23.12/arch/mips/Makefile 2007-12-18 22:55:57.000000000 +0100
|
||||
+++ linux-2.6.23.12.new/arch/mips/Makefile 2008-01-11 08:47:04.000000000 +0100
|
||||
@@ -300,6 +300,13 @@
|
||||
cflags-$(CONFIG_LEMOTE_FULONG) += -Iinclude/asm-mips/mach-lemote
|
||||
|
||||
#
|
||||
+# Routerboard 532 board
|
||||
+#
|
||||
+core-$(CONFIG_MIKROTIK_RB500) += arch/mips/rb500/
|
||||
+cflags-$(CONFIG_MIKROTIK_RB500) += -Iinclude/asm-mips/rc32434
|
||||
+cflags-$(CONFIG_MIKROTIK_RB500) += -Iinclude/asm-mips/rc32434
|
||||
+load-$(CONFIG_MIKROTIK_RB500) += 0xffffffff80101000
|
||||
+
|
||||
+#
|
||||
# Toshiba RBTX4927 board or
|
||||
# Toshiba RBTX4937 board
|
||||
# For all MIPS, Inc. eval boards
|
||||
#
|
||||
diff -urN linux.old/arch/mips/pci/Makefile linux.dev/arch/mips/pci/Makefile
|
||||
--- linux.old/arch/mips/pci/Makefile 2006-11-29 22:57:37.000000000 +0100
|
||||
+++ linux.dev/arch/mips/pci/Makefile 2006-12-14 04:09:50.000000000 +0100
|
||||
@@ -53,3 +53,4 @@
|
||||
core-$(CONFIG_MIPS_BOARDS_GEN) += arch/mips/mips-boards/generic/
|
||||
diff -urN linux-2.6.23.12/arch/mips/pci/Makefile linux-2.6.23.12.new/arch/mips/pci/Makefile
|
||||
--- linux-2.6.23.12/arch/mips/pci/Makefile 2007-12-18 22:55:57.000000000 +0100
|
||||
+++ linux-2.6.23.12.new/arch/mips/pci/Makefile 2008-01-11 08:47:30.000000000 +0100
|
||||
@@ -46,3 +46,4 @@
|
||||
obj-$(CONFIG_VICTOR_MPC30X) += fixup-mpc30x.o
|
||||
obj-$(CONFIG_ZAO_CAPCELLA) += fixup-capcella.o
|
||||
obj-$(CONFIG_WR_PPMC) += fixup-wrppmc.o
|
||||
+obj-$(CONFIG_MIKROTIK_RB500) += pci-rc32434.o ops-rc32434.o fixup-rb500.o
|
||||
diff -urN linux.old/drivers/pci/Makefile linux.dev/drivers/pci/Makefile
|
||||
--- linux.old/drivers/pci/Makefile 2006-11-29 22:57:37.000000000 +0100
|
||||
+++ linux.dev/drivers/pci/Makefile 2006-12-14 04:09:50.000000000 +0100
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
# Build the PCI MSI interrupt support
|
||||
obj-$(CONFIG_PCI_MSI) += msi.o
|
||||
diff -urN linux-2.6.23.12/drivers/pci/Makefile linux-2.6.23.12.new/drivers/pci/Makefile
|
||||
--- linux-2.6.23.12/drivers/pci/Makefile 2007-12-18 22:55:57.000000000 +0100
|
||||
+++ linux-2.6.23.12.new/drivers/pci/Makefile 2008-01-11 08:48:10.000000000 +0100
|
||||
@@ -32,6 +32,7 @@
|
||||
obj-$(CONFIG_PPC64) += setup-bus.o
|
||||
obj-$(CONFIG_MIPS) += setup-bus.o setup-irq.o
|
||||
obj-$(CONFIG_X86_VISWS) += setup-irq.o
|
||||
+obj-$(CONFIG_MIKROTIK_RB500) += setup-irq.o
|
||||
|
||||
# Build the Hypertransport interrupt support
|
||||
obj-$(CONFIG_HT_IRQ) += htirq.o
|
||||
diff -urN linux.old/include/asm-mips/bootinfo.h linux.dev/include/asm-mips/bootinfo.h
|
||||
--- linux.old/include/asm-mips/bootinfo.h 2006-11-29 22:57:37.000000000 +0100
|
||||
+++ linux.dev/include/asm-mips/bootinfo.h 2006-12-14 04:09:50.000000000 +0100
|
||||
@@ -212,6 +212,10 @@
|
||||
#define MACH_GROUP_NEC_EMMA2RH 25 /* NEC EMMA2RH (was 23) */
|
||||
#define MACH_NEC_MARKEINS 0 /* NEC EMMA2RH Mark-eins */
|
||||
#
|
||||
# ACPI Related PCI FW Functions
|
||||
diff -urN linux-2.6.23.12/include/asm-mips/bootinfo.h linux-2.6.23.12.new/include/asm-mips/bootinfo.h
|
||||
--- linux-2.6.23.12/include/asm-mips/bootinfo.h 2007-12-18 22:55:57.000000000 +0100
|
||||
+++ linux-2.6.23.12.new/include/asm-mips/bootinfo.h 2008-01-11 08:48:48.000000000 +0100
|
||||
@@ -208,6 +208,11 @@
|
||||
#define MACH_GROUP_WINDRIVER 28 /* Windriver boards */
|
||||
#define MACH_WRPPMC 1
|
||||
|
||||
+#define MACH_GROUP_MIKROTIK 26 /* Mikrotik Boards */
|
||||
+
|
||||
+#define MACH_GROUP_MIKROTIK 29 /* Mikrotik Boards */
|
||||
+#define MACH_MIKROTIK_RB532 0 /* Mikrotik RouterBoard 532 */
|
||||
+#define MACH_MIKROTIK_RB532A 1 /* Mikrotik RouterBoard 532A */
|
||||
+
|
||||
#define CL_SIZE COMMAND_LINE_SIZE
|
||||
|
||||
const char *get_system_type(void);
|
||||
diff -urN linux.old/include/asm-mips/cpu.h linux.dev/include/asm-mips/cpu.h
|
||||
--- linux.old/include/asm-mips/cpu.h 2006-11-29 22:57:37.000000000 +0100
|
||||
+++ linux.dev/include/asm-mips/cpu.h 2006-12-14 04:09:50.000000000 +0100
|
||||
@@ -200,7 +200,8 @@
|
||||
#define CPU_SB1A 62
|
||||
#define CPU_74K 63
|
||||
diff -urN linux-2.6.23.12/include/asm-mips/cpu.h linux-2.6.23.12.new/include/asm-mips/cpu.h
|
||||
--- linux-2.6.23.12/include/asm-mips/cpu.h 2007-12-18 22:55:57.000000000 +0100
|
||||
+++ linux-2.6.23.12.new/include/asm-mips/cpu.h 2008-01-11 08:49:34.000000000 +0100
|
||||
@@ -217,8 +217,9 @@
|
||||
#define CPU_R14000 64
|
||||
-#define CPU_LAST 64
|
||||
+#define CPU_RC32300 65
|
||||
+#define CPU_LAST 65
|
||||
#define CPU_LOONGSON1 65
|
||||
#define CPU_LOONGSON2 66
|
||||
+#define CPU_RC32300 67
|
||||
|
||||
-#define CPU_LAST 66
|
||||
+#define CPU_LAST 67
|
||||
|
||||
/*
|
||||
* ISA Level encodings
|
||||
|
||||
|
||||
@@ -1,26 +1,29 @@
|
||||
diff -urN linux.old/drivers/block/Kconfig linux.dev/drivers/block/Kconfig
|
||||
--- linux.old/drivers/block/Kconfig 2006-10-26 02:43:39.000000000 +0200
|
||||
+++ linux.dev/drivers/block/Kconfig 2006-10-26 00:11:14.000000000 +0200
|
||||
@@ -456,4 +456,12 @@
|
||||
This driver provides Support for ATA over Ethernet block
|
||||
devices like the Coraid EtherDrive (R) Storage Blade.
|
||||
diff -urN linux-2.6.23.12/drivers/block/Kconfig linux-2.6.23.12.new/drivers/block/Kconfig
|
||||
--- linux-2.6.23.12/drivers/block/Kconfig 2007-12-18 22:55:57.000000000 +0100
|
||||
+++ linux-2.6.23.12.new/drivers/block/Kconfig 2008-01-11 08:53:32.000000000 +0100
|
||||
@@ -426,6 +426,14 @@
|
||||
Support for virtual disk devices as a client under Sun
|
||||
Logical Domains.
|
||||
|
||||
+config BLK_DEV_CF_MIPS
|
||||
+ bool "CF slot of RB532 board"
|
||||
+ depends on MIKROTIK_RB500
|
||||
+ default y
|
||||
+ help
|
||||
+ The Routerboard 532 has a CF slot on it. Enable the special block
|
||||
+ device driver for it.
|
||||
+ The Routerboard 532 has a CF slot on it. Enable the special block
|
||||
+ device driver for it.
|
||||
+
|
||||
endmenu
|
||||
diff -urN linux.old/drivers/block/Makefile linux.dev/drivers/block/Makefile
|
||||
--- linux.old/drivers/block/Makefile 2006-06-18 03:49:35.000000000 +0200
|
||||
+++ linux.dev/drivers/block/Makefile 2006-10-26 02:44:10.000000000 +0200
|
||||
@@ -29,4 +29,5 @@
|
||||
obj-$(CONFIG_VIODASD) += viodasd.o
|
||||
obj-$(CONFIG_BLK_DEV_SX8) += sx8.o
|
||||
obj-$(CONFIG_BLK_DEV_UB) += ub.o
|
||||
source "drivers/s390/block/Kconfig"
|
||||
|
||||
config XILINX_SYSACE
|
||||
diff -urN linux-2.6.23.12/drivers/block/Makefile linux-2.6.23.12.new/drivers/block/Makefile
|
||||
--- linux-2.6.23.12/drivers/block/Makefile 2007-12-18 22:55:57.000000000 +0100
|
||||
+++ linux-2.6.23.12.new/drivers/block/Makefile 2008-01-11 08:54:04.000000000 +0100
|
||||
@@ -21,6 +21,7 @@
|
||||
obj-$(CONFIG_XILINX_SYSACE) += xsysace.o
|
||||
obj-$(CONFIG_CDROM_PKTCDVD) += pktcdvd.o
|
||||
obj-$(CONFIG_SUNVDC) += sunvdc.o
|
||||
+obj-$(CONFIG_BLK_DEV_CF_MIPS) += rb500/
|
||||
|
||||
|
||||
obj-$(CONFIG_BLK_DEV_UMEM) += umem.o
|
||||
obj-$(CONFIG_BLK_DEV_NBD) += nbd.o
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
Index: linux-2.6.21.1/arch/mips/kernel/head.S
|
||||
===================================================================
|
||||
--- linux-2.6.21.1.orig/arch/mips/kernel/head.S 2007-06-07 01:26:11.862575128 +0200
|
||||
+++ linux-2.6.21.1/arch/mips/kernel/head.S 2007-06-07 01:31:06.499783464 +0200
|
||||
@@ -133,6 +133,9 @@
|
||||
diff -urN linux-2.6.23.12/arch/mips/kernel/head.S linux-2.6.23.12.new/arch/mips/kernel/head.S
|
||||
--- linux-2.6.23.12/arch/mips/kernel/head.S 2008-01-11 11:27:08.000000000 +0100
|
||||
+++ linux-2.6.23.12.new/arch/mips/kernel/head.S 2008-01-11 11:27:35.000000000 +0100
|
||||
@@ -132,6 +132,10 @@
|
||||
|
||||
j kernel_entry
|
||||
nop
|
||||
|
||||
+EXPORT(_image_cmdline)
|
||||
+ .ascii "CMDLINE:"
|
||||
+
|
||||
+EXPORT(_image_cmdline)
|
||||
+ .ascii "CMDLINE:"
|
||||
+
|
||||
#ifndef CONFIG_NO_EXCEPT_FILL
|
||||
/*
|
||||
* Reserved space for exception handlers.
|
||||
* Necessary for machines which link their kernels at KSEG0.
|
||||
|
||||
@@ -1,27 +1,31 @@
|
||||
diff -ur linux.old/drivers/net/via-rhine.c linux.dev/drivers/net/via-rhine.c
|
||||
--- linux.old/drivers/net/via-rhine.c 2006-11-29 22:57:37.000000000 +0100
|
||||
+++ linux.dev/drivers/net/via-rhine.c 2006-12-14 03:39:01.000000000 +0100
|
||||
@@ -33,6 +33,7 @@
|
||||
--- linux-2.6.23.12/drivers/net/via-rhine.c 2007-12-18 22:55:57.000000000 +0100
|
||||
+++ linux-2.6.23.12.new/drivers/net/via-rhine.c 2008-01-11 08:58:58.000000000 +0100
|
||||
@@ -33,6 +33,8 @@
|
||||
#define DRV_VERSION "1.4.3"
|
||||
#define DRV_RELDATE "2007-03-06"
|
||||
|
||||
+#define PKT_ALIGN 1
|
||||
+
|
||||
|
||||
/* A few user-configurable values.
|
||||
These may be modified when a driver module is loaded. */
|
||||
@@ -40,9 +41,11 @@
|
||||
@@ -40,6 +42,7 @@
|
||||
static int debug = 1; /* 1 normal messages, 0 quiet .. 7 verbose. */
|
||||
static int max_interrupt_work = 20;
|
||||
|
||||
+#ifndef PKT_ALIGN
|
||||
/* Set the copy breakpoint for the copy-only-tiny-frames scheme.
|
||||
Setting to > 1518 effectively disables this feature. */
|
||||
#if defined(__alpha__) || defined(__arm__) || defined(__hppa__) \
|
||||
@@ -49,6 +52,7 @@
|
||||
#else
|
||||
static int rx_copybreak;
|
||||
+#endif
|
||||
#endif
|
||||
+#endif /* PKT_ALIGN */
|
||||
|
||||
/* Work-around for broken BIOSes: they are unable to get the chip back out of
|
||||
power state D3 so PXE booting fails. bootparam(7): via-rhine.avoid_D3=1 */
|
||||
@@ -105,6 +108,7 @@
|
||||
@@ -111,6 +115,7 @@
|
||||
#include <asm/io.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/uaccess.h>
|
||||
@@ -29,7 +33,7 @@ diff -ur linux.old/drivers/net/via-rhine.c linux.dev/drivers/net/via-rhine.c
|
||||
#include <linux/dmi.h>
|
||||
|
||||
/* These identify the driver base version and may not be removed. */
|
||||
@@ -124,12 +128,14 @@
|
||||
@@ -130,12 +135,14 @@
|
||||
|
||||
module_param(max_interrupt_work, int, 0);
|
||||
module_param(debug, int, 0);
|
||||
@@ -46,7 +50,7 @@ diff -ur linux.old/drivers/net/via-rhine.c linux.dev/drivers/net/via-rhine.c
|
||||
|
||||
/*
|
||||
Theory of Operation
|
||||
@@ -924,7 +930,7 @@
|
||||
@@ -927,7 +934,7 @@
|
||||
|
||||
/* Fill in the Rx buffers. Handle allocation failure gracefully. */
|
||||
for (i = 0; i < RX_RING_SIZE; i++) {
|
||||
@@ -55,17 +59,18 @@ diff -ur linux.old/drivers/net/via-rhine.c linux.dev/drivers/net/via-rhine.c
|
||||
rp->rx_skbuff[i] = skb;
|
||||
if (skb == NULL)
|
||||
break;
|
||||
@@ -1482,6 +1488,9 @@
|
||||
@@ -1484,7 +1491,9 @@
|
||||
struct sk_buff *skb;
|
||||
/* Length should omit the CRC */
|
||||
int pkt_len = data_size - 4;
|
||||
|
||||
-
|
||||
+#ifdef PKT_ALIGN
|
||||
+ int i;
|
||||
+#else
|
||||
/* Check if the packet is long enough to accept without
|
||||
copying to a minimally-sized skbuff. */
|
||||
if (pkt_len < rx_copybreak &&
|
||||
@@ -1501,7 +1510,9 @@
|
||||
@@ -1503,7 +1512,9 @@
|
||||
rp->rx_skbuff_dma[entry],
|
||||
rp->rx_buf_sz,
|
||||
PCI_DMA_FROMDEVICE);
|
||||
@@ -76,19 +81,18 @@ diff -ur linux.old/drivers/net/via-rhine.c linux.dev/drivers/net/via-rhine.c
|
||||
skb = rp->rx_skbuff[entry];
|
||||
if (skb == NULL) {
|
||||
printk(KERN_ERR "%s: Inconsistent Rx "
|
||||
@@ -1515,6 +1526,14 @@
|
||||
@@ -1517,6 +1528,14 @@
|
||||
rp->rx_skbuff_dma[entry],
|
||||
rp->rx_buf_sz,
|
||||
PCI_DMA_FROMDEVICE);
|
||||
+#ifdef PKT_ALIGN
|
||||
+#ifdef PKT_ALIGN
|
||||
+ /* align the data to the ip header - should be faster than copying the entire packet */
|
||||
+ for (i = pkt_len - (pkt_len % 4); i >= 0; i -= 4) {
|
||||
+ put_unaligned(*((u32 *) (skb->data + i)), (u32 *) (skb->data + i + 2));
|
||||
+ }
|
||||
+ skb->data += 2;
|
||||
+ skb->tail += 2;
|
||||
+#endif
|
||||
+#endif
|
||||
}
|
||||
skb->protocol = eth_type_trans(skb, dev);
|
||||
#ifdef CONFIG_VIA_RHINE_NAPI
|
||||
|
||||
|
||||
@@ -1,22 +1,9 @@
|
||||
Index: linux-2.6.21.1/drivers/leds/Makefile
|
||||
===================================================================
|
||||
--- linux-2.6.21.1.orig/drivers/leds/Makefile 2007-07-10 20:56:30.000000000 +0200
|
||||
+++ linux-2.6.21.1/drivers/leds/Makefile 2007-07-19 16:43:07.000000000 +0200
|
||||
@@ -16,6 +16,7 @@
|
||||
obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
|
||||
obj-$(CONFIG_LEDS_H1940) += leds-h1940.o
|
||||
obj-$(CONFIG_LEDS_COBALT) += leds-cobalt.o
|
||||
+obj-$(CONFIG_LEDS_RB500) += leds-rb500.o
|
||||
|
||||
# LED Triggers
|
||||
obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o
|
||||
Index: linux-2.6.21.1/drivers/leds/Kconfig
|
||||
===================================================================
|
||||
--- linux-2.6.21.1.orig/drivers/leds/Kconfig 2007-07-10 20:56:30.000000000 +0200
|
||||
+++ linux-2.6.21.1/drivers/leds/Kconfig 2007-07-19 16:42:55.000000000 +0200
|
||||
@@ -95,6 +95,12 @@
|
||||
help
|
||||
This option enables support for the front LED on Cobalt Server
|
||||
diff -urN linux-2.6.23.12/drivers/leds/Kconfig linux-2.6.23.12.new/drivers/leds/Kconfig
|
||||
--- linux-2.6.23.12/drivers/leds/Kconfig 2007-12-18 22:55:57.000000000 +0100
|
||||
+++ linux-2.6.23.12.new/drivers/leds/Kconfig 2008-01-11 09:01:19.000000000 +0100
|
||||
@@ -101,6 +101,12 @@
|
||||
outputs. To be useful the particular board must have LEDs
|
||||
and they must be connected to the GPIO lines.
|
||||
|
||||
+config LEDS_RB500
|
||||
+ tristate "LED Support for RB5xx boards"
|
||||
@@ -27,3 +14,14 @@ Index: linux-2.6.21.1/drivers/leds/Kconfig
|
||||
comment "LED Triggers"
|
||||
|
||||
config LEDS_TRIGGERS
|
||||
diff -urN linux-2.6.23.12/drivers/leds/Makefile linux-2.6.23.12.new/drivers/leds/Makefile
|
||||
--- linux-2.6.23.12/drivers/leds/Makefile 2007-12-18 22:55:57.000000000 +0100
|
||||
+++ linux-2.6.23.12.new/drivers/leds/Makefile 2008-01-11 09:00:49.000000000 +0100
|
||||
@@ -17,6 +17,7 @@
|
||||
obj-$(CONFIG_LEDS_H1940) += leds-h1940.o
|
||||
obj-$(CONFIG_LEDS_COBALT) += leds-cobalt.o
|
||||
obj-$(CONFIG_LEDS_GPIO) += leds-gpio.o
|
||||
+obj-$(CONFIG_LEDS_RB500) += leds-rb500.o
|
||||
|
||||
# LED Triggers
|
||||
obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o
|
||||
|
||||
Reference in New Issue
Block a user