Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
05a3185c
Commit
05a3185c
authored
Mar 04, 2010
by
Uwe Kleine-König
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ARM: mx1: don't use deprecated symbol names
Signed-off-by:
Uwe Kleine-König
<
u.kleine-koenig@pengutronix.de
>
parent
c10ea4d6
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
81 additions
and
81 deletions
+81
-81
arch/arm/mach-mx1/Makefile
arch/arm/mach-mx1/Makefile
+0
-1
arch/arm/mach-mx1/clock.c
arch/arm/mach-mx1/clock.c
+2
-1
arch/arm/mach-mx1/crm_regs.h
arch/arm/mach-mx1/crm_regs.h
+2
-2
arch/arm/mach-mx1/devices.c
arch/arm/mach-mx1/devices.c
+59
-58
arch/arm/mach-mx1/generic.c
arch/arm/mach-mx1/generic.c
+6
-7
arch/arm/mach-mx1/mach-mx1ads.c
arch/arm/mach-mx1/mach-mx1ads.c
+6
-6
arch/arm/mach-mx1/mach-scb9328.c
arch/arm/mach-mx1/mach-scb9328.c
+6
-6
No files found.
arch/arm/mach-mx1/Makefile
View file @
05a3185c
...
@@ -4,7 +4,6 @@
...
@@ -4,7 +4,6 @@
# Object file lists.
# Object file lists.
EXTRA_CFLAGS
+=
-DIMX_NEEDS_DEPRECATED_SYMBOLS
obj-y
+=
generic.o clock.o devices.o
obj-y
+=
generic.o clock.o devices.o
# Support for CMOS sensor interface
# Support for CMOS sensor interface
...
...
arch/arm/mach-mx1/clock.c
View file @
05a3185c
...
@@ -596,7 +596,8 @@ int __init mx1_clocks_init(unsigned long fref)
...
@@ -596,7 +596,8 @@ int __init mx1_clocks_init(unsigned long fref)
clk_enable
(
&
hclk
);
clk_enable
(
&
hclk
);
clk_enable
(
&
fclk
);
clk_enable
(
&
fclk
);
mxc_timer_init
(
&
gpt_clk
,
IO_ADDRESS
(
TIM1_BASE_ADDR
),
TIM1_INT
);
mxc_timer_init
(
&
gpt_clk
,
MX1_IO_ADDRESS
(
MX1_TIM1_BASE_ADDR
),
MX1_TIM1_INT
);
return
0
;
return
0
;
}
}
arch/arm/mach-mx1/crm_regs.h
View file @
05a3185c
...
@@ -9,8 +9,8 @@
...
@@ -9,8 +9,8 @@
#ifndef __ARCH_ARM_MACH_MX1_CRM_REGS_H__
#ifndef __ARCH_ARM_MACH_MX1_CRM_REGS_H__
#define __ARCH_ARM_MACH_MX1_CRM_REGS_H__
#define __ARCH_ARM_MACH_MX1_CRM_REGS_H__
#define CCM_BASE
IO_ADDRESS(
CCM_BASE_ADDR)
#define CCM_BASE
MX1_IO_ADDRESS(MX1_
CCM_BASE_ADDR)
#define SCM_BASE
IO_ADDRESS(
SCM_BASE_ADDR)
#define SCM_BASE
MX1_IO_ADDRESS(MX1_
SCM_BASE_ADDR)
/* CCM register addresses */
/* CCM register addresses */
#define CCM_CSCR (CCM_BASE + 0x0)
#define CCM_CSCR (CCM_BASE + 0x0)
...
...
arch/arm/mach-mx1/devices.c
View file @
05a3185c
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/dma-mapping.h>
#include <linux/platform_device.h>
#include <linux/platform_device.h>
#include <linux/gpio.h>
#include <linux/gpio.h>
#include <mach/irqs.h>
#include <mach/irqs.h>
...
@@ -34,20 +35,20 @@ static struct resource imx_csi_resources[] = {
...
@@ -34,20 +35,20 @@ static struct resource imx_csi_resources[] = {
.
end
=
0x00224010
,
.
end
=
0x00224010
,
.
flags
=
IORESOURCE_MEM
,
.
flags
=
IORESOURCE_MEM
,
},
{
},
{
.
start
=
CSI_INT
,
.
start
=
MX1_
CSI_INT
,
.
end
=
CSI_INT
,
.
end
=
MX1_
CSI_INT
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
},
};
};
static
u64
imx_csi_dmamask
=
0xffffffffUL
;
static
u64
imx_csi_dmamask
=
DMA_BIT_MASK
(
32
)
;
struct
platform_device
imx_csi_device
=
{
struct
platform_device
imx_csi_device
=
{
.
name
=
"mx1-camera"
,
.
name
=
"mx1-camera"
,
.
id
=
0
,
/* This is used to put cameras on this interface */
.
id
=
0
,
/* This is used to put cameras on this interface */
.
dev
=
{
.
dev
=
{
.
dma_mask
=
&
imx_csi_dmamask
,
.
dma_mask
=
&
imx_csi_dmamask
,
.
coherent_dma_mask
=
0xffffffff
,
.
coherent_dma_mask
=
DMA_BIT_MASK
(
32
)
,
},
},
.
resource
=
imx_csi_resources
,
.
resource
=
imx_csi_resources
,
.
num_resources
=
ARRAY_SIZE
(
imx_csi_resources
),
.
num_resources
=
ARRAY_SIZE
(
imx_csi_resources
),
...
@@ -59,8 +60,8 @@ static struct resource imx_i2c_resources[] = {
...
@@ -59,8 +60,8 @@ static struct resource imx_i2c_resources[] = {
.
end
=
0x00217010
,
.
end
=
0x00217010
,
.
flags
=
IORESOURCE_MEM
,
.
flags
=
IORESOURCE_MEM
,
},
{
},
{
.
start
=
I2C_INT
,
.
start
=
MX1_
I2C_INT
,
.
end
=
I2C_INT
,
.
end
=
MX1_
I2C_INT
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
},
};
};
...
@@ -74,21 +75,21 @@ struct platform_device imx_i2c_device = {
...
@@ -74,21 +75,21 @@ struct platform_device imx_i2c_device = {
static
struct
resource
imx_uart1_resources
[]
=
{
static
struct
resource
imx_uart1_resources
[]
=
{
{
{
.
start
=
UART1_BASE_ADDR
,
.
start
=
MX1_
UART1_BASE_ADDR
,
.
end
=
UART1_BASE_ADDR
+
0xD0
,
.
end
=
MX1_
UART1_BASE_ADDR
+
0xD0
,
.
flags
=
IORESOURCE_MEM
,
.
flags
=
IORESOURCE_MEM
,
},
{
},
{
.
start
=
UART1_MINT_RX
,
.
start
=
MX1_
UART1_MINT_RX
,
.
end
=
UART1_MINT_RX
,
.
end
=
MX1_
UART1_MINT_RX
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
{
},
{
.
start
=
UART1_MINT_TX
,
.
start
=
MX1_
UART1_MINT_TX
,
.
end
=
UART1_MINT_TX
,
.
end
=
MX1_
UART1_MINT_TX
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
{
},
{
.
start
=
UART1_MINT_RTS
,
.
start
=
MX1_
UART1_MINT_RTS
,
.
end
=
UART1_MINT_RTS
,
.
end
=
MX1_
UART1_MINT_RTS
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
},
};
};
...
@@ -101,21 +102,21 @@ struct platform_device imx_uart1_device = {
...
@@ -101,21 +102,21 @@ struct platform_device imx_uart1_device = {
static
struct
resource
imx_uart2_resources
[]
=
{
static
struct
resource
imx_uart2_resources
[]
=
{
{
{
.
start
=
UART2_BASE_ADDR
,
.
start
=
MX1_
UART2_BASE_ADDR
,
.
end
=
UART2_BASE_ADDR
+
0xD0
,
.
end
=
MX1_
UART2_BASE_ADDR
+
0xD0
,
.
flags
=
IORESOURCE_MEM
,
.
flags
=
IORESOURCE_MEM
,
},
{
},
{
.
start
=
UART2_MINT_RX
,
.
start
=
MX1_
UART2_MINT_RX
,
.
end
=
UART2_MINT_RX
,
.
end
=
MX1_
UART2_MINT_RX
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
{
},
{
.
start
=
UART2_MINT_TX
,
.
start
=
MX1_
UART2_MINT_TX
,
.
end
=
UART2_MINT_TX
,
.
end
=
MX1_
UART2_MINT_TX
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
{
},
{
.
start
=
UART2_MINT_RTS
,
.
start
=
MX1_
UART2_MINT_RTS
,
.
end
=
UART2_MINT_RTS
,
.
end
=
MX1_
UART2_MINT_RTS
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
},
};
};
...
@@ -132,12 +133,12 @@ static struct resource imx_rtc_resources[] = {
...
@@ -132,12 +133,12 @@ static struct resource imx_rtc_resources[] = {
.
end
=
0x00204024
,
.
end
=
0x00204024
,
.
flags
=
IORESOURCE_MEM
,
.
flags
=
IORESOURCE_MEM
,
},
{
},
{
.
start
=
RTC_INT
,
.
start
=
MX1_
RTC_INT
,
.
end
=
RTC_INT
,
.
end
=
MX1_
RTC_INT
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
{
},
{
.
start
=
RTC_SAMINT
,
.
start
=
MX1_
RTC_SAMINT
,
.
end
=
RTC_SAMINT
,
.
end
=
MX1_
RTC_SAMINT
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
},
};
};
...
@@ -155,8 +156,8 @@ static struct resource imx_wdt_resources[] = {
...
@@ -155,8 +156,8 @@ static struct resource imx_wdt_resources[] = {
.
end
=
0x00201008
,
.
end
=
0x00201008
,
.
flags
=
IORESOURCE_MEM
,
.
flags
=
IORESOURCE_MEM
,
},
{
},
{
.
start
=
WDT_INT
,
.
start
=
MX1_
WDT_INT
,
.
end
=
WDT_INT
,
.
end
=
MX1_
WDT_INT
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
},
};
};
...
@@ -174,32 +175,32 @@ static struct resource imx_usb_resources[] = {
...
@@ -174,32 +175,32 @@ static struct resource imx_usb_resources[] = {
.
end
=
0x00212148
,
.
end
=
0x00212148
,
.
flags
=
IORESOURCE_MEM
,
.
flags
=
IORESOURCE_MEM
,
},
{
},
{
.
start
=
USBD_INT0
,
.
start
=
MX1_
USBD_INT0
,
.
end
=
USBD_INT0
,
.
end
=
MX1_
USBD_INT0
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
{
},
{
.
start
=
USBD_INT1
,
.
start
=
MX1_
USBD_INT1
,
.
end
=
USBD_INT1
,
.
end
=
MX1_
USBD_INT1
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
{
},
{
.
start
=
USBD_INT2
,
.
start
=
MX1_
USBD_INT2
,
.
end
=
USBD_INT2
,
.
end
=
MX1_
USBD_INT2
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
{
},
{
.
start
=
USBD_INT3
,
.
start
=
MX1_
USBD_INT3
,
.
end
=
USBD_INT3
,
.
end
=
MX1_
USBD_INT3
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
{
},
{
.
start
=
USBD_INT4
,
.
start
=
MX1_
USBD_INT4
,
.
end
=
USBD_INT4
,
.
end
=
MX1_
USBD_INT4
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
{
},
{
.
start
=
USBD_INT5
,
.
start
=
MX1_
USBD_INT5
,
.
end
=
USBD_INT5
,
.
end
=
MX1_
USBD_INT5
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
{
},
{
.
start
=
USBD_INT6
,
.
start
=
MX1_
USBD_INT6
,
.
end
=
USBD_INT6
,
.
end
=
MX1_
USBD_INT6
,
.
flags
=
IORESOURCE_IRQ
,
.
flags
=
IORESOURCE_IRQ
,
},
},
};
};
...
@@ -215,23 +216,23 @@ struct platform_device imx_usb_device = {
...
@@ -215,23 +216,23 @@ struct platform_device imx_usb_device = {
static
struct
mxc_gpio_port
imx_gpio_ports
[]
=
{
static
struct
mxc_gpio_port
imx_gpio_ports
[]
=
{
{
{
.
chip
.
label
=
"gpio-0"
,
.
chip
.
label
=
"gpio-0"
,
.
base
=
(
void
__iomem
*
)
IO_ADDRESS
(
GPIO_BASE_ADDR
),
.
base
=
(
void
__iomem
*
)
MX1_IO_ADDRESS
(
MX1_
GPIO_BASE_ADDR
),
.
irq
=
GPIO_INT_PORTA
,
.
irq
=
MX1_
GPIO_INT_PORTA
,
.
virtual_irq_start
=
MXC_GPIO_IRQ_START
,
.
virtual_irq_start
=
MXC_GPIO_IRQ_START
,
},
{
},
{
.
chip
.
label
=
"gpio-1"
,
.
chip
.
label
=
"gpio-1"
,
.
base
=
(
void
__iomem
*
)
IO_ADDRESS
(
GPIO_BASE_ADDR
+
0x100
),
.
base
=
(
void
__iomem
*
)
MX1_IO_ADDRESS
(
MX1_
GPIO_BASE_ADDR
+
0x100
),
.
irq
=
GPIO_INT_PORTB
,
.
irq
=
MX1_
GPIO_INT_PORTB
,
.
virtual_irq_start
=
MXC_GPIO_IRQ_START
+
32
,
.
virtual_irq_start
=
MXC_GPIO_IRQ_START
+
32
,
},
{
},
{
.
chip
.
label
=
"gpio-2"
,
.
chip
.
label
=
"gpio-2"
,
.
base
=
(
void
__iomem
*
)
IO_ADDRESS
(
GPIO_BASE_ADDR
+
0x200
),
.
base
=
(
void
__iomem
*
)
MX1_IO_ADDRESS
(
MX1_
GPIO_BASE_ADDR
+
0x200
),
.
irq
=
GPIO_INT_PORTC
,
.
irq
=
MX1_
GPIO_INT_PORTC
,
.
virtual_irq_start
=
MXC_GPIO_IRQ_START
+
64
,
.
virtual_irq_start
=
MXC_GPIO_IRQ_START
+
64
,
},
{
},
{
.
chip
.
label
=
"gpio-3"
,
.
chip
.
label
=
"gpio-3"
,
.
base
=
(
void
__iomem
*
)
IO_ADDRESS
(
GPIO_BASE_ADDR
+
0x300
),
.
base
=
(
void
__iomem
*
)
MX1_IO_ADDRESS
(
MX1_
GPIO_BASE_ADDR
+
0x300
),
.
irq
=
GPIO_INT_PORTD
,
.
irq
=
MX1_
GPIO_INT_PORTD
,
.
virtual_irq_start
=
MXC_GPIO_IRQ_START
+
96
,
.
virtual_irq_start
=
MXC_GPIO_IRQ_START
+
96
,
}
}
};
};
...
...
arch/arm/mach-mx1/generic.c
View file @
05a3185c
...
@@ -31,23 +31,22 @@
...
@@ -31,23 +31,22 @@
static
struct
map_desc
imx_io_desc
[]
__initdata
=
{
static
struct
map_desc
imx_io_desc
[]
__initdata
=
{
{
{
.
virtual
=
IMX_IO_BASE
,
.
virtual
=
MX1_IO_BASE_ADDR_VIRT
,
.
pfn
=
__phys_to_pfn
(
IMX_IO_PHYS
),
.
pfn
=
__phys_to_pfn
(
MX1_IO_BASE_ADDR
),
.
length
=
IMX
_IO_SIZE
,
.
length
=
MX1
_IO_SIZE
,
.
type
=
MT_DEVICE
.
type
=
MT_DEVICE
}
}
};
};
void
__init
mx1_map_io
(
void
)
void
__init
mx1_map_io
(
void
)
{
{
mxc_set_cpu_type
(
MXC_CPU_MX1
);
mxc_set_cpu_type
(
MXC_CPU_MX1
);
mxc_arch_reset_init
(
IO_ADDRESS
(
WDT_BASE_ADDR
));
mxc_arch_reset_init
(
MX1_IO_ADDRESS
(
MX1_
WDT_BASE_ADDR
));
iotable_init
(
imx_io_desc
,
ARRAY_SIZE
(
imx_io_desc
));
iotable_init
(
imx_io_desc
,
ARRAY_SIZE
(
imx_io_desc
));
}
}
void
__init
mx1_init_irq
(
void
)
void
__init
mx1_init_irq
(
void
)
{
{
mxc_init_irq
(
IO_ADDRESS
(
AVIC_BASE_ADDR
));
mxc_init_irq
(
MX1_IO_ADDRESS
(
MX1_
AVIC_BASE_ADDR
));
}
}
arch/arm/mach-mx1/mach-mx1ads.c
View file @
05a3185c
...
@@ -75,8 +75,8 @@ static struct physmap_flash_data mx1ads_flash_data = {
...
@@ -75,8 +75,8 @@ static struct physmap_flash_data mx1ads_flash_data = {
};
};
static
struct
resource
flash_resource
=
{
static
struct
resource
flash_resource
=
{
.
start
=
IMX
_CS0_PHYS
,
.
start
=
MX1
_CS0_PHYS
,
.
end
=
IMX
_CS0_PHYS
+
SZ_32M
-
1
,
.
end
=
MX1
_CS0_PHYS
+
SZ_32M
-
1
,
.
flags
=
IORESOURCE_MEM
,
.
flags
=
IORESOURCE_MEM
,
};
};
...
@@ -145,8 +145,8 @@ struct sys_timer mx1ads_timer = {
...
@@ -145,8 +145,8 @@ struct sys_timer mx1ads_timer = {
MACHINE_START
(
MX1ADS
,
"Freescale MX1ADS"
)
MACHINE_START
(
MX1ADS
,
"Freescale MX1ADS"
)
/* Maintainer: Sascha Hauer, Pengutronix */
/* Maintainer: Sascha Hauer, Pengutronix */
.
phys_io
=
IMX_IO_PHYS
,
.
phys_io
=
MX1_IO_BASE_ADDR
,
.
io_pg_offst
=
(
IMX_IO_BASE
>>
18
)
&
0xfffc
,
.
io_pg_offst
=
(
MX1_IO_BASE_ADDR_VIRT
>>
18
)
&
0xfffc
,
.
boot_params
=
MX1_PHYS_OFFSET
+
0x100
,
.
boot_params
=
MX1_PHYS_OFFSET
+
0x100
,
.
map_io
=
mx1_map_io
,
.
map_io
=
mx1_map_io
,
.
init_irq
=
mx1_init_irq
,
.
init_irq
=
mx1_init_irq
,
...
@@ -155,8 +155,8 @@ MACHINE_START(MX1ADS, "Freescale MX1ADS")
...
@@ -155,8 +155,8 @@ MACHINE_START(MX1ADS, "Freescale MX1ADS")
MACHINE_END
MACHINE_END
MACHINE_START
(
MXLADS
,
"Freescale MXLADS"
)
MACHINE_START
(
MXLADS
,
"Freescale MXLADS"
)
.
phys_io
=
IMX_IO_PHYS
,
.
phys_io
=
MX1_IO_BASE_ADDR
,
.
io_pg_offst
=
(
IMX_IO_BASE
>>
18
)
&
0xfffc
,
.
io_pg_offst
=
(
MX1_IO_BASE_ADDR_VIRT
>>
18
)
&
0xfffc
,
.
boot_params
=
MX1_PHYS_OFFSET
+
0x100
,
.
boot_params
=
MX1_PHYS_OFFSET
+
0x100
,
.
map_io
=
mx1_map_io
,
.
map_io
=
mx1_map_io
,
.
init_irq
=
mx1_init_irq
,
.
init_irq
=
mx1_init_irq
,
...
...
arch/arm/mach-mx1/mach-scb9328.c
View file @
05a3185c
...
@@ -31,8 +31,8 @@
...
@@ -31,8 +31,8 @@
* This scb9328 has a 32MiB flash
* This scb9328 has a 32MiB flash
*/
*/
static
struct
resource
flash_resource
=
{
static
struct
resource
flash_resource
=
{
.
start
=
IMX
_CS0_PHYS
,
.
start
=
MX1
_CS0_PHYS
,
.
end
=
IMX
_CS0_PHYS
+
(
32
*
1024
*
1024
)
-
1
,
.
end
=
MX1
_CS0_PHYS
+
(
32
*
1024
*
1024
)
-
1
,
.
flags
=
IORESOURCE_MEM
,
.
flags
=
IORESOURCE_MEM
,
};
};
...
@@ -70,13 +70,13 @@ static struct dm9000_plat_data dm9000_platdata = {
...
@@ -70,13 +70,13 @@ static struct dm9000_plat_data dm9000_platdata = {
static
struct
resource
dm9000x_resources
[]
=
{
static
struct
resource
dm9000x_resources
[]
=
{
{
{
.
name
=
"address area"
,
.
name
=
"address area"
,
.
start
=
IMX
_CS5_PHYS
,
.
start
=
MX1
_CS5_PHYS
,
.
end
=
IMX
_CS5_PHYS
+
1
,
.
end
=
MX1
_CS5_PHYS
+
1
,
.
flags
=
IORESOURCE_MEM
,
/* address access */
.
flags
=
IORESOURCE_MEM
,
/* address access */
},
{
},
{
.
name
=
"data area"
,
.
name
=
"data area"
,
.
start
=
IMX
_CS5_PHYS
+
4
,
.
start
=
MX1
_CS5_PHYS
+
4
,
.
end
=
IMX
_CS5_PHYS
+
5
,
.
end
=
MX1
_CS5_PHYS
+
5
,
.
flags
=
IORESOURCE_MEM
,
/* data access */
.
flags
=
IORESOURCE_MEM
,
/* data access */
},
{
},
{
.
start
=
IRQ_GPIOC
(
3
),
.
start
=
IRQ_GPIOC
(
3
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment