Commit 2e3ee090 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

soc: s3c: remove pm-debug hack



CONFIG_SAMSUNG_PM_DEBUG was only used on s3c24xx because of the
DEBUG_S3C24XX_UART dependency. Since s3c24xx is now gone, and nobody
ever noticed this option being missing from s3c64xx, it can be safely
removed as well.

Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent c9dcd56f
Loading
Loading
Loading
Loading
+1 −21
Original line number Diff line number Diff line
@@ -52,29 +52,9 @@ config EXYNOS_PM_DOMAINS
	bool "Exynos PM domains" if COMPILE_TEST
	depends on (ARCH_EXYNOS && PM_GENERIC_DOMAINS) || COMPILE_TEST

config SAMSUNG_PM_DEBUG
	bool "Samsung PM Suspend debug"
	depends on PM && DEBUG_KERNEL
	depends on PLAT_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210
	depends on DEBUG_S3C24XX_UART || DEBUG_S3C2410_UART
	depends on DEBUG_LL && MMU
	help
	  Say Y here if you want verbose debugging from the PM Suspend and
	  Resume code. See <file:Documentation/arm/samsung-s3c24xx/suspend.rst>
	  for more information.

config S3C_PM_DEBUG_LED_SMDK
       bool "SMDK LED suspend/resume debugging"
       depends on PM && (MACH_SMDK6410)
       help
         Say Y here to enable the use of the SMDK LEDs on the baseboard
	 for debugging of the state of the suspend and resume process.

	 Note, this currently only works for S3C64XX based SMDK boards.

config SAMSUNG_PM_CHECK
	bool "S3C2410 PM Suspend Memory CRC"
	depends on PM && (PLAT_S3C24XX || ARCH_S3C64XX || ARCH_S5PV210)
	depends on PM && (ARCH_S3C64XX || ARCH_S5PV210)
	select CRC32
	help
	  Enable the PM code's memory area checksum over sleep. This option
+0 −1
Original line number Diff line number Diff line
@@ -14,4 +14,3 @@ obj-$(CONFIG_EXYNOS_PM_DOMAINS) += pm_domains.o
obj-$(CONFIG_EXYNOS_REGULATOR_COUPLER) += exynos-regulator-coupler.o

obj-$(CONFIG_SAMSUNG_PM_CHECK)	+= s3c-pm-check.o
obj-$(CONFIG_SAMSUNG_PM_DEBUG)	+= s3c-pm-debug.o
+0 −79
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
//
// Copyright (C) 2013 Samsung Electronics Co., Ltd.
//	Tomasz Figa <t.figa@samsung.com>
// Copyright (C) 2008 Openmoko, Inc.
// Copyright (C) 2004-2008 Simtec Electronics
//	Ben Dooks <ben@simtec.co.uk>
//	http://armlinux.simtec.co.uk/
//
// Samsung common power management (suspend to RAM) debug support

#include <linux/serial_core.h>
#include <linux/serial_s3c.h>
#include <linux/io.h>

#include <asm/mach/map.h>

#include <linux/soc/samsung/s3c-pm.h>

static struct pm_uart_save uart_save;

extern void printascii(const char *);

void s3c_pm_dbg(const char *fmt, ...)
{
	va_list va;
	char buff[256];

	va_start(va, fmt);
	vsnprintf(buff, sizeof(buff), fmt, va);
	va_end(va);

	printascii(buff);
}

static inline void __iomem *s3c_pm_uart_base(void)
{
	unsigned long paddr;
	unsigned long vaddr;

	debug_ll_addr(&paddr, &vaddr);

	return (void __iomem *)vaddr;
}

void s3c_pm_save_uarts(bool is_s3c2410)
{
	void __iomem *regs = s3c_pm_uart_base();
	struct pm_uart_save *save = &uart_save;

	save->ulcon = __raw_readl(regs + S3C2410_ULCON);
	save->ucon = __raw_readl(regs + S3C2410_UCON);
	save->ufcon = __raw_readl(regs + S3C2410_UFCON);
	save->umcon = __raw_readl(regs + S3C2410_UMCON);
	save->ubrdiv = __raw_readl(regs + S3C2410_UBRDIV);

	if (!is_s3c2410)
		save->udivslot = __raw_readl(regs + S3C2443_DIVSLOT);

	S3C_PMDBG("UART[%p]: ULCON=%04x, UCON=%04x, UFCON=%04x, UBRDIV=%04x\n",
		  regs, save->ulcon, save->ucon, save->ufcon, save->ubrdiv);
}

void s3c_pm_restore_uarts(bool is_s3c2410)
{
	void __iomem *regs = s3c_pm_uart_base();
	struct pm_uart_save *save = &uart_save;

	s3c_pm_arch_update_uart(regs, save);

	__raw_writel(save->ulcon, regs + S3C2410_ULCON);
	__raw_writel(save->ucon,  regs + S3C2410_UCON);
	__raw_writel(save->ufcon, regs + S3C2410_UFCON);
	__raw_writel(save->umcon, regs + S3C2410_UMCON);
	__raw_writel(save->ubrdiv, regs + S3C2410_UBRDIV);

	if (!is_s3c2410)
		__raw_writel(save->udivslot, regs + S3C2443_DIVSLOT);
}