All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sam Ravnborg via B4 Relay <devnull+sam.ravnborg.org@kernel.org>
To: "David S. Miller" <davem@davemloft.net>,
	 Arnd Bergmann <arnd@kernel.org>,
	Andreas Larsson <andreas@gaisler.com>
Cc: linux-fbdev@vger.kernel.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Helge Deller <deller@gmx.de>,
	linux-usb@vger.kernel.org, linux-sound@vger.kernel.org,
	Takashi Iwai <tiwai@suse.com>,
	dri-devel@lists.freedesktop.org, Jaroslav Kysela <perex@perex.cz>,
	Alan Stern <stern@rowland.harvard.edu>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	sparclinux@vger.kernel.org, Sam Ravnborg <sam@ravnborg.org>,
	linux-kernel@vger.kernel.org
Subject: [PATCH 05/27] sparc32: Drop sun specific power management drivers
Date: Tue, 19 Dec 2023 23:03:10 +0100	[thread overview]
Message-ID: <20231219-sam-sparc32-sunset-v3-v1-5-64bb44b598c5@ravnborg.org> (raw)
In-Reply-To: <20231219-sam-sparc32-sunset-v3-v1-0-64bb44b598c5@ravnborg.org>

From: Sam Ravnborg <sam@ravnborg.org>

Drop the two sun specific apc and pmc drivers.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Arnd Bergmann <arnd@kernel.org>
Cc: Andreas Larsson <andreas@gaisler.com>
---
 arch/sparc/Kconfig         |   7 --
 arch/sparc/kernel/Makefile |   1 -
 arch/sparc/kernel/apc.c    | 196 ---------------------------------------------
 arch/sparc/kernel/pmc.c    | 100 -----------------------
 4 files changed, 304 deletions(-)

diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 1520f68e944a..55a9e67c482e 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -324,13 +324,6 @@ config CMDLINE
 
 	  NOTE: This option WILL override the PROM bootargs setting!
 
-config SUN_PM
-	bool
-	default y if SPARC32
-	help
-	  Enable power management and CPU standby features on supported
-	  SPARC platforms.
-
 config SERIAL_CONSOLE
 	bool
 	depends on SPARC32
diff --git a/arch/sparc/kernel/Makefile b/arch/sparc/kernel/Makefile
index 95687af45d20..ab47823f8b4e 100644
--- a/arch/sparc/kernel/Makefile
+++ b/arch/sparc/kernel/Makefile
@@ -84,7 +84,6 @@ obj-$(CONFIG_SPARC32_SMP) += sun4m_smp.o sun4d_smp.o leon_smp.o
 obj-$(CONFIG_SPARC64_SMP) += hvtramp.o
 
 obj-y                     += auxio_$(BITS).o
-obj-$(CONFIG_SUN_PM)      += apc.o pmc.o
 
 obj-y                     += termios.o
 
diff --git a/arch/sparc/kernel/apc.c b/arch/sparc/kernel/apc.c
deleted file mode 100644
index d44725d37e30..000000000000
--- a/arch/sparc/kernel/apc.c
+++ /dev/null
@@ -1,196 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/* apc - Driver implementation for power management functions
- * of Aurora Personality Chip (APC) on SPARCstation-4/5 and
- * derivatives.
- *
- * Copyright (c) 2002 Eric Brower (ebrower@usa.net)
- */
-
-#include <linux/kernel.h>
-#include <linux/fs.h>
-#include <linux/errno.h>
-#include <linux/init.h>
-#include <linux/miscdevice.h>
-#include <linux/pm.h>
-#include <linux/of.h>
-#include <linux/platform_device.h>
-#include <linux/module.h>
-
-#include <asm/io.h>
-#include <asm/oplib.h>
-#include <linux/uaccess.h>
-#include <asm/auxio.h>
-#include <asm/apc.h>
-#include <asm/processor.h>
-
-/* Debugging
- * 
- * #define APC_DEBUG_LED
- */
-
-#define APC_MINOR	MISC_DYNAMIC_MINOR
-#define APC_OBPNAME	"power-management"
-#define APC_DEVNAME "apc"
-
-static u8 __iomem *regs;
-static int apc_no_idle = 0;
-
-#define apc_readb(offs)		(sbus_readb(regs+offs))
-#define apc_writeb(val, offs) 	(sbus_writeb(val, regs+offs))
-
-/* Specify "apc=noidle" on the kernel command line to 
- * disable APC CPU standby support.  Certain prototype
- * systems (SPARCstation-Fox) do not play well with APC
- * CPU idle, so disable this if your system has APC and 
- * crashes randomly.
- */
-static int __init apc_setup(char *str) 
-{
-	if(!strncmp(str, "noidle", strlen("noidle"))) {
-		apc_no_idle = 1;
-		return 1;
-	}
-	return 0;
-}
-__setup("apc=", apc_setup);
-
-/* 
- * CPU idle callback function
- * See .../arch/sparc/kernel/process.c
- */
-static void apc_swift_idle(void)
-{
-#ifdef APC_DEBUG_LED
-	set_auxio(0x00, AUXIO_LED); 
-#endif
-
-	apc_writeb(apc_readb(APC_IDLE_REG) | APC_IDLE_ON, APC_IDLE_REG);
-
-#ifdef APC_DEBUG_LED
-	set_auxio(AUXIO_LED, 0x00); 
-#endif
-} 
-
-static inline void apc_free(struct platform_device *op)
-{
-	of_iounmap(&op->resource[0], regs, resource_size(&op->resource[0]));
-}
-
-static int apc_open(struct inode *inode, struct file *f)
-{
-	return 0;
-}
-
-static int apc_release(struct inode *inode, struct file *f)
-{
-	return 0;
-}
-
-static long apc_ioctl(struct file *f, unsigned int cmd, unsigned long __arg)
-{
-	__u8 inarg, __user *arg = (__u8 __user *) __arg;
-
-	switch (cmd) {
-	case APCIOCGFANCTL:
-		if (put_user(apc_readb(APC_FANCTL_REG) & APC_REGMASK, arg))
-			return -EFAULT;
-		break;
-
-	case APCIOCGCPWR:
-		if (put_user(apc_readb(APC_CPOWER_REG) & APC_REGMASK, arg))
-			return -EFAULT;
-		break;
-
-	case APCIOCGBPORT:
-		if (put_user(apc_readb(APC_BPORT_REG) & APC_BPMASK, arg))
-			return -EFAULT;
-		break;
-
-	case APCIOCSFANCTL:
-		if (get_user(inarg, arg))
-			return -EFAULT;
-		apc_writeb(inarg & APC_REGMASK, APC_FANCTL_REG);
-		break;
-
-	case APCIOCSCPWR:
-		if (get_user(inarg, arg))
-			return -EFAULT;
-		apc_writeb(inarg & APC_REGMASK, APC_CPOWER_REG);
-		break;
-
-	case APCIOCSBPORT:
-		if (get_user(inarg, arg))
-			return -EFAULT;
-		apc_writeb(inarg & APC_BPMASK, APC_BPORT_REG);
-		break;
-
-	default:
-		return -EINVAL;
-	}
-
-	return 0;
-}
-
-static const struct file_operations apc_fops = {
-	.unlocked_ioctl =	apc_ioctl,
-	.open =			apc_open,
-	.release =		apc_release,
-	.llseek =		noop_llseek,
-};
-
-static struct miscdevice apc_miscdev = { APC_MINOR, APC_DEVNAME, &apc_fops };
-
-static int apc_probe(struct platform_device *op)
-{
-	int err;
-
-	regs = of_ioremap(&op->resource[0], 0,
-			  resource_size(&op->resource[0]), APC_OBPNAME);
-	if (!regs) {
-		printk(KERN_ERR "%s: unable to map registers\n", APC_DEVNAME);
-		return -ENODEV;
-	}
-
-	err = misc_register(&apc_miscdev);
-	if (err) {
-		printk(KERN_ERR "%s: unable to register device\n", APC_DEVNAME);
-		apc_free(op);
-		return -ENODEV;
-	}
-
-	/* Assign power management IDLE handler */
-	if (!apc_no_idle)
-		sparc_idle = apc_swift_idle;
-
-	printk(KERN_INFO "%s: power management initialized%s\n", 
-	       APC_DEVNAME, apc_no_idle ? " (CPU idle disabled)" : "");
-
-	return 0;
-}
-
-static const struct of_device_id apc_match[] = {
-	{
-		.name = APC_OBPNAME,
-	},
-	{},
-};
-MODULE_DEVICE_TABLE(of, apc_match);
-
-static struct platform_driver apc_driver = {
-	.driver = {
-		.name = "apc",
-		.of_match_table = apc_match,
-	},
-	.probe		= apc_probe,
-};
-
-static int __init apc_init(void)
-{
-	return platform_driver_register(&apc_driver);
-}
-
-/* This driver is not critical to the boot process
- * and is easiest to ioremap when SBus is already
- * initialized, so we install ourselves thusly:
- */
-__initcall(apc_init);
diff --git a/arch/sparc/kernel/pmc.c b/arch/sparc/kernel/pmc.c
deleted file mode 100644
index 69a0206e56f0..000000000000
--- a/arch/sparc/kernel/pmc.c
+++ /dev/null
@@ -1,100 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/* pmc - Driver implementation for power management functions
- * of Power Management Controller (PMC) on SPARCstation-Voyager.
- *
- * Copyright (c) 2002 Eric Brower (ebrower@usa.net)
- */
-
-#include <linux/kernel.h>
-#include <linux/fs.h>
-#include <linux/errno.h>
-#include <linux/init.h>
-#include <linux/pm.h>
-#include <linux/of.h>
-#include <linux/platform_device.h>
-#include <linux/module.h>
-
-#include <asm/io.h>
-#include <asm/oplib.h>
-#include <linux/uaccess.h>
-#include <asm/auxio.h>
-#include <asm/processor.h>
-
-/* Debug
- *
- * #define PMC_DEBUG_LED
- * #define PMC_NO_IDLE
- */
-
-#define PMC_OBPNAME	"SUNW,pmc"
-#define PMC_DEVNAME	"pmc"
-
-#define PMC_IDLE_REG	0x00
-#define PMC_IDLE_ON	0x01
-
-static u8 __iomem *regs;
-
-#define pmc_readb(offs)		(sbus_readb(regs+offs))
-#define pmc_writeb(val, offs)	(sbus_writeb(val, regs+offs))
-
-/*
- * CPU idle callback function
- * See .../arch/sparc/kernel/process.c
- */
-static void pmc_swift_idle(void)
-{
-#ifdef PMC_DEBUG_LED
-	set_auxio(0x00, AUXIO_LED);
-#endif
-
-	pmc_writeb(pmc_readb(PMC_IDLE_REG) | PMC_IDLE_ON, PMC_IDLE_REG);
-
-#ifdef PMC_DEBUG_LED
-	set_auxio(AUXIO_LED, 0x00);
-#endif
-}
-
-static int pmc_probe(struct platform_device *op)
-{
-	regs = of_ioremap(&op->resource[0], 0,
-			  resource_size(&op->resource[0]), PMC_OBPNAME);
-	if (!regs) {
-		printk(KERN_ERR "%s: unable to map registers\n", PMC_DEVNAME);
-		return -ENODEV;
-	}
-
-#ifndef PMC_NO_IDLE
-	/* Assign power management IDLE handler */
-	sparc_idle = pmc_swift_idle;
-#endif
-
-	printk(KERN_INFO "%s: power management initialized\n", PMC_DEVNAME);
-	return 0;
-}
-
-static const struct of_device_id pmc_match[] = {
-	{
-		.name = PMC_OBPNAME,
-	},
-	{},
-};
-MODULE_DEVICE_TABLE(of, pmc_match);
-
-static struct platform_driver pmc_driver = {
-	.driver = {
-		.name = "pmc",
-		.of_match_table = pmc_match,
-	},
-	.probe		= pmc_probe,
-};
-
-static int __init pmc_init(void)
-{
-	return platform_driver_register(&pmc_driver);
-}
-
-/* This driver is not critical to the boot process
- * and is easiest to ioremap when SBus is already
- * initialized, so we install ourselves thusly:
- */
-__initcall(pmc_init);

-- 
2.34.1


WARNING: multiple messages have this Message-ID (diff)
From: Sam Ravnborg via B4 Relay <devnull+sam.ravnborg.org@kernel.org>
To: "David S. Miller" <davem@davemloft.net>,
	 Arnd Bergmann <arnd@kernel.org>,
	Andreas Larsson <andreas@gaisler.com>
Cc: Helge Deller <deller@gmx.de>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	 Alan Stern <stern@rowland.harvard.edu>,
	Jaroslav Kysela <perex@perex.cz>,  Takashi Iwai <tiwai@suse.com>,
	sparclinux@vger.kernel.org,  linux-kernel@vger.kernel.org,
	linux-usb@vger.kernel.org,  linux-fbdev@vger.kernel.org,
	dri-devel@lists.freedesktop.org,  linux-sound@vger.kernel.org,
	Sam Ravnborg <sam@ravnborg.org>
Subject: [PATCH 05/27] sparc32: Drop sun specific power management drivers
Date: Tue, 19 Dec 2023 23:03:10 +0100	[thread overview]
Message-ID: <20231219-sam-sparc32-sunset-v3-v1-5-64bb44b598c5@ravnborg.org> (raw)
In-Reply-To: <20231219-sam-sparc32-sunset-v3-v1-0-64bb44b598c5@ravnborg.org>

From: Sam Ravnborg <sam@ravnborg.org>

Drop the two sun specific apc and pmc drivers.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Arnd Bergmann <arnd@kernel.org>
Cc: Andreas Larsson <andreas@gaisler.com>
---
 arch/sparc/Kconfig         |   7 --
 arch/sparc/kernel/Makefile |   1 -
 arch/sparc/kernel/apc.c    | 196 ---------------------------------------------
 arch/sparc/kernel/pmc.c    | 100 -----------------------
 4 files changed, 304 deletions(-)

diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 1520f68e944a..55a9e67c482e 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -324,13 +324,6 @@ config CMDLINE
 
 	  NOTE: This option WILL override the PROM bootargs setting!
 
-config SUN_PM
-	bool
-	default y if SPARC32
-	help
-	  Enable power management and CPU standby features on supported
-	  SPARC platforms.
-
 config SERIAL_CONSOLE
 	bool
 	depends on SPARC32
diff --git a/arch/sparc/kernel/Makefile b/arch/sparc/kernel/Makefile
index 95687af45d20..ab47823f8b4e 100644
--- a/arch/sparc/kernel/Makefile
+++ b/arch/sparc/kernel/Makefile
@@ -84,7 +84,6 @@ obj-$(CONFIG_SPARC32_SMP) += sun4m_smp.o sun4d_smp.o leon_smp.o
 obj-$(CONFIG_SPARC64_SMP) += hvtramp.o
 
 obj-y                     += auxio_$(BITS).o
-obj-$(CONFIG_SUN_PM)      += apc.o pmc.o
 
 obj-y                     += termios.o
 
diff --git a/arch/sparc/kernel/apc.c b/arch/sparc/kernel/apc.c
deleted file mode 100644
index d44725d37e30..000000000000
--- a/arch/sparc/kernel/apc.c
+++ /dev/null
@@ -1,196 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/* apc - Driver implementation for power management functions
- * of Aurora Personality Chip (APC) on SPARCstation-4/5 and
- * derivatives.
- *
- * Copyright (c) 2002 Eric Brower (ebrower@usa.net)
- */
-
-#include <linux/kernel.h>
-#include <linux/fs.h>
-#include <linux/errno.h>
-#include <linux/init.h>
-#include <linux/miscdevice.h>
-#include <linux/pm.h>
-#include <linux/of.h>
-#include <linux/platform_device.h>
-#include <linux/module.h>
-
-#include <asm/io.h>
-#include <asm/oplib.h>
-#include <linux/uaccess.h>
-#include <asm/auxio.h>
-#include <asm/apc.h>
-#include <asm/processor.h>
-
-/* Debugging
- * 
- * #define APC_DEBUG_LED
- */
-
-#define APC_MINOR	MISC_DYNAMIC_MINOR
-#define APC_OBPNAME	"power-management"
-#define APC_DEVNAME "apc"
-
-static u8 __iomem *regs;
-static int apc_no_idle = 0;
-
-#define apc_readb(offs)		(sbus_readb(regs+offs))
-#define apc_writeb(val, offs) 	(sbus_writeb(val, regs+offs))
-
-/* Specify "apc=noidle" on the kernel command line to 
- * disable APC CPU standby support.  Certain prototype
- * systems (SPARCstation-Fox) do not play well with APC
- * CPU idle, so disable this if your system has APC and 
- * crashes randomly.
- */
-static int __init apc_setup(char *str) 
-{
-	if(!strncmp(str, "noidle", strlen("noidle"))) {
-		apc_no_idle = 1;
-		return 1;
-	}
-	return 0;
-}
-__setup("apc=", apc_setup);
-
-/* 
- * CPU idle callback function
- * See .../arch/sparc/kernel/process.c
- */
-static void apc_swift_idle(void)
-{
-#ifdef APC_DEBUG_LED
-	set_auxio(0x00, AUXIO_LED); 
-#endif
-
-	apc_writeb(apc_readb(APC_IDLE_REG) | APC_IDLE_ON, APC_IDLE_REG);
-
-#ifdef APC_DEBUG_LED
-	set_auxio(AUXIO_LED, 0x00); 
-#endif
-} 
-
-static inline void apc_free(struct platform_device *op)
-{
-	of_iounmap(&op->resource[0], regs, resource_size(&op->resource[0]));
-}
-
-static int apc_open(struct inode *inode, struct file *f)
-{
-	return 0;
-}
-
-static int apc_release(struct inode *inode, struct file *f)
-{
-	return 0;
-}
-
-static long apc_ioctl(struct file *f, unsigned int cmd, unsigned long __arg)
-{
-	__u8 inarg, __user *arg = (__u8 __user *) __arg;
-
-	switch (cmd) {
-	case APCIOCGFANCTL:
-		if (put_user(apc_readb(APC_FANCTL_REG) & APC_REGMASK, arg))
-			return -EFAULT;
-		break;
-
-	case APCIOCGCPWR:
-		if (put_user(apc_readb(APC_CPOWER_REG) & APC_REGMASK, arg))
-			return -EFAULT;
-		break;
-
-	case APCIOCGBPORT:
-		if (put_user(apc_readb(APC_BPORT_REG) & APC_BPMASK, arg))
-			return -EFAULT;
-		break;
-
-	case APCIOCSFANCTL:
-		if (get_user(inarg, arg))
-			return -EFAULT;
-		apc_writeb(inarg & APC_REGMASK, APC_FANCTL_REG);
-		break;
-
-	case APCIOCSCPWR:
-		if (get_user(inarg, arg))
-			return -EFAULT;
-		apc_writeb(inarg & APC_REGMASK, APC_CPOWER_REG);
-		break;
-
-	case APCIOCSBPORT:
-		if (get_user(inarg, arg))
-			return -EFAULT;
-		apc_writeb(inarg & APC_BPMASK, APC_BPORT_REG);
-		break;
-
-	default:
-		return -EINVAL;
-	}
-
-	return 0;
-}
-
-static const struct file_operations apc_fops = {
-	.unlocked_ioctl =	apc_ioctl,
-	.open =			apc_open,
-	.release =		apc_release,
-	.llseek =		noop_llseek,
-};
-
-static struct miscdevice apc_miscdev = { APC_MINOR, APC_DEVNAME, &apc_fops };
-
-static int apc_probe(struct platform_device *op)
-{
-	int err;
-
-	regs = of_ioremap(&op->resource[0], 0,
-			  resource_size(&op->resource[0]), APC_OBPNAME);
-	if (!regs) {
-		printk(KERN_ERR "%s: unable to map registers\n", APC_DEVNAME);
-		return -ENODEV;
-	}
-
-	err = misc_register(&apc_miscdev);
-	if (err) {
-		printk(KERN_ERR "%s: unable to register device\n", APC_DEVNAME);
-		apc_free(op);
-		return -ENODEV;
-	}
-
-	/* Assign power management IDLE handler */
-	if (!apc_no_idle)
-		sparc_idle = apc_swift_idle;
-
-	printk(KERN_INFO "%s: power management initialized%s\n", 
-	       APC_DEVNAME, apc_no_idle ? " (CPU idle disabled)" : "");
-
-	return 0;
-}
-
-static const struct of_device_id apc_match[] = {
-	{
-		.name = APC_OBPNAME,
-	},
-	{},
-};
-MODULE_DEVICE_TABLE(of, apc_match);
-
-static struct platform_driver apc_driver = {
-	.driver = {
-		.name = "apc",
-		.of_match_table = apc_match,
-	},
-	.probe		= apc_probe,
-};
-
-static int __init apc_init(void)
-{
-	return platform_driver_register(&apc_driver);
-}
-
-/* This driver is not critical to the boot process
- * and is easiest to ioremap when SBus is already
- * initialized, so we install ourselves thusly:
- */
-__initcall(apc_init);
diff --git a/arch/sparc/kernel/pmc.c b/arch/sparc/kernel/pmc.c
deleted file mode 100644
index 69a0206e56f0..000000000000
--- a/arch/sparc/kernel/pmc.c
+++ /dev/null
@@ -1,100 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/* pmc - Driver implementation for power management functions
- * of Power Management Controller (PMC) on SPARCstation-Voyager.
- *
- * Copyright (c) 2002 Eric Brower (ebrower@usa.net)
- */
-
-#include <linux/kernel.h>
-#include <linux/fs.h>
-#include <linux/errno.h>
-#include <linux/init.h>
-#include <linux/pm.h>
-#include <linux/of.h>
-#include <linux/platform_device.h>
-#include <linux/module.h>
-
-#include <asm/io.h>
-#include <asm/oplib.h>
-#include <linux/uaccess.h>
-#include <asm/auxio.h>
-#include <asm/processor.h>
-
-/* Debug
- *
- * #define PMC_DEBUG_LED
- * #define PMC_NO_IDLE
- */
-
-#define PMC_OBPNAME	"SUNW,pmc"
-#define PMC_DEVNAME	"pmc"
-
-#define PMC_IDLE_REG	0x00
-#define PMC_IDLE_ON	0x01
-
-static u8 __iomem *regs;
-
-#define pmc_readb(offs)		(sbus_readb(regs+offs))
-#define pmc_writeb(val, offs)	(sbus_writeb(val, regs+offs))
-
-/*
- * CPU idle callback function
- * See .../arch/sparc/kernel/process.c
- */
-static void pmc_swift_idle(void)
-{
-#ifdef PMC_DEBUG_LED
-	set_auxio(0x00, AUXIO_LED);
-#endif
-
-	pmc_writeb(pmc_readb(PMC_IDLE_REG) | PMC_IDLE_ON, PMC_IDLE_REG);
-
-#ifdef PMC_DEBUG_LED
-	set_auxio(AUXIO_LED, 0x00);
-#endif
-}
-
-static int pmc_probe(struct platform_device *op)
-{
-	regs = of_ioremap(&op->resource[0], 0,
-			  resource_size(&op->resource[0]), PMC_OBPNAME);
-	if (!regs) {
-		printk(KERN_ERR "%s: unable to map registers\n", PMC_DEVNAME);
-		return -ENODEV;
-	}
-
-#ifndef PMC_NO_IDLE
-	/* Assign power management IDLE handler */
-	sparc_idle = pmc_swift_idle;
-#endif
-
-	printk(KERN_INFO "%s: power management initialized\n", PMC_DEVNAME);
-	return 0;
-}
-
-static const struct of_device_id pmc_match[] = {
-	{
-		.name = PMC_OBPNAME,
-	},
-	{},
-};
-MODULE_DEVICE_TABLE(of, pmc_match);
-
-static struct platform_driver pmc_driver = {
-	.driver = {
-		.name = "pmc",
-		.of_match_table = pmc_match,
-	},
-	.probe		= pmc_probe,
-};
-
-static int __init pmc_init(void)
-{
-	return platform_driver_register(&pmc_driver);
-}
-
-/* This driver is not critical to the boot process
- * and is easiest to ioremap when SBus is already
- * initialized, so we install ourselves thusly:
- */
-__initcall(pmc_init);

-- 
2.34.1


WARNING: multiple messages have this Message-ID (diff)
From: Sam Ravnborg <sam@ravnborg.org>
To: "David S. Miller" <davem@davemloft.net>,
	 Arnd Bergmann <arnd@kernel.org>,
	Andreas Larsson <andreas@gaisler.com>
Cc: Helge Deller <deller@gmx.de>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	 Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	 Alan Stern <stern@rowland.harvard.edu>,
	Jaroslav Kysela <perex@perex.cz>,  Takashi Iwai <tiwai@suse.com>,
	sparclinux@vger.kernel.org,  linux-kernel@vger.kernel.org,
	linux-usb@vger.kernel.org,  linux-fbdev@vger.kernel.org,
	dri-devel@lists.freedesktop.org,  linux-sound@vger.kernel.org,
	Sam Ravnborg <sam@ravnborg.org>
Subject: [PATCH 05/27] sparc32: Drop sun specific power management drivers
Date: Tue, 19 Dec 2023 23:03:10 +0100	[thread overview]
Message-ID: <20231219-sam-sparc32-sunset-v3-v1-5-64bb44b598c5@ravnborg.org> (raw)
In-Reply-To: <20231219-sam-sparc32-sunset-v3-v1-0-64bb44b598c5@ravnborg.org>

Drop the two sun specific apc and pmc drivers.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Arnd Bergmann <arnd@kernel.org>
Cc: Andreas Larsson <andreas@gaisler.com>
---
 arch/sparc/Kconfig         |   7 --
 arch/sparc/kernel/Makefile |   1 -
 arch/sparc/kernel/apc.c    | 196 ---------------------------------------------
 arch/sparc/kernel/pmc.c    | 100 -----------------------
 4 files changed, 304 deletions(-)

diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 1520f68e944a..55a9e67c482e 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -324,13 +324,6 @@ config CMDLINE
 
 	  NOTE: This option WILL override the PROM bootargs setting!
 
-config SUN_PM
-	bool
-	default y if SPARC32
-	help
-	  Enable power management and CPU standby features on supported
-	  SPARC platforms.
-
 config SERIAL_CONSOLE
 	bool
 	depends on SPARC32
diff --git a/arch/sparc/kernel/Makefile b/arch/sparc/kernel/Makefile
index 95687af45d20..ab47823f8b4e 100644
--- a/arch/sparc/kernel/Makefile
+++ b/arch/sparc/kernel/Makefile
@@ -84,7 +84,6 @@ obj-$(CONFIG_SPARC32_SMP) += sun4m_smp.o sun4d_smp.o leon_smp.o
 obj-$(CONFIG_SPARC64_SMP) += hvtramp.o
 
 obj-y                     += auxio_$(BITS).o
-obj-$(CONFIG_SUN_PM)      += apc.o pmc.o
 
 obj-y                     += termios.o
 
diff --git a/arch/sparc/kernel/apc.c b/arch/sparc/kernel/apc.c
deleted file mode 100644
index d44725d37e30..000000000000
--- a/arch/sparc/kernel/apc.c
+++ /dev/null
@@ -1,196 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/* apc - Driver implementation for power management functions
- * of Aurora Personality Chip (APC) on SPARCstation-4/5 and
- * derivatives.
- *
- * Copyright (c) 2002 Eric Brower (ebrower@usa.net)
- */
-
-#include <linux/kernel.h>
-#include <linux/fs.h>
-#include <linux/errno.h>
-#include <linux/init.h>
-#include <linux/miscdevice.h>
-#include <linux/pm.h>
-#include <linux/of.h>
-#include <linux/platform_device.h>
-#include <linux/module.h>
-
-#include <asm/io.h>
-#include <asm/oplib.h>
-#include <linux/uaccess.h>
-#include <asm/auxio.h>
-#include <asm/apc.h>
-#include <asm/processor.h>
-
-/* Debugging
- * 
- * #define APC_DEBUG_LED
- */
-
-#define APC_MINOR	MISC_DYNAMIC_MINOR
-#define APC_OBPNAME	"power-management"
-#define APC_DEVNAME "apc"
-
-static u8 __iomem *regs;
-static int apc_no_idle = 0;
-
-#define apc_readb(offs)		(sbus_readb(regs+offs))
-#define apc_writeb(val, offs) 	(sbus_writeb(val, regs+offs))
-
-/* Specify "apc=noidle" on the kernel command line to 
- * disable APC CPU standby support.  Certain prototype
- * systems (SPARCstation-Fox) do not play well with APC
- * CPU idle, so disable this if your system has APC and 
- * crashes randomly.
- */
-static int __init apc_setup(char *str) 
-{
-	if(!strncmp(str, "noidle", strlen("noidle"))) {
-		apc_no_idle = 1;
-		return 1;
-	}
-	return 0;
-}
-__setup("apc=", apc_setup);
-
-/* 
- * CPU idle callback function
- * See .../arch/sparc/kernel/process.c
- */
-static void apc_swift_idle(void)
-{
-#ifdef APC_DEBUG_LED
-	set_auxio(0x00, AUXIO_LED); 
-#endif
-
-	apc_writeb(apc_readb(APC_IDLE_REG) | APC_IDLE_ON, APC_IDLE_REG);
-
-#ifdef APC_DEBUG_LED
-	set_auxio(AUXIO_LED, 0x00); 
-#endif
-} 
-
-static inline void apc_free(struct platform_device *op)
-{
-	of_iounmap(&op->resource[0], regs, resource_size(&op->resource[0]));
-}
-
-static int apc_open(struct inode *inode, struct file *f)
-{
-	return 0;
-}
-
-static int apc_release(struct inode *inode, struct file *f)
-{
-	return 0;
-}
-
-static long apc_ioctl(struct file *f, unsigned int cmd, unsigned long __arg)
-{
-	__u8 inarg, __user *arg = (__u8 __user *) __arg;
-
-	switch (cmd) {
-	case APCIOCGFANCTL:
-		if (put_user(apc_readb(APC_FANCTL_REG) & APC_REGMASK, arg))
-			return -EFAULT;
-		break;
-
-	case APCIOCGCPWR:
-		if (put_user(apc_readb(APC_CPOWER_REG) & APC_REGMASK, arg))
-			return -EFAULT;
-		break;
-
-	case APCIOCGBPORT:
-		if (put_user(apc_readb(APC_BPORT_REG) & APC_BPMASK, arg))
-			return -EFAULT;
-		break;
-
-	case APCIOCSFANCTL:
-		if (get_user(inarg, arg))
-			return -EFAULT;
-		apc_writeb(inarg & APC_REGMASK, APC_FANCTL_REG);
-		break;
-
-	case APCIOCSCPWR:
-		if (get_user(inarg, arg))
-			return -EFAULT;
-		apc_writeb(inarg & APC_REGMASK, APC_CPOWER_REG);
-		break;
-
-	case APCIOCSBPORT:
-		if (get_user(inarg, arg))
-			return -EFAULT;
-		apc_writeb(inarg & APC_BPMASK, APC_BPORT_REG);
-		break;
-
-	default:
-		return -EINVAL;
-	}
-
-	return 0;
-}
-
-static const struct file_operations apc_fops = {
-	.unlocked_ioctl =	apc_ioctl,
-	.open =			apc_open,
-	.release =		apc_release,
-	.llseek =		noop_llseek,
-};
-
-static struct miscdevice apc_miscdev = { APC_MINOR, APC_DEVNAME, &apc_fops };
-
-static int apc_probe(struct platform_device *op)
-{
-	int err;
-
-	regs = of_ioremap(&op->resource[0], 0,
-			  resource_size(&op->resource[0]), APC_OBPNAME);
-	if (!regs) {
-		printk(KERN_ERR "%s: unable to map registers\n", APC_DEVNAME);
-		return -ENODEV;
-	}
-
-	err = misc_register(&apc_miscdev);
-	if (err) {
-		printk(KERN_ERR "%s: unable to register device\n", APC_DEVNAME);
-		apc_free(op);
-		return -ENODEV;
-	}
-
-	/* Assign power management IDLE handler */
-	if (!apc_no_idle)
-		sparc_idle = apc_swift_idle;
-
-	printk(KERN_INFO "%s: power management initialized%s\n", 
-	       APC_DEVNAME, apc_no_idle ? " (CPU idle disabled)" : "");
-
-	return 0;
-}
-
-static const struct of_device_id apc_match[] = {
-	{
-		.name = APC_OBPNAME,
-	},
-	{},
-};
-MODULE_DEVICE_TABLE(of, apc_match);
-
-static struct platform_driver apc_driver = {
-	.driver = {
-		.name = "apc",
-		.of_match_table = apc_match,
-	},
-	.probe		= apc_probe,
-};
-
-static int __init apc_init(void)
-{
-	return platform_driver_register(&apc_driver);
-}
-
-/* This driver is not critical to the boot process
- * and is easiest to ioremap when SBus is already
- * initialized, so we install ourselves thusly:
- */
-__initcall(apc_init);
diff --git a/arch/sparc/kernel/pmc.c b/arch/sparc/kernel/pmc.c
deleted file mode 100644
index 69a0206e56f0..000000000000
--- a/arch/sparc/kernel/pmc.c
+++ /dev/null
@@ -1,100 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/* pmc - Driver implementation for power management functions
- * of Power Management Controller (PMC) on SPARCstation-Voyager.
- *
- * Copyright (c) 2002 Eric Brower (ebrower@usa.net)
- */
-
-#include <linux/kernel.h>
-#include <linux/fs.h>
-#include <linux/errno.h>
-#include <linux/init.h>
-#include <linux/pm.h>
-#include <linux/of.h>
-#include <linux/platform_device.h>
-#include <linux/module.h>
-
-#include <asm/io.h>
-#include <asm/oplib.h>
-#include <linux/uaccess.h>
-#include <asm/auxio.h>
-#include <asm/processor.h>
-
-/* Debug
- *
- * #define PMC_DEBUG_LED
- * #define PMC_NO_IDLE
- */
-
-#define PMC_OBPNAME	"SUNW,pmc"
-#define PMC_DEVNAME	"pmc"
-
-#define PMC_IDLE_REG	0x00
-#define PMC_IDLE_ON	0x01
-
-static u8 __iomem *regs;
-
-#define pmc_readb(offs)		(sbus_readb(regs+offs))
-#define pmc_writeb(val, offs)	(sbus_writeb(val, regs+offs))
-
-/*
- * CPU idle callback function
- * See .../arch/sparc/kernel/process.c
- */
-static void pmc_swift_idle(void)
-{
-#ifdef PMC_DEBUG_LED
-	set_auxio(0x00, AUXIO_LED);
-#endif
-
-	pmc_writeb(pmc_readb(PMC_IDLE_REG) | PMC_IDLE_ON, PMC_IDLE_REG);
-
-#ifdef PMC_DEBUG_LED
-	set_auxio(AUXIO_LED, 0x00);
-#endif
-}
-
-static int pmc_probe(struct platform_device *op)
-{
-	regs = of_ioremap(&op->resource[0], 0,
-			  resource_size(&op->resource[0]), PMC_OBPNAME);
-	if (!regs) {
-		printk(KERN_ERR "%s: unable to map registers\n", PMC_DEVNAME);
-		return -ENODEV;
-	}
-
-#ifndef PMC_NO_IDLE
-	/* Assign power management IDLE handler */
-	sparc_idle = pmc_swift_idle;
-#endif
-
-	printk(KERN_INFO "%s: power management initialized\n", PMC_DEVNAME);
-	return 0;
-}
-
-static const struct of_device_id pmc_match[] = {
-	{
-		.name = PMC_OBPNAME,
-	},
-	{},
-};
-MODULE_DEVICE_TABLE(of, pmc_match);
-
-static struct platform_driver pmc_driver = {
-	.driver = {
-		.name = "pmc",
-		.of_match_table = pmc_match,
-	},
-	.probe		= pmc_probe,
-};
-
-static int __init pmc_init(void)
-{
-	return platform_driver_register(&pmc_driver);
-}
-
-/* This driver is not critical to the boot process
- * and is easiest to ioremap when SBus is already
- * initialized, so we install ourselves thusly:
- */
-__initcall(pmc_init);

-- 
2.34.1


  parent reply	other threads:[~2023-12-19 22:03 UTC|newest]

Thread overview: 122+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-19 22:03 [PATCH 00/27] sparc32: sunset sun4m and sun4d Sam Ravnborg via B4 Relay
2023-12-19 22:03 ` Sam Ravnborg
2023-12-19 22:03 ` Sam Ravnborg via B4 Relay
2023-12-19 22:03 ` [PATCH 01/27] sparc32: Update defconfig to LEON SMP Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:23   ` Arnd Bergmann
2023-12-19 22:23     ` Arnd Bergmann
2023-12-20  6:43     ` Sam Ravnborg
2023-12-20  6:43       ` Sam Ravnborg
2023-12-20  8:37       ` Arnd Bergmann
2023-12-20  8:37         ` Arnd Bergmann
2023-12-19 22:03 ` [PATCH 02/27] sparc32: Drop sun4m/sun4d support from head_32.S Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03 ` [PATCH 03/27] sparc32: Drop floppy support Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03 ` [PATCH 04/27] sparc32: Drop sun4m specific led driver Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03 ` Sam Ravnborg via B4 Relay [this message]
2023-12-19 22:03   ` [PATCH 05/27] sparc32: Drop sun specific power management drivers Sam Ravnborg
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03 ` [PATCH 06/27] sparc32: Drop auxio support Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03 ` [PATCH 07/27] sparc32: Drop run-time patching of ipi trap Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03 ` [PATCH 08/27] sparc32: Drop patching of interrupt vector Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03 ` [PATCH 09/27] sparc32: Drop sun4m/sun4d specific irq handling Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03 ` [PATCH 10/27] sparc32: Drop sun4d/sun4m smp support Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03 ` [PATCH 11/27] sparc32: Drop pcic support Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03 ` [PATCH 12/27] sparc32: Drop mbus support Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03 ` [PATCH 13/27] sparc32: Drop unused function __get_{phys,iospace} Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03 ` [PATCH 14/27] sparc32: Drop unused mmu models Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03 ` [PATCH 15/27] sparc32: Drop check for sparc_model Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03 ` [PATCH 16/27] sparc32: Drop use of sparc_config Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03 ` [PATCH 17/27] sparc32: Drop run-time patching of ASI instructions Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2024-02-16 17:12   ` Andreas Larsson
2024-02-17 11:59     ` Sam Ravnborg
2023-12-19 22:03 ` [PATCH 18/27] sparc32: Drop support for 7 register windows Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03 ` [PATCH 19/27] sparc32: Drop additional sun4d bits Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03 ` [PATCH 20/27] sparc32: Drop unused prom ranges support Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03 ` [PATCH 21/27] sparc32: Drop unused iommu support Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03 ` [PATCH 22/27] sparc32: Drop sun4m irq support Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03 ` [PATCH 23/27] sparc32: Drop unused trampoline code Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03 ` [PATCH 24/27] sparc32: Drop config SPARC_LEON Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-20  5:52   ` Greg Kroah-Hartman
2023-12-20  5:52     ` Greg Kroah-Hartman
2023-12-19 22:03 ` [PATCH 25/27] sparc32: Drop sbus support Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03 ` [PATCH 26/27] sbus: char: Drop now unused uctrl driver Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2023-12-19 22:03 ` [PATCH 27/27] fbdev/p9100: Drop now unused driver p9100 Sam Ravnborg via B4 Relay
2023-12-19 22:03   ` Sam Ravnborg
2023-12-19 22:03   ` Sam Ravnborg via B4 Relay
2024-01-02  8:26   ` Thomas Zimmermann
2024-01-02  8:26     ` Thomas Zimmermann
2024-01-02 16:31     ` Sam Ravnborg
2024-01-02 16:31       ` Sam Ravnborg
2023-12-20  8:36 ` [PATCH 00/27] sparc32: sunset sun4m and sun4d Arnd Bergmann
2023-12-20  8:36   ` Arnd Bergmann
2023-12-20  9:28   ` John Paul Adrian Glaubitz
2023-12-20  9:28     ` John Paul Adrian Glaubitz
2023-12-20  9:34   ` David Laight
2023-12-20  9:34     ` David Laight
2023-12-20  9:51     ` Arnd Bergmann
2023-12-20  9:51       ` Arnd Bergmann
2023-12-20  9:54   ` John Paul Adrian Glaubitz
2023-12-20  9:54     ` John Paul Adrian Glaubitz
2023-12-20 10:47     ` Arnd Bergmann
2023-12-20 10:47       ` Arnd Bergmann
2023-12-20 11:30       ` Mark Cave-Ayland
2023-12-20 11:30         ` Mark Cave-Ayland
2023-12-20 15:22         ` Sam Ravnborg
2023-12-20 15:22           ` Sam Ravnborg
2023-12-20 17:25           ` John Paul Adrian Glaubitz
2023-12-20 17:25             ` John Paul Adrian Glaubitz
2023-12-22 15:27             ` Andreas Larsson
2023-12-22 15:27               ` Andreas Larsson
2023-12-20 14:42 ` Kjetil Oftedal
2023-12-20 14:42   ` Kjetil Oftedal
2024-02-04 19:21 ` Sam Ravnborg
2024-02-05  5:12   ` John Paul Adrian Glaubitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231219-sam-sparc32-sunset-v3-v1-5-64bb44b598c5@ravnborg.org \
    --to=devnull+sam.ravnborg.org@kernel.org \
    --cc=andreas@gaisler.com \
    --cc=arnd@kernel.org \
    --cc=davem@davemloft.net \
    --cc=deller@gmx.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=perex@perex.cz \
    --cc=sam@ravnborg.org \
    --cc=sparclinux@vger.kernel.org \
    --cc=stern@rowland.harvard.edu \
    --cc=tiwai@suse.com \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.