diff options
Diffstat (limited to 'arch/arm/mach-exynos')
-rw-r--r-- | arch/arm/mach-exynos/board-m0-modems.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-exynos/board-trats.c | 72 | ||||
-rw-r--r-- | arch/arm/mach-exynos/include/mach/busfreq_exynos4.h | 5 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-px.c | 72 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-smdk5210.c | 15 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-u1.c | 86 | ||||
-rw-r--r-- | arch/arm/mach-exynos/reserve_mem-exynos4.c | 22 | ||||
-rw-r--r-- | arch/arm/mach-exynos/sec_watchdog.c | 6 |
8 files changed, 22 insertions, 261 deletions
diff --git a/arch/arm/mach-exynos/board-m0-modems.c b/arch/arm/mach-exynos/board-m0-modems.c index 4139c79..50d475e 100644 --- a/arch/arm/mach-exynos/board-m0-modems.c +++ b/arch/arm/mach-exynos/board-m0-modems.c @@ -28,7 +28,12 @@ #include <linux/usb/hcd.h> #include <linux/usb/ehci_def.h> +#ifdef CONFIG_SEC_MODEM_M0 +#include "../../../drivers/misc/modem_if/modem.h" +#else #include <linux/platform_data/modem.h> +#endif + #include <mach/sec_modem.h> extern int s3c_gpio_slp_cfgpin(unsigned int pin, unsigned int config); diff --git a/arch/arm/mach-exynos/board-trats.c b/arch/arm/mach-exynos/board-trats.c index cf725ab..ed62092 100644 --- a/arch/arm/mach-exynos/board-trats.c +++ b/arch/arm/mach-exynos/board-trats.c @@ -47,9 +47,6 @@ #ifdef CONFIG_JACK_MON #include <linux/jack.h> #endif -#ifdef CONFIG_ANDROID_PMEM -#include <linux/android_pmem.h> -#endif #include <linux/k3g.h> #include <asm/mach/arch.h> @@ -4844,53 +4841,6 @@ static struct platform_device s3c_device_i2c17 = { }; #endif -#ifdef CONFIG_ANDROID_PMEM -static struct android_pmem_platform_data pmem_pdata = { - .name = "pmem", - .no_allocator = 1, - .cached = 0, - .start = 0, - .size = 0 -}; - -static struct android_pmem_platform_data pmem_gpu1_pdata = { - .name = "pmem_gpu1", - .no_allocator = 1, - .cached = 0, - .start = 0, - .size = 0, -}; - -static struct platform_device pmem_device = { - .name = "android_pmem", - .id = 0, - .dev = { - .platform_data = &pmem_pdata}, -}; - -static struct platform_device pmem_gpu1_device = { - .name = "android_pmem", - .id = 1, - .dev = { - .platform_data = &pmem_gpu1_pdata}, -}; - -static void __init android_pmem_set_platdata(void) -{ -#if defined(CONFIG_S5P_MEM_CMA) - pmem_pdata.size = CONFIG_ANDROID_PMEM_MEMSIZE_PMEM * SZ_1K; - pmem_gpu1_pdata.size = CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_GPU1 * SZ_1K; -#else - pmem_pdata.start = (u32) s5p_get_media_memory_bank(S5P_MDEV_PMEM, 0); - pmem_pdata.size = (u32) s5p_get_media_memsize_bank(S5P_MDEV_PMEM, 0); - pmem_gpu1_pdata.start = - (u32) s5p_get_media_memory_bank(S5P_MDEV_PMEM_GPU1, 0); - pmem_gpu1_pdata.size = - (u32) s5p_get_media_memsize_bank(S5P_MDEV_PMEM_GPU1, 0); -#endif -} -#endif - /* USB EHCI */ #ifdef CONFIG_USB_EHCI_S5P static struct s5p_ehci_platdata smdkc210_ehci_pdata; @@ -5187,10 +5137,6 @@ static struct platform_device *smdkc210_devices[] __initdata = { &ipc_spi_device, #endif -#ifdef CONFIG_ANDROID_PMEM - &pmem_device, - &pmem_gpu1_device, -#endif #ifdef CONFIG_VIDEO_FIMC &s3c_device_fimc0, &s3c_device_fimc1, @@ -5350,20 +5296,6 @@ static void __init exynos4_reserve_mem(void) .start = 0 }, #endif -#ifdef CONFIG_ANDROID_PMEM_MEMSIZE_PMEM - { - .name = "pmem", - .size = CONFIG_ANDROID_PMEM_MEMSIZE_PMEM * SZ_1K, - .start = 0, - }, -#endif -#ifdef CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_GPU1 - { - .name = "pmem_gpu1", - .size = CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_GPU1 * SZ_1K, - .start = 0, - }, -#endif #ifdef CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMC0 { .name = "fimc0", @@ -5453,7 +5385,6 @@ static void __init exynos4_reserve_mem(void) #ifdef CONFIG_DRM_EXYNOS "exynos-drm=drm;" #endif - "android_pmem.0=pmem;android_pmem.1=pmem_gpu1;" "s3c-fimc.0=fimc0;s3c-fimc.1=fimc1;s3c-fimc.2=fimc2;s3c-fimc.3=fimc3;" "exynos4210-fimc.0=fimc0;exynos4210-fimc.1=fimc1;exynos4210-fimc.2=fimc2;exynos4210-fimc3=fimc3;" #ifdef CONFIG_ION_EXYNOS @@ -5726,9 +5657,6 @@ static void __init trats_machine_init(void) s5p_device_jpeg.dev.parent = &exynos4_device_pd[PD_CAM].dev; #endif #endif -#ifdef CONFIG_ANDROID_PMEM - android_pmem_set_platdata(); -#endif #ifdef CONFIG_VIDEO_FIMC /* fimc */ s3c_fimc0_set_platdata(&fimc_plat); diff --git a/arch/arm/mach-exynos/include/mach/busfreq_exynos4.h b/arch/arm/mach-exynos/include/mach/busfreq_exynos4.h index f8f377d..ab75f55 100644 --- a/arch/arm/mach-exynos/include/mach/busfreq_exynos4.h +++ b/arch/arm/mach-exynos/include/mach/busfreq_exynos4.h @@ -27,6 +27,11 @@ #define PRIME_DMC_MAX_THRESHOLD 30 #define EXYNOS4412_DMC_MAX_THRESHOLD 30 #define EXYNOS4212_DMC_MAX_THRESHOLD 30 +#if defined(CONFIG_MACH_P4NOTE) || defined(CONFIG_MACH_SP7160LTE) || defined(CONFIG_MACH_M0) || defined(CONFIG_MACH_C1) || defined(CONFIG_MACH_T0) +#define DECODING_LOAD 5 +#else +#define DECODING_LOAD 10 +#endif extern unsigned int up_threshold; extern unsigned int ppmu_threshold; diff --git a/arch/arm/mach-exynos/mach-px.c b/arch/arm/mach-exynos/mach-px.c index eaec80f..cc26a75 100644 --- a/arch/arm/mach-exynos/mach-px.c +++ b/arch/arm/mach-exynos/mach-px.c @@ -57,9 +57,6 @@ #if defined(CONFIG_S5P_MEM_CMA) #include <linux/cma.h> #endif -#ifdef CONFIG_ANDROID_PMEM -#include <linux/android_pmem.h> -#endif #include <asm/mach/arch.h> #include <asm/mach-types.h> @@ -5914,53 +5911,6 @@ static void __init mipi_fb_init(void) } #endif -#ifdef CONFIG_ANDROID_PMEM -static struct android_pmem_platform_data pmem_pdata = { - .name = "pmem", - .no_allocator = 1, - .cached = 0, - .start = 0, - .size = 0 -}; - -static struct android_pmem_platform_data pmem_gpu1_pdata = { - .name = "pmem_gpu1", - .no_allocator = 1, - .cached = 0, - .start = 0, - .size = 0, -}; - -static struct platform_device pmem_device = { - .name = "android_pmem", - .id = 0, - .dev = { - .platform_data = &pmem_pdata}, -}; - -static struct platform_device pmem_gpu1_device = { - .name = "android_pmem", - .id = 1, - .dev = { - .platform_data = &pmem_gpu1_pdata}, -}; - -static void __init android_pmem_set_platdata(void) -{ -#if defined(CONFIG_S5P_MEM_CMA) - pmem_pdata.size = CONFIG_ANDROID_PMEM_MEMSIZE_PMEM * SZ_1K; - pmem_gpu1_pdata.size = CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_GPU1 * SZ_1K; -#else - pmem_pdata.start = (u32) s5p_get_media_memory_bank(S5P_MDEV_PMEM, 0); - pmem_pdata.size = (u32) s5p_get_media_memsize_bank(S5P_MDEV_PMEM, 0); - pmem_gpu1_pdata.start = - (u32) s5p_get_media_memory_bank(S5P_MDEV_PMEM_GPU1, 0); - pmem_gpu1_pdata.size = - (u32) s5p_get_media_memsize_bank(S5P_MDEV_PMEM_GPU1, 0); -#endif -} -#endif - /* USB EHCI */ #ifdef CONFIG_USB_EHCI_S5P static struct s5p_ehci_platdata smdkc210_ehci_pdata; @@ -6753,10 +6703,6 @@ static struct platform_device *smdkc210_devices[] __initdata = { #ifdef CONFIG_BATTERY_SEC_PX &sec_battery_device, #endif -#ifdef CONFIG_ANDROID_PMEM - &pmem_device, - &pmem_gpu1_device, -#endif #ifdef CONFIG_INTERNAL_MODEM_IF &sec_idpram_pm_device, @@ -7132,20 +7078,6 @@ static void __init exynos4_cma_region_reserve(struct cma_region *regions_normal, static void __init exynos4_reserve_mem(void) { static struct cma_region regions[] = { -#ifdef CONFIG_ANDROID_PMEM_MEMSIZE_PMEM - { - .name = "pmem", - .size = CONFIG_ANDROID_PMEM_MEMSIZE_PMEM * SZ_1K, - .start = 0, - }, -#endif -#ifdef CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_GPU1 - { - .name = "pmem_gpu1", - .size = CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_GPU1 * SZ_1K, - .start = 0, - }, -#endif #ifdef CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMD { .name = "fimd", @@ -7245,7 +7177,6 @@ static void __init exynos4_reserve_mem(void) }; static const char map[] __initconst = - "android_pmem.0=pmem;android_pmem.1=pmem_gpu1;" "s3cfb.0=fimd;exynos4-fb.0=fimd;samsung-pd.1=fimd;" "s3c-fimc.0=fimc0;s3c-fimc.1=fimc1;s3c-fimc.2=fimc2;s3c-fimc.3=fimc3;" "exynos4210-fimc.0=fimc0;exynos4210-fimc.1=fimc1;exynos4210-fimc.2=fimc2;exynos4210-fimc.3=fimc3;" @@ -7674,9 +7605,6 @@ static void __init smdkc210_machine_init(void) s3c24xx_ts1_set_platdata(&s3c_ts_platform); #endif #endif -#ifdef CONFIG_ANDROID_PMEM - android_pmem_set_platdata(); -#endif #ifdef CONFIG_VIDEO_FIMC /* fimc */ s3c_fimc0_set_platdata(&fimc_plat); diff --git a/arch/arm/mach-exynos/mach-smdk5210.c b/arch/arm/mach-exynos/mach-smdk5210.c index 16ccba4..9ed28fa 100644 --- a/arch/arm/mach-exynos/mach-smdk5210.c +++ b/arch/arm/mach-exynos/mach-smdk5210.c @@ -947,20 +947,6 @@ static void __init exynos5_cma_region_reserve( static void __init exynos5_reserve_mem(void) { static struct cma_region regions[] = { -#ifdef CONFIG_ANDROID_PMEM_MEMSIZE_PMEM - { - .name = "pmem", - .size = CONFIG_ANDROID_PMEM_MEMSIZE_PMEM * SZ_1K, - .start = 0, - }, -#endif -#ifdef CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_GPU1 - { - .name = "pmem_gpu1", - .size = CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_GPU1 * SZ_1K, - .start = 0, - }, -#endif #ifdef CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMD { .name = "fimd", @@ -1021,7 +1007,6 @@ static void __init exynos5_reserve_mem(void) }, }; static const char map[] __initconst = - "android_pmem.0=pmem;android_pmem.1=pmem_gpu1;" "s3cfb.0=fimd;" "exynos-gsc.0=gsc0;exynos-gsc.1=gsc1;exynos-gsc.2=gsc2;exynos-gsc.3=gsc3;" "ion-exynos=fimd,gsc0,gsc1,gsc2,gsc3;" diff --git a/arch/arm/mach-exynos/mach-u1.c b/arch/arm/mach-exynos/mach-u1.c index ab756ab..ba440d2 100644 --- a/arch/arm/mach-exynos/mach-u1.c +++ b/arch/arm/mach-exynos/mach-u1.c @@ -55,9 +55,6 @@ #if defined(CONFIG_S5P_MEM_CMA) #include <linux/cma.h> #endif -#ifdef CONFIG_ANDROID_PMEM -#include <linux/android_pmem.h> -#endif #include <asm/mach/arch.h> #include <asm/mach-types.h> @@ -198,7 +195,7 @@ static struct wacom_g5_callbacks *wacom_callbacks; #endif /* CONFIG_EPEN_WACOM_G5SP */ -#ifdef CONFIG_KEYBOARD_CYPRESS_TOUCH +#if defined(CONFIG_KEYBOARD_CYPRESS_TOUCH) || defined(CONFIG_KEYBOARD_CYPRESS_TOUCH_BLN) #include <linux/i2c/touchkey_i2c.h> #endif @@ -3095,7 +3092,11 @@ REGULATOR_INIT(ldo17, "VTF_2.8V", 2800000, 2800000, 0, REGULATOR_INIT(ldo18, "TOUCH_LED_3.3V", 3300000, 3300000, 0, REGULATOR_CHANGE_STATUS, 1); #else +#if defined(CONFIG_KEYBOARD_CYPRESS_TOUCH_BLN) && defined(CONFIG_TOUCHKEY_BLN) +REGULATOR_INIT(ldo18, "TOUCH_LED_3.3V", 2500000, 3300000, 0, +#else REGULATOR_INIT(ldo18, "TOUCH_LED_3.3V", 3000000, 3300000, 0, +#endif REGULATOR_CHANGE_STATUS | REGULATOR_CHANGE_VOLTAGE, 1); #endif REGULATOR_INIT(ldo21, "VDDQ_M1M2_1.2V", 1200000, 1200000, 1, @@ -6194,7 +6195,7 @@ static void p6_wacom_register_callbacks(struct wacom_g5_callbacks *cb) #ifdef CONFIG_S3C_DEV_I2C8_EMUL static struct i2c_board_info i2c_devs8_emul[]; #endif -#ifdef CONFIG_KEYBOARD_CYPRESS_TOUCH +#if defined(CONFIG_KEYBOARD_CYPRESS_TOUCH) || defined(CONFIG_KEYBOARD_CYPRESS_TOUCH_BLN) static void touchkey_init_hw(void) { gpio_request(GPIO_3_TOUCH_INT, "3_TOUCH_INT"); @@ -6295,7 +6296,7 @@ static struct touchkey_platform_data touchkey_pdata = { .power_on = touchkey_power_on, .led_power_on = touchkey_led_power_on, }; -#endif /*CONFIG_KEYBOARD_CYPRESS_TOUCH*/ +#endif /*(CONFIG_KEYBOARD_CYPRESS_TOUCH) || (CONFIG_KEYBOARD_CYPRESS_TOUCH_BLN)*/ @@ -6448,7 +6449,7 @@ struct platform_device s3c_device_i2c8 = { /* I2C8 */ static struct i2c_board_info i2c_devs8_emul[] = { -#ifdef CONFIG_KEYBOARD_CYPRESS_TOUCH +#if defined(CONFIG_KEYBOARD_CYPRESS_TOUCH) || defined(CONFIG_KEYBOARD_CYPRESS_TOUCH_BLN) { I2C_BOARD_INFO("sec_touchkey", 0x20), .platform_data = &touchkey_pdata, @@ -7128,53 +7129,6 @@ static void __init mipi_fb_init(void) } #endif -#ifdef CONFIG_ANDROID_PMEM -static struct android_pmem_platform_data pmem_pdata = { - .name = "pmem", - .no_allocator = 1, - .cached = 0, - .start = 0, - .size = 0 -}; - -static struct android_pmem_platform_data pmem_gpu1_pdata = { - .name = "pmem_gpu1", - .no_allocator = 1, - .cached = 0, - .start = 0, - .size = 0, -}; - -static struct platform_device pmem_device = { - .name = "android_pmem", - .id = 0, - .dev = { - .platform_data = &pmem_pdata}, -}; - -static struct platform_device pmem_gpu1_device = { - .name = "android_pmem", - .id = 1, - .dev = { - .platform_data = &pmem_gpu1_pdata}, -}; - -static void __init android_pmem_set_platdata(void) -{ -#if defined(CONFIG_S5P_MEM_CMA) - pmem_pdata.size = CONFIG_ANDROID_PMEM_MEMSIZE_PMEM * SZ_1K; - pmem_gpu1_pdata.size = CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_GPU1 * SZ_1K; -#else - pmem_pdata.start = (u32) s5p_get_media_memory_bank(S5P_MDEV_PMEM, 0); - pmem_pdata.size = (u32) s5p_get_media_memsize_bank(S5P_MDEV_PMEM, 0); - pmem_gpu1_pdata.start = - (u32) s5p_get_media_memory_bank(S5P_MDEV_PMEM_GPU1, 0); - pmem_gpu1_pdata.size = - (u32) s5p_get_media_memsize_bank(S5P_MDEV_PMEM_GPU1, 0); -#endif -} -#endif - /* USB EHCI */ #ifdef CONFIG_USB_EHCI_S5P static struct s5p_ehci_platdata smdkc210_ehci_pdata; @@ -7479,10 +7433,6 @@ static struct platform_device *smdkc210_devices[] __initdata = { &s5p_device_cec, &s5p_device_hpd, #endif -#ifdef CONFIG_ANDROID_PMEM - &pmem_device, - &pmem_gpu1_device, -#endif #ifdef CONFIG_VIDEO_FIMC &s3c_device_fimc0, &s3c_device_fimc1, @@ -7645,20 +7595,6 @@ static void __init exynos4_cma_region_reserve(struct cma_region *regions_normal, static void __init exynos4_reserve_mem(void) { static struct cma_region regions[] = { -#ifdef CONFIG_ANDROID_PMEM_MEMSIZE_PMEM - { - .name = "pmem", - .size = CONFIG_ANDROID_PMEM_MEMSIZE_PMEM * SZ_1K, - .start = 0, - }, -#endif -#ifdef CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_GPU1 - { - .name = "pmem_gpu1", - .size = CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_GPU1 * SZ_1K, - .start = 0, - }, -#endif #ifdef CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMD { .name = "fimd", @@ -7766,7 +7702,6 @@ static void __init exynos4_reserve_mem(void) }; static const char map[] __initconst = - "android_pmem.0=pmem;android_pmem.1=pmem_gpu1;" "s3cfb.0=fimd;exynos4-fb.0=fimd;samsung-pd.1=fimd;" "s3c-fimc.0=fimc0;s3c-fimc.1=fimc1;s3c-fimc.2=fimc2;s3c-fimc.3=fimc3;" "exynos4210-fimc.0=fimc0;exynos4210-fimc.1=fimc1;" @@ -7983,7 +7918,7 @@ static void __init smdkc210_machine_init(void) ARRAY_SIZE(tuna_i2c15_boardinfo)); #endif #ifdef CONFIG_S3C_DEV_I2C8_EMUL -#ifdef CONFIG_KEYBOARD_CYPRESS_TOUCH +#if defined(CONFIG_KEYBOARD_CYPRESS_TOUCH) || defined(CONFIG_KEYBOARD_CYPRESS_TOUCH_BLN) touchkey_init_hw(); #endif i2c_register_board_info(8, i2c_devs8_emul, ARRAY_SIZE(i2c_devs8_emul)); @@ -8095,9 +8030,6 @@ static void __init smdkc210_machine_init(void) s3c24xx_ts1_set_platdata(&s3c_ts_platform); #endif #endif -#ifdef CONFIG_ANDROID_PMEM - android_pmem_set_platdata(); -#endif #ifdef CONFIG_VIDEO_FIMC /* fimc */ s3c_fimc0_set_platdata(&fimc_plat); diff --git a/arch/arm/mach-exynos/reserve_mem-exynos4.c b/arch/arm/mach-exynos/reserve_mem-exynos4.c index c48c64f..bd0d332 100644 --- a/arch/arm/mach-exynos/reserve_mem-exynos4.c +++ b/arch/arm/mach-exynos/reserve_mem-exynos4.c @@ -49,28 +49,6 @@ struct s5p_media_device media_devs[] = { }, #endif -#if defined(CONFIG_MACH_U1) || defined(CONFIG_MACH_TRATS) -#ifdef CONFIG_ANDROID_PMEM_MEMSIZE_PMEM - { - .id = S5P_MDEV_PMEM, - .name = "pmem", - .bank = 0, - .memsize = CONFIG_ANDROID_PMEM_MEMSIZE_PMEM * SZ_1K, - .paddr = 0, - }, -#endif - -#ifdef CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_GPU1 - { - .id = S5P_MDEV_PMEM_GPU1, - .name = "pmem_gpu1", - .bank = 0, - .memsize = CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_GPU1 * SZ_1K, - .paddr = 0, - }, -#endif -#endif - #ifdef CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMC0 { .id = S5P_MDEV_FIMC0, diff --git a/arch/arm/mach-exynos/sec_watchdog.c b/arch/arm/mach-exynos/sec_watchdog.c index b903b80..4ee118a 100644 --- a/arch/arm/mach-exynos/sec_watchdog.c +++ b/arch/arm/mach-exynos/sec_watchdog.c @@ -69,7 +69,7 @@ static spinlock_t wdt_lock; #if defined(PET_BY_WORKQUEUE) static void watchdog_workfunc(struct work_struct *work) { - pr_info("%s kicking...%x\n", __func__, readl(S3C2410_WTCNT)); + pr_debug("%s kicking...%x\n", __func__, readl(S3C2410_WTCNT)); writel(watchdog_reset * TPS, S3C2410_WTCNT); queue_delayed_work_on(0, watchdog_wq, &watchdog_work, watchdog_pet * HZ); @@ -77,7 +77,7 @@ static void watchdog_workfunc(struct work_struct *work) #elif defined(PET_BY_DIRECT_TIMER) static void pet_watchdog_timer_fn(unsigned long data) { - pr_info("%s kicking...%x\n", __func__, readl(S3C2410_WTCNT)); + pr_debug("%s kicking...%x\n", __func__, readl(S3C2410_WTCNT)); writel(watchdog_reset * TPS, S3C2410_WTCNT); pet_watchdog_timer.expires += watchdog_pet * HZ; add_timer_on(&pet_watchdog_timer, 0); @@ -85,7 +85,7 @@ static void pet_watchdog_timer_fn(unsigned long data) #else static enum hrtimer_restart watchdog_timerfunc(struct hrtimer *timer) { - pr_info("%s kicking...%x\n", __func__, readl(S3C2410_WTCNT)); + pr_debug("%s kicking...%x\n", __func__, readl(S3C2410_WTCNT)); writel(watchdog_reset * TPS, S3C2410_WTCNT); hrtimer_start(&watchdog_timer, ktime_set(watchdog_pet, 0), HRTIMER_MODE_REL); |