Skip to contentSkip to conversation

Remove remaining AMD Elan drivers

PATCH Applied Sean Young 6 participants 17 messages May 6 – May 27

Subsystems (6)

v1 of 2 Applied Latest is v2 →

lore
Share & tools
lore

Sean Young

author
#0 lore raw

cover Remove remaining AMD Elan drivers

Now that AMD Elan support has been removed[1], remove the AMD Elan specific drivers too. I had a Technology Systems 5500 back in the early 2000's and it was pretty slow back then - no need to support such ancient slow device. I wrote and patched some of these drivers so nice to see them removed at the end of their life cycle.

1. commit 8b793a92d862 ("x86/cpu: Remove M486/M486SX/ELAN support")

Sean Young (8):
x86/platform: Remove Technology Systems 5500 board
mtd: ts5500_flash: Remove mapping since board is no longer supported
mtd: netsc520: Remove mapping since board is no longer supported
mtd: sc520cdp: Remove mapping since board is no longer supported
gpio: ts5500: Remove gpio driver as board no longer supported
watchdog: sc520: Drop AMD Elan SC520 support
cpufreq: sc520_freq: Drop support for AMD Elan SC520
cpufreq: elanfreq: Drop support for AMD Elan SC4*

 .../ABI/testing/sysfs-platform-ts5500         |  54 ---
 .../watchdog/watchdog-parameters.rst          |   9 -
 MAINTAINERS                                   |   5 -
 arch/x86/Kconfig                              |   9 -
 arch/x86/platform/Makefile                    |   1 -
 arch/x86/platform/ts5500/Makefile             |   2 -
 arch/x86/platform/ts5500/ts5500.c             | 341 -------------
 drivers/cpufreq/Kconfig.x86                   |  26 -
 drivers/cpufreq/Makefile                      |   2 -
 drivers/cpufreq/elanfreq.c                    | 226 ---------
 drivers/cpufreq/sc520_freq.c                  | 136 ------
 drivers/gpio/Kconfig                          |   9 -
 drivers/gpio/Makefile                         |   1 -
 drivers/gpio/gpio-ts5500.c                    | 446 ------------------
 drivers/mtd/maps/Kconfig                      |  34 --
 drivers/mtd/maps/Makefile                     |   3 -
 drivers/mtd/maps/netsc520.c                   | 127 -----
 drivers/mtd/maps/sc520cdp.c                   | 294 ------------
 drivers/mtd/maps/ts5500_flash.c               | 108 -----
 drivers/watchdog/Kconfig                      |  13 -
 drivers/watchdog/Makefile                     |   1 -
 drivers/watchdog/sc520_wdt.c                  | 430 -----------------
 22 files changed, 2277 deletions(-)
 delete mode 100644 Documentation/ABI/testing/sysfs-platform-ts5500
 delete mode 100644 arch/x86/platform/ts5500/Makefile
 delete mode 100644 arch/x86/platform/ts5500/ts5500.c
 delete mode 100644 drivers/cpufreq/elanfreq.c
 delete mode 100644 drivers/cpufreq/sc520_freq.c
 delete mode 100644 drivers/gpio/gpio-ts5500.c
 delete mode 100644 drivers/mtd/maps/netsc520.c
 delete mode 100644 drivers/mtd/maps/sc520cdp.c
 delete mode 100644 drivers/mtd/maps/ts5500_flash.c
 delete mode 100644 drivers/watchdog/sc520_wdt.c
Signature · 1 line
2.54.0
author
#2 lore raw

PATCH 2/8 mtd: ts5500_flash: Remove mapping since board is no longer supported

Since commit 8b793a92d862 ("x86/cpu: Remove M486/M486SX/ELAN support"), this board is no longer supported. Remove the mtd map too.

---
 drivers/mtd/maps/Kconfig        |  18 ------
 drivers/mtd/maps/Makefile       |   1 -
 drivers/mtd/maps/ts5500_flash.c | 108 --------------------------------
 3 files changed, 127 deletions(-)
 delete mode 100644 drivers/mtd/maps/ts5500_flash.c
drivers/mtd/maps/Kconfig +0 -18
index 99d5ff9a1fbe..e48221e97f8d 100644
@@ -141,24 +141,6 @@ config MTD_NETSC520
 	  demonstration board. If you have one of these boards and would like
 	  to use the flash chips on it, say 'Y'.
 
-config MTD_TS5500
-	tristate "JEDEC Flash device mapped on Technologic Systems TS-5500"
-	depends on TS5500 || COMPILE_TEST
-	select MTD_JEDECPROBE
-	select MTD_CFI_AMDSTD
-	help
-	  This provides a driver for the on-board flash of the Technologic
-	  System's TS-5500 board. The 2MB flash is split into 3 partitions
-	  which are accessed as separate MTD devices.
-
-	  mtd0 and mtd2 are the two BIOS drives, which use the resident
-	  flash disk (RFD) flash translation layer.
-
-	  mtd1 allows you to reprogram your BIOS. BE VERY CAREFUL.
-
-	  Note that jumper 3 ("Write Enable Drive A") must be set
-	  otherwise detection won't succeed.
-
 config MTD_SBC_GXX
 	tristate "CFI Flash device mapped on Arcom SBC-GXx boards"
 	depends on X86 && MTD_CFI_INTELEXT && MTD_COMPLEX_MAPPINGS
drivers/mtd/maps/Makefile +0 -1
index 51af1d2ebd52..46ff278006a7 100644
@@ -28,7 +28,6 @@ obj-$(CONFIG_MTD_SA1100)	+= sa1100-flash.o
 obj-$(CONFIG_MTD_SBC_GXX)	+= sbc_gxx.o
 obj-$(CONFIG_MTD_SC520CDP)	+= sc520cdp.o
 obj-$(CONFIG_MTD_NETSC520)	+= netsc520.o
-obj-$(CONFIG_MTD_TS5500)	+= ts5500_flash.o
 obj-$(CONFIG_MTD_SUN_UFLASH)	+= sun_uflash.o
 obj-$(CONFIG_MTD_SCx200_DOCFLASH)+= scx200_docflash.o
 obj-$(CONFIG_MTD_SOLUTIONENGINE)+= solutionengine.o
drivers/mtd/maps/ts5500_flash.c deleted +0 -108

108 lines not on this page · raw message

Signature · 1 line
2.54.0
author
#3 lore raw

PATCH 3/8 mtd: netsc520: Remove mapping since board is no longer supported

In reply to Sean Young

Since commit 8b793a92d862 ("x86/cpu: Remove M486/M486SX/ELAN support"), this board is no longer supported. Remove the mtd map too.

---
 drivers/mtd/maps/Kconfig    |   8 ---
 drivers/mtd/maps/Makefile   |   1 -
 drivers/mtd/maps/netsc520.c | 127 ------------------------------------
 3 files changed, 136 deletions(-)
 delete mode 100644 drivers/mtd/maps/netsc520.c
drivers/mtd/maps/Kconfig +0 -8
index e48221e97f8d..b34f3c34c626 100644
@@ -133,14 +133,6 @@ config MTD_SC520CDP
 	  Dual-in-line JEDEC chip. This 'mapping' driver supports that
 	  arrangement, implementing three MTD devices.
 
-config MTD_NETSC520
-	tristate "CFI Flash device mapped on AMD NetSc520"
-	depends on (MELAN || COMPILE_TEST) && MTD_CFI
-	help
-	  This enables access routines for the flash chips on the AMD NetSc520
-	  demonstration board. If you have one of these boards and would like
-	  to use the flash chips on it, say 'Y'.
-
 config MTD_SBC_GXX
 	tristate "CFI Flash device mapped on Arcom SBC-GXx boards"
 	depends on X86 && MTD_CFI_INTELEXT && MTD_COMPLEX_MAPPINGS
drivers/mtd/maps/Makefile +0 -1
index 46ff278006a7..e8b5caa17ccc 100644
@@ -27,7 +27,6 @@ obj-$(CONFIG_MTD_PCMCIA)	+= pcmciamtd.o
 obj-$(CONFIG_MTD_SA1100)	+= sa1100-flash.o
 obj-$(CONFIG_MTD_SBC_GXX)	+= sbc_gxx.o
 obj-$(CONFIG_MTD_SC520CDP)	+= sc520cdp.o
-obj-$(CONFIG_MTD_NETSC520)	+= netsc520.o
 obj-$(CONFIG_MTD_SUN_UFLASH)	+= sun_uflash.o
 obj-$(CONFIG_MTD_SCx200_DOCFLASH)+= scx200_docflash.o
 obj-$(CONFIG_MTD_SOLUTIONENGINE)+= solutionengine.o
drivers/mtd/maps/netsc520.c deleted +0 -127

127 lines not on this page · raw message

Signature · 1 line
2.54.0
author
#1 lore raw

PATCH 1/8 x86/platform: Remove Technology Systems 5500 board

In reply to Sean Young

Since commit 8b793a92d862 ("x86/cpu: Remove M486/M486SX/ELAN support"), this board is no longer supported. Remove the platform support too.

---
 .../ABI/testing/sysfs-platform-ts5500         |  54 ---
 MAINTAINERS                                   |   5 -
 arch/x86/Kconfig                              |   9 -
 arch/x86/platform/Makefile                    |   1 -
 arch/x86/platform/ts5500/Makefile             |   2 -
 arch/x86/platform/ts5500/ts5500.c             | 341 ------------------
 6 files changed, 412 deletions(-)
 delete mode 100644 Documentation/ABI/testing/sysfs-platform-ts5500
 delete mode 100644 arch/x86/platform/ts5500/Makefile
 delete mode 100644 arch/x86/platform/ts5500/ts5500.c
Documentation/ABI/testing/sysfs-platform-ts5500 deleted +0 -54
deleted file mode 100644
index e685957caa12..000000000000
@@ -1,54 +0,0 @@
-What:		/sys/devices/platform/ts5500/adc
-Date:		January 2013
-KernelVersion:	3.7
-Contact:	"Savoir-faire Linux Inc." <[email protected]>
-Description:
-		Indicates the presence of an A/D Converter. If it is present,
-		it will display "1", otherwise "0".
-
-What:		/sys/devices/platform/ts5500/ereset
-Date:		January 2013
-KernelVersion:	3.7
-Contact:	"Savoir-faire Linux Inc." <[email protected]>
-Description:
-		Indicates the presence of an external reset. If it is present,
-		it will display "1", otherwise "0".
-
-What:		/sys/devices/platform/ts5500/id
-Date:		January 2013
-KernelVersion:	3.7
-Contact:	"Savoir-faire Linux Inc." <[email protected]>
-Description:
-		Product ID of the TS board. TS-5500 ID is 0x60.
-
-What:		/sys/devices/platform/ts5500/jumpers
-Date:		January 2013
-KernelVersion:	3.7
-Contact:	"Savoir-faire Linux Inc." <[email protected]>
-Description:
-		Bitfield showing the jumpers' state. If a jumper is present,
-		the corresponding bit is set. For instance, 0x0e means jumpers
-		2, 3 and 4 are set.
-
-What:		/sys/devices/platform/ts5500/name
-Date:		July 2014
-KernelVersion:	3.16
-Contact:	"Savoir-faire Linux Inc." <[email protected]>
-Description:
-		Model name of the TS board, e.g. "TS-5500".
-
-What:		/sys/devices/platform/ts5500/rs485
-Date:		January 2013
-KernelVersion:	3.7
-Contact:	"Savoir-faire Linux Inc." <[email protected]>
-Description:
-		Indicates the presence of the RS485 option. If it is present,
-		it will display "1", otherwise "0".
-
-What:		/sys/devices/platform/ts5500/sram
-Date:		January 2013
-KernelVersion:	3.7
-Contact:	"Savoir-faire Linux Inc." <[email protected]>
-Description:
-		Indicates the presence of the SRAM option. If it is present,
-		it will display "1", otherwise "0".
MAINTAINERS +0 -5
index 882214b0e7db..b526739b9947 100644
@@ -26182,11 +26182,6 @@ S:	Maintained
 F:	Documentation/process/contribution-maturity-model.rst
 F:	Documentation/process/researcher-guidelines.rst
 
-TECHNOLOGIC SYSTEMS TS-5500 PLATFORM SUPPORT
-M:	"Savoir-faire Linux Inc." <[email protected]>
-S:	Maintained
-F:	arch/x86/platform/ts5500/
-
 TECHNOTREND USB IR RECEIVER
 M:	Sean Young <[email protected]>
 L:	[email protected]
arch/x86/Kconfig +0 -9
index f3f7cb01d69d..4ea5465a9d93 100644
@@ -3100,15 +3100,6 @@ config GEOS
 	help
 	  This option enables system support for the Traverse Technologies GEOS.
 
-config TS5500
-	bool "Technologic Systems TS-5500 platform support"
-	depends on MELAN
-	select CHECK_SIGNATURE
-	select NEW_LEDS
-	select LEDS_CLASS
-	help
-	  This option enables system support for the Technologic Systems TS-5500.
-
 endif # X86_32
 
 config AMD_NB
arch/x86/platform/Makefile +0 -1
index 3ed03a2552d0..727b92d0ca25 100644
@@ -10,5 +10,4 @@ obj-y	+= intel-mid/
 obj-y	+= intel-quark/
 obj-y	+= olpc/
 obj-y	+= scx200/
-obj-y	+= ts5500/
 obj-y	+= uv/
arch/x86/platform/ts5500/Makefile deleted +0 -2
deleted file mode 100644
index 910fe9e3ffb4..000000000000
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-obj-$(CONFIG_TS5500)	+= ts5500.o
arch/x86/platform/ts5500/ts5500.c deleted +0 -341

341 lines not on this page · raw message

Signature · 1 line
2.54.0
author
#4 lore raw

PATCH 4/8 mtd: sc520cdp: Remove mapping since board is no longer supported

In reply to Sean Young

Since commit 8b793a92d862 ("x86/cpu: Remove M486/M486SX/ELAN support"), this board is no longer supported. Remove the mtd map too.

---
 drivers/mtd/maps/Kconfig    |   8 -
 drivers/mtd/maps/Makefile   |   1 -
 drivers/mtd/maps/sc520cdp.c | 294 ------------------------------------
 3 files changed, 303 deletions(-)
 delete mode 100644 drivers/mtd/maps/sc520cdp.c
drivers/mtd/maps/Kconfig +0 -8
index b34f3c34c626..db63b5af4b39 100644
@@ -125,14 +125,6 @@ config MTD_SUN_UFLASH
 	  Sun Microsystems boardsets.  This driver will require CFI support
 	  in the kernel, so if you did not enable CFI previously, do that now.
 
-config MTD_SC520CDP
-	tristate "CFI Flash device mapped on AMD SC520 CDP"
-	depends on (MELAN || COMPILE_TEST) && MTD_CFI
-	help
-	  The SC520 CDP board has two banks of CFI-compliant chips and one
-	  Dual-in-line JEDEC chip. This 'mapping' driver supports that
-	  arrangement, implementing three MTD devices.
-
 config MTD_SBC_GXX
 	tristate "CFI Flash device mapped on Arcom SBC-GXx boards"
 	depends on X86 && MTD_CFI_INTELEXT && MTD_COMPLEX_MAPPINGS
drivers/mtd/maps/Makefile +0 -1
index e8b5caa17ccc..c545d1e68e91 100644
@@ -26,7 +26,6 @@ obj-$(CONFIG_MTD_PISMO)		+= pismo.o
 obj-$(CONFIG_MTD_PCMCIA)	+= pcmciamtd.o
 obj-$(CONFIG_MTD_SA1100)	+= sa1100-flash.o
 obj-$(CONFIG_MTD_SBC_GXX)	+= sbc_gxx.o
-obj-$(CONFIG_MTD_SC520CDP)	+= sc520cdp.o
 obj-$(CONFIG_MTD_SUN_UFLASH)	+= sun_uflash.o
 obj-$(CONFIG_MTD_SCx200_DOCFLASH)+= scx200_docflash.o
 obj-$(CONFIG_MTD_SOLUTIONENGINE)+= solutionengine.o
drivers/mtd/maps/sc520cdp.c deleted +0 -294

294 lines not on this page · raw message

Signature · 1 line
2.54.0
author
#5 lore raw

PATCH 5/8 gpio: ts5500: Remove gpio driver as board no longer supported

In reply to Sean Young

Since commit 8b793a92d862 ("x86/cpu: Remove M486/M486SX/ELAN support"), this board is no longer supported. Remove the gpio driver too.

---
 drivers/gpio/Kconfig       |   9 -
 drivers/gpio/Makefile      |   1 -
 drivers/gpio/gpio-ts5500.c | 446 -------------------------------------
 3 files changed, 456 deletions(-)
 delete mode 100644 drivers/gpio/gpio-ts5500.c
drivers/gpio/Kconfig +0 -9
index 020e51e30317..359a21cb093e 100644
@@ -1093,15 +1093,6 @@ config GPIO_SCH311X
 	  To compile this driver as a module, choose M here: the module will
 	  be called gpio-sch311x.
 
-config GPIO_TS5500
-	tristate "TS-5500 DIO blocks and compatibles"
-	depends on TS5500 || COMPILE_TEST
-	help
-	  This driver supports Digital I/O exposed by pin blocks found on some
-	  Technologic Systems platforms. It includes, but is not limited to, 3
-	  blocks of the TS-5500: DIO1, DIO2 and the LCD port, and the TS-5600
-	  LCD port.
-
 config GPIO_WINBOND
 	tristate "Winbond Super I/O GPIO support"
 	select ISA_BUS_API
drivers/gpio/Makefile +0 -1
index b267598b517d..dc9d1106e75f 100644
@@ -194,7 +194,6 @@ obj-$(CONFIG_GPIO_TPS68470)		+= gpio-tps68470.o
 obj-$(CONFIG_GPIO_TQMX86)		+= gpio-tqmx86.o
 obj-$(CONFIG_GPIO_TS4800)		+= gpio-ts4800.o
 obj-$(CONFIG_GPIO_TS4900)		+= gpio-ts4900.o
-obj-$(CONFIG_GPIO_TS5500)		+= gpio-ts5500.o
 obj-$(CONFIG_GPIO_TWL4030)		+= gpio-twl4030.o
 obj-$(CONFIG_GPIO_TWL6040)		+= gpio-twl6040.o
 obj-$(CONFIG_GPIO_UNIPHIER)		+= gpio-uniphier.o
drivers/gpio/gpio-ts5500.c deleted +0 -446

446 lines not on this page · raw message

Signature · 1 line
2.54.0
author
#7 lore raw

PATCH 6/8 watchdog: sc520: Drop AMD Elan SC520 support

In reply to Sean Young

Since commit 8b793a92d862 ("x86/cpu: Remove M486/M486SX/ELAN support"), this board is no longer supported. Remove the watchdog too.

---
 .../watchdog/watchdog-parameters.rst          |   9 -
 drivers/watchdog/Kconfig                      |  13 -
 drivers/watchdog/Makefile                     |   1 -
 drivers/watchdog/sc520_wdt.c                  | 430 ------------------
 4 files changed, 453 deletions(-)
 delete mode 100644 drivers/watchdog/sc520_wdt.c
Documentation/watchdog/watchdog-parameters.rst +0 -9
index 773241ed9986..638b972e0b16 100644
@@ -532,15 +532,6 @@ sc1200wdt:
 
 -------------------------------------------------
 
-sc520_wdt:
-    timeout:
-	Watchdog timeout in seconds. (1 <= timeout <= 3600, default=30)
-    nowayout:
-	Watchdog cannot be stopped once started
-	(default=kernel config parameter)
-
--------------------------------------------------
-
 sch311x_wdt:
     force_id:
 	Override the detected device ID
drivers/watchdog/Kconfig +0 -13
index dc78729ba2a5..4e36e4b5bf39 100644
@@ -1270,19 +1270,6 @@ config GEODE_WDT
 	  You can compile this driver directly into the kernel, or use
 	  it as a module.  The module will be called geodewdt.
 
-config SC520_WDT
-	tristate "AMD Elan SC520 processor Watchdog"
-	depends on MELAN || COMPILE_TEST
-	help
-	  This is the driver for the hardware watchdog built in to the
-	  AMD "Elan" SC520 microcomputer commonly used in embedded systems.
-	  This watchdog simply watches your kernel to make sure it doesn't
-	  freeze, and if it does, it reboots your computer after a certain
-	  amount of time.
-
-	  You can compile this driver directly into the kernel, or use
-	  it as a module.  The module will be called sc520_wdt.
-
 config SBC_FITPC2_WATCHDOG
 	tristate "Compulab SBC-FITPC2 watchdog"
 	depends on (X86 || COMPILE_TEST) && HAS_IOPORT
drivers/watchdog/Makefile +0 -1
index d2fb16b9f9ce..1daeab5b2473 100644
@@ -116,7 +116,6 @@ obj-$(CONFIG_EXAR_WDT) += exar_wdt.o
 obj-$(CONFIG_F71808E_WDT) += f71808e_wdt.o
 obj-$(CONFIG_SP5100_TCO) += sp5100_tco.o
 obj-$(CONFIG_GEODE_WDT) += geodewdt.o
-obj-$(CONFIG_SC520_WDT) += sc520_wdt.o
 obj-$(CONFIG_SBC_FITPC2_WATCHDOG) += sbc_fitpc2_wdt.o
 obj-$(CONFIG_EUROTECH_WDT) += eurotechwdt.o
 obj-$(CONFIG_IB700_WDT) += ib700wdt.o
drivers/watchdog/sc520_wdt.c deleted +0 -430

430 lines not on this page · raw message

Signature · 1 line
2.54.0
author
#9 lore raw

PATCH 7/8 cpufreq: sc520_freq: Drop support for AMD Elan SC520

In reply to Sean Young

Since commit 8b793a92d862 ("x86/cpu: Remove M486/M486SX/ELAN support"), the AMD Elan SC520 is no longer supported, so the cpu frequency driver is no longer needed.

---
 drivers/cpufreq/Kconfig.x86  |  11 ---
 drivers/cpufreq/Makefile     |   1 -
 drivers/cpufreq/sc520_freq.c | 136 -----------------------------------
 3 files changed, 148 deletions(-)
 delete mode 100644 drivers/cpufreq/sc520_freq.c
drivers/cpufreq/Kconfig.x86 +0 -11
index 027e6ea2e038..865b290b01ff 100644
@@ -141,17 +141,6 @@ config ELAN_CPUFREQ
 
 	  If in doubt, say N.
 
-config SC520_CPUFREQ
-	tristate "AMD Elan SC520"
-	depends on MELAN
-	help
-	  This adds the CPUFreq driver for AMD Elan SC520 processor.
-
-	  For details, take a look at <file:Documentation/cpu-freq/>.
-
-	  If in doubt, say N.
-
-
 config X86_POWERNOW_K6
 	tristate "AMD Mobile K6-2/K6-3 PowerNow!"
 	depends on X86_32
drivers/cpufreq/Makefile +0 -1
index 385c9fcc65c6..96196edf79d5 100644
@@ -41,7 +41,6 @@ obj-$(CONFIG_X86_POWERNOW_K7)		+= powernow-k7.o
 obj-$(CONFIG_X86_LONGHAUL)		+= longhaul.o
 obj-$(CONFIG_X86_E_POWERSAVER)		+= e_powersaver.o
 obj-$(CONFIG_ELAN_CPUFREQ)		+= elanfreq.o
-obj-$(CONFIG_SC520_CPUFREQ)		+= sc520_freq.o
 obj-$(CONFIG_X86_LONGRUN)		+= longrun.o
 obj-$(CONFIG_X86_GX_SUSPMOD)		+= gx-suspmod.o
 obj-$(CONFIG_X86_SPEEDSTEP_ICH)		+= speedstep-ich.o
drivers/cpufreq/sc520_freq.c deleted +0 -136

136 lines not on this page · raw message

Signature · 1 line
2.54.0
author
#12 lore raw

PATCH 8/8 cpufreq: elanfreq: Drop support for AMD Elan SC4*

In reply to Sean Young

Since commit 8b793a92d862 ("x86/cpu: Remove M486/M486SX/ELAN support"), the AMD Elan SC4* is no longer supported, so the cpu frequency driver is no longer needed.

---
 drivers/cpufreq/Kconfig.x86 |  15 ---
 drivers/cpufreq/Makefile    |   1 -
 drivers/cpufreq/elanfreq.c  | 226 ------------------------------------
 3 files changed, 242 deletions(-)
 delete mode 100644 drivers/cpufreq/elanfreq.c
drivers/cpufreq/Kconfig.x86 +0 -15
index 865b290b01ff..c42dd39e0b2a 100644
@@ -126,21 +126,6 @@ config X86_ACPI_CPUFREQ_CPB
 	  By enabling this option the acpi_cpufreq driver provides the old
 	  entry in addition to the new boost ones, for compatibility reasons.
 
-config ELAN_CPUFREQ
-	tristate "AMD Elan SC400 and SC410"
-	depends on MELAN
-	help
-	  This adds the CPUFreq driver for AMD Elan SC400 and SC410
-	  processors.
-
-	  You need to specify the processor maximum speed as boot
-	  parameter: elanfreq=maxspeed (in kHz) or as module
-	  parameter "max_freq".
-
-	  For details, take a look at <file:Documentation/cpu-freq/>.
-
-	  If in doubt, say N.
-
 config X86_POWERNOW_K6
 	tristate "AMD Mobile K6-2/K6-3 PowerNow!"
 	depends on X86_32
drivers/cpufreq/Makefile +0 -1
index 96196edf79d5..6c7a39b7f8d2 100644
@@ -40,7 +40,6 @@ obj-$(CONFIG_X86_POWERNOW_K6)		+= powernow-k6.o
 obj-$(CONFIG_X86_POWERNOW_K7)		+= powernow-k7.o
 obj-$(CONFIG_X86_LONGHAUL)		+= longhaul.o
 obj-$(CONFIG_X86_E_POWERSAVER)		+= e_powersaver.o
-obj-$(CONFIG_ELAN_CPUFREQ)		+= elanfreq.o
 obj-$(CONFIG_X86_LONGRUN)		+= longrun.o
 obj-$(CONFIG_X86_GX_SUSPMOD)		+= gx-suspmod.o
 obj-$(CONFIG_X86_SPEEDSTEP_ICH)		+= speedstep-ich.o
drivers/cpufreq/elanfreq.c deleted +0 -226

226 lines not on this page · raw message

Signature · 1 line
2.54.0
maintainer
#8 lore raw

Re: [PATCH 6/8] watchdog: sc520: Drop AMD Elan SC520 support

In reply to Sean Young
Quoted 4 lines · Sean Young

Since commit 8b793a92d862 ("x86/cpu: Remove M486/M486SX/ELAN support"), this board is no longer supported. Remove the watchdog too.

I already submitted the same patch yesterday and applied it to my watchdog-next branch.

Guenter

Reviewed-by on v1 7/8
#10 lore raw

Re: [PATCH 7/8] cpufreq: sc520_freq: Drop support for AMD Elan SC520

In reply to Sean Young
Quoted 5 lines · Sean Young

Since commit 8b793a92d862 ("x86/cpu: Remove M486/M486SX/ELAN support"), the AMD Elan SC520 is no longer supported, so the cpu frequency driver is no longer needed.

Quoted 183 lines
---
  drivers/cpufreq/Kconfig.x86  |  11 ---
  drivers/cpufreq/Makefile     |   1 -
  drivers/cpufreq/sc520_freq.c | 136 -----------------------------------
  3 files changed, 148 deletions(-)

delete mode 100644 drivers/cpufreq/sc520_freq.c

drivers/cpufreq/Kconfig.x86 +0 -11
index 027e6ea2e038..865b290b01ff 100644
@@ -141,17 +141,6 @@ config ELAN_CPUFREQ
 
  	  If in doubt, say N.
 
-config SC520_CPUFREQ
-	tristate "AMD Elan SC520"
-	depends on MELAN
-	help
-	  This adds the CPUFreq driver for AMD Elan SC520 processor.
-
-	  For details, take a look at <file:Documentation/cpu-freq/>.
-
-	  If in doubt, say N.
-
-
  config X86_POWERNOW_K6
  	tristate "AMD Mobile K6-2/K6-3 PowerNow!"
  	depends on X86_32
drivers/cpufreq/Makefile +0 -1
index 385c9fcc65c6..96196edf79d5 100644
@@ -41,7 +41,6 @@ obj-$(CONFIG_X86_POWERNOW_K7)		+= powernow-k7.o
  obj-$(CONFIG_X86_LONGHAUL)		+= longhaul.o
  obj-$(CONFIG_X86_E_POWERSAVER)		+= e_powersaver.o
  obj-$(CONFIG_ELAN_CPUFREQ)		+= elanfreq.o
-obj-$(CONFIG_SC520_CPUFREQ)		+= sc520_freq.o
  obj-$(CONFIG_X86_LONGRUN)		+= longrun.o
  obj-$(CONFIG_X86_GX_SUSPMOD)		+= gx-suspmod.o
  obj-$(CONFIG_X86_SPEEDSTEP_ICH)		+= speedstep-ich.o
drivers/cpufreq/sc520_freq.c deleted +0 -136
deleted file mode 100644
index b360f03a116f..000000000000
@@ -1,136 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- *	sc520_freq.c: cpufreq driver for the AMD Elan sc520
- *
- *	Copyright (C) 2005 Sean Young <[email protected]>
- *
- *	Based on elanfreq.c
- *
- *	2005-03-30: - initial revision
- */
-
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/init.h>
-
-#include <linux/delay.h>
-#include <linux/cpufreq.h>
-#include <linux/timex.h>
-#include <linux/io.h>
-
-#include <asm/cpu_device_id.h>
-
-#define MMCR_BASE	0xfffef000	/* The default base address */
-#define OFFS_CPUCTL	0x2   /* CPU Control Register */
-
-static __u8 __iomem *cpuctl;
-
-static struct cpufreq_frequency_table sc520_freq_table[] = {
-	{0, 0x01,	100000},
-	{0, 0x02,	133000},
-	{0, 0,	CPUFREQ_TABLE_END},
-};
-
-static unsigned int sc520_freq_get_cpu_frequency(unsigned int cpu)
-{
-	u8 clockspeed_reg = *cpuctl;
-
-	switch (clockspeed_reg & 0x03) {
-	default:
-		pr_err("error: cpuctl register has unexpected value %02x\n",
-		       clockspeed_reg);
-		fallthrough;
-	case 0x01:
-		return 100000;
-	case 0x02:
-		return 133000;
-	}
-}
-
-static int sc520_freq_target(struct cpufreq_policy *policy, unsigned int state)
-{
-
-	u8 clockspeed_reg;
-
-	local_irq_disable();
-
-	clockspeed_reg = *cpuctl & ~0x03;
-	*cpuctl = clockspeed_reg | sc520_freq_table[state].driver_data;
-
-	local_irq_enable();
-
-	return 0;
-}
-
-/*
- *	Module init and exit code
- */
-
-static int sc520_freq_cpu_init(struct cpufreq_policy *policy)
-{
-	struct cpuinfo_x86 *c = &cpu_data(0);
-
-	/* capability check */
-	if (c->x86_vendor != X86_VENDOR_AMD ||
-	    c->x86 != 4 || c->x86_model != 9)
-		return -ENODEV;
-
-	/* cpuinfo and default policy values */
-	policy->cpuinfo.transition_latency = 1000000; /* 1ms */
-	policy->freq_table = sc520_freq_table;
-
-	return 0;
-}
-
-
-static struct cpufreq_driver sc520_freq_driver = {
-	.get	= sc520_freq_get_cpu_frequency,
-	.verify	= cpufreq_generic_frequency_table_verify,
-	.target_index = sc520_freq_target,
-	.init	= sc520_freq_cpu_init,
-	.name	= "sc520_freq",
-};
-
-static const struct x86_cpu_id sc520_ids[] = {
-	X86_MATCH_VENDOR_FAM_MODEL(AMD, 4, 9, NULL),
-	{}
-};
-MODULE_DEVICE_TABLE(x86cpu, sc520_ids);
-
-static int __init sc520_freq_init(void)
-{
-	int err;
-
-	if (!x86_match_cpu(sc520_ids))
-		return -ENODEV;
-
-	cpuctl = ioremap((unsigned long)(MMCR_BASE + OFFS_CPUCTL), 1);
-	if (!cpuctl) {
-		pr_err("sc520_freq: error: failed to remap memory\n");
-		return -ENOMEM;
-	}
-
-	err = cpufreq_register_driver(&sc520_freq_driver);
-	if (err)
-		iounmap(cpuctl);
-
-	return err;
-}
-
-
-static void __exit sc520_freq_exit(void)
-{
-	cpufreq_unregister_driver(&sc520_freq_driver);
-	iounmap(cpuctl);
-}
-
-
-MODULE_LICENSE("GPL");
-MODULE_AUTHOR("Sean Young <[email protected]>");
-MODULE_DESCRIPTION("cpufreq driver for AMD's Elan sc520 CPU");
-
-module_init(sc520_freq_init);
-module_exit(sc520_freq_exit);
-
Signature · 2 lines
Thx and BRs,
Zhongqiu Han
#13 lore raw

Re: [PATCH 8/8] cpufreq: elanfreq: Drop support for AMD Elan SC4*

In reply to Sean Young
Quoted 4 lines · Sean Young

Since commit 8b793a92d862 ("x86/cpu: Remove M486/M486SX/ELAN support"), the AMD Elan SC4* is no longer supported, so the cpu frequency driver is no longer needed.

Quoted 8 lines
---
  drivers/cpufreq/Kconfig.x86 |  15 ---
  drivers/cpufreq/Makefile    |   1 -
  drivers/cpufreq/elanfreq.c  | 226 ------------------------------------
  3 files changed, 242 deletions(-)

delete mode 100644 drivers/cpufreq/elanfreq.c

Thanks Sean,

One minor nit: now that the elanfreq driver and its setup code are removed, should the corresponding elanfreq= entry in Documentation/admin-guide/kernel-parameters.txt be dropped as well?

https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git/tree/Documentation/admin-guide/kernel-parameters.txt?h=linux-next#n1671

Quoted 270 lines
drivers/cpufreq/Kconfig.x86 +0 -15
index 865b290b01ff..c42dd39e0b2a 100644
@@ -126,21 +126,6 @@ config X86_ACPI_CPUFREQ_CPB
  	  By enabling this option the acpi_cpufreq driver provides the old
  	  entry in addition to the new boost ones, for compatibility reasons.
 
-config ELAN_CPUFREQ
-	tristate "AMD Elan SC400 and SC410"
-	depends on MELAN
-	help
-	  This adds the CPUFreq driver for AMD Elan SC400 and SC410
-	  processors.
-
-	  You need to specify the processor maximum speed as boot
-	  parameter: elanfreq=maxspeed (in kHz) or as module
-	  parameter "max_freq".
-
-	  For details, take a look at <file:Documentation/cpu-freq/>.
-
-	  If in doubt, say N.
-
  config X86_POWERNOW_K6
  	tristate "AMD Mobile K6-2/K6-3 PowerNow!"
  	depends on X86_32
drivers/cpufreq/Makefile +0 -1
index 96196edf79d5..6c7a39b7f8d2 100644
@@ -40,7 +40,6 @@ obj-$(CONFIG_X86_POWERNOW_K6)		+= powernow-k6.o
  obj-$(CONFIG_X86_POWERNOW_K7)		+= powernow-k7.o
  obj-$(CONFIG_X86_LONGHAUL)		+= longhaul.o
  obj-$(CONFIG_X86_E_POWERSAVER)		+= e_powersaver.o
-obj-$(CONFIG_ELAN_CPUFREQ)		+= elanfreq.o
  obj-$(CONFIG_X86_LONGRUN)		+= longrun.o
  obj-$(CONFIG_X86_GX_SUSPMOD)		+= gx-suspmod.o
  obj-$(CONFIG_X86_SPEEDSTEP_ICH)		+= speedstep-ich.o
drivers/cpufreq/elanfreq.c deleted +0 -226
deleted file mode 100644
index fc5a58088b35..000000000000
@@ -1,226 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- *	elanfreq:	cpufreq driver for the AMD ELAN family
- *
- *	(c) Copyright 2002 Robert Schwebel <[email protected]>
- *
- *	Parts of this code are (c) Sven Geggus <[email protected]>
- *
- *      All Rights Reserved.
- *
- *	2002-02-13: - initial revision for 2.4.18-pre9 by Robert Schwebel
- */
-
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/init.h>
-
-#include <linux/delay.h>
-#include <linux/cpufreq.h>
-
-#include <asm/cpu_device_id.h>
-#include <linux/timex.h>
-#include <linux/io.h>
-
-#define REG_CSCIR 0x22		/* Chip Setup and Control Index Register    */
-#define REG_CSCDR 0x23		/* Chip Setup and Control Data  Register    */
-
-/* Module parameter */
-static int max_freq;
-
-struct s_elan_multiplier {
-	int clock;		/* frequency in kHz                         */
-	int val40h;		/* PMU Force Mode register                  */
-	int val80h;		/* CPU Clock Speed Register                 */
-};
-
-/*
- * It is important that the frequencies
- * are listed in ascending order here!
- */
-static struct s_elan_multiplier elan_multiplier[] = {
-	{1000,	0x02,	0x18},
-	{2000,	0x02,	0x10},
-	{4000,	0x02,	0x08},
-	{8000,	0x00,	0x00},
-	{16000,	0x00,	0x02},
-	{33000,	0x00,	0x04},
-	{66000,	0x01,	0x04},
-	{99000,	0x01,	0x05}
-};
-
-static struct cpufreq_frequency_table elanfreq_table[] = {
-	{0, 0,	1000},
-	{0, 1,	2000},
-	{0, 2,	4000},
-	{0, 3,	8000},
-	{0, 4,	16000},
-	{0, 5,	33000},
-	{0, 6,	66000},
-	{0, 7,	99000},
-	{0, 0,	CPUFREQ_TABLE_END},
-};
-
-
-/**
- *	elanfreq_get_cpu_frequency: determine current cpu speed
- *
- *	Finds out at which frequency the CPU of the Elan SOC runs
- *	at the moment. Frequencies from 1 to 33 MHz are generated
- *	the normal way, 66 and 99 MHz are called "Hyperspeed Mode"
- *	and have the rest of the chip running with 33 MHz.
- */
-
-static unsigned int elanfreq_get_cpu_frequency(unsigned int cpu)
-{
-	u8 clockspeed_reg;    /* Clock Speed Register */
-
-	local_irq_disable();
-	outb_p(0x80, REG_CSCIR);
-	clockspeed_reg = inb_p(REG_CSCDR);
-	local_irq_enable();
-
-	if ((clockspeed_reg & 0xE0) == 0xE0)
-		return 0;
-
-	/* Are we in CPU clock multiplied mode (66/99 MHz)? */
-	if ((clockspeed_reg & 0xE0) == 0xC0) {
-		if ((clockspeed_reg & 0x01) == 0)
-			return 66000;
-		else
-			return 99000;
-	}
-
-	/* 33 MHz is not 32 MHz... */
-	if ((clockspeed_reg & 0xE0) == 0xA0)
-		return 33000;
-
-	return (1<<((clockspeed_reg & 0xE0) >> 5)) * 1000;
-}
-
-
-static int elanfreq_target(struct cpufreq_policy *policy,
-			    unsigned int state)
-{
-	/*
-	 * Access to the Elan's internal registers is indexed via
-	 * 0x22: Chip Setup & Control Register Index Register (CSCI)
-	 * 0x23: Chip Setup & Control Register Data  Register (CSCD)
-	 *
-	 */
-
-	/*
-	 * 0x40 is the Power Management Unit's Force Mode Register.
-	 * Bit 6 enables Hyperspeed Mode (66/100 MHz core frequency)
-	 */
-
-	local_irq_disable();
-	outb_p(0x40, REG_CSCIR);		/* Disable hyperspeed mode */
-	outb_p(0x00, REG_CSCDR);
-	local_irq_enable();		/* wait till internal pipelines and */
-	udelay(1000);			/* buffers have cleaned up          */
-
-	local_irq_disable();
-
-	/* now, set the CPU clock speed register (0x80) */
-	outb_p(0x80, REG_CSCIR);
-	outb_p(elan_multiplier[state].val80h, REG_CSCDR);
-
-	/* now, the hyperspeed bit in PMU Force Mode Register (0x40) */
-	outb_p(0x40, REG_CSCIR);
-	outb_p(elan_multiplier[state].val40h, REG_CSCDR);
-	udelay(10000);
-	local_irq_enable();
-
-	return 0;
-}
-/*
- *	Module init and exit code
- */
-
-static int elanfreq_cpu_init(struct cpufreq_policy *policy)
-{
-	struct cpuinfo_x86 *c = &cpu_data(0);
-	struct cpufreq_frequency_table *pos;
-
-	/* capability check */
-	if ((c->x86_vendor != X86_VENDOR_AMD) ||
-	    (c->x86 != 4) || (c->x86_model != 10))
-		return -ENODEV;
-
-	/* max freq */
-	if (!max_freq)
-		max_freq = elanfreq_get_cpu_frequency(0);
-
-	/* table init */
-	cpufreq_for_each_entry(pos, elanfreq_table)
-		if (pos->frequency > max_freq)
-			pos->frequency = CPUFREQ_ENTRY_INVALID;
-
-	policy->freq_table = elanfreq_table;
-	return 0;
-}
-
-
-#ifndef MODULE
-/**
- * elanfreq_setup - elanfreq command line parameter parsing
- *
- * elanfreq command line parameter.  Use:
- *  elanfreq=66000
- * to set the maximum CPU frequency to 66 MHz. Note that in
- * case you do not give this boot parameter, the maximum
- * frequency will fall back to _current_ CPU frequency which
- * might be lower. If you build this as a module, use the
- * max_freq module parameter instead.
- */
-static int __init elanfreq_setup(char *str)
-{
-	max_freq = simple_strtoul(str, &str, 0);
-	pr_warn("You're using the deprecated elanfreq command line option. Use elanfreq.max_freq instead, please!\n");
-	return 1;
-}
-__setup("elanfreq=", elanfreq_setup);
-#endif
-
-
-static struct cpufreq_driver elanfreq_driver = {
-	.get		= elanfreq_get_cpu_frequency,
-	.flags		= CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING,
-	.verify		= cpufreq_generic_frequency_table_verify,
-	.target_index	= elanfreq_target,
-	.init		= elanfreq_cpu_init,
-	.name		= "elanfreq",
-};
-
-static const struct x86_cpu_id elan_id[] = {
-	X86_MATCH_VENDOR_FAM_MODEL(AMD, 4, 10, NULL),
-	{}
-};
-MODULE_DEVICE_TABLE(x86cpu, elan_id);
-
-static int __init elanfreq_init(void)
-{
-	if (!x86_match_cpu(elan_id))
-		return -ENODEV;
-	return cpufreq_register_driver(&elanfreq_driver);
-}
-
-
-static void __exit elanfreq_exit(void)
-{
-	cpufreq_unregister_driver(&elanfreq_driver);
-}
-
-
-module_param(max_freq, int, 0444);
-
-MODULE_LICENSE("GPL");
-MODULE_AUTHOR("Robert Schwebel <[email protected]>, "
-		"Sven Geggus <[email protected]>");
-MODULE_DESCRIPTION("cpufreq driver for AMD's Elan CPUs");
-
-module_init(elanfreq_init);
-module_exit(elanfreq_exit);
Signature · 2 lines
Thx and BRs,
Zhongqiu Han
maintainer Acked-by on v1 7/8
#11 lore raw

Re: [PATCH 7/8] cpufreq: sc520_freq: Drop support for AMD Elan SC520

In reply to Sean Young
Quoted 11 lines · Sean Young

Since commit 8b793a92d862 ("x86/cpu: Remove M486/M486SX/ELAN support"), the AMD Elan SC520 is no longer supported, so the cpu frequency driver is no longer needed.

---
 drivers/cpufreq/Kconfig.x86  |  11 ---
 drivers/cpufreq/Makefile     |   1 -
 drivers/cpufreq/sc520_freq.c | 136 -----------------------------------
 3 files changed, 148 deletions(-)
 delete mode 100644 drivers/cpufreq/sc520_freq.c
Signature · 1 line
viresh
maintainer Acked-by on v1 8/8
#15 lore raw

Re: [PATCH 8/8] cpufreq: elanfreq: Drop support for AMD Elan SC4*

In reply to Sean Young
Quoted 11 lines · Sean Young

Since commit 8b793a92d862 ("x86/cpu: Remove M486/M486SX/ELAN support"), the AMD Elan SC4* is no longer supported, so the cpu frequency driver is no longer needed.

---
 drivers/cpufreq/Kconfig.x86 |  15 ---
 drivers/cpufreq/Makefile    |   1 -
 drivers/cpufreq/elanfreq.c  | 226 ------------------------------------
 3 files changed, 242 deletions(-)
 delete mode 100644 drivers/cpufreq/elanfreq.c
Signature · 1 line
viresh
author
#14 lore raw

Re: [PATCH 8/8] cpufreq: elanfreq: Drop support for AMD Elan SC4*

In reply to Zhongqiu Han
Quoted 14 lines · Zhongqiu Han
Quoted 4 lines · Sean Young

Since commit 8b793a92d862 ("x86/cpu: Remove M486/M486SX/ELAN support"), the AMD Elan SC4* is no longer supported, so the cpu frequency driver is no longer needed.

Quoted 8 lines
---
  drivers/cpufreq/Kconfig.x86 |  15 ---
  drivers/cpufreq/Makefile    |   1 -
  drivers/cpufreq/elanfreq.c  | 226 ------------------------------------
  3 files changed, 242 deletions(-)

delete mode 100644 drivers/cpufreq/elanfreq.c

Quoted 7 lines

Thanks Sean,

One minor nit: now that the elanfreq driver and its setup code are removed, should the corresponding elanfreq= entry in Documentation/admin-guide/kernel-parameters.txt be dropped as well?

https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git/tree/Documentation/admin-guide/kernel-parameters.txt?h=linux-next#n1671

Yes, good catch. I'll send out a v2 shortly.

Thanks,

Sean

Quoted 276 lines
Quoted 271 lines
drivers/cpufreq/Kconfig.x86 +0 -15
index 865b290b01ff..c42dd39e0b2a 100644
@@ -126,21 +126,6 @@ config X86_ACPI_CPUFREQ_CPB
  	  By enabling this option the acpi_cpufreq driver provides the old
  	  entry in addition to the new boost ones, for compatibility reasons.
-config ELAN_CPUFREQ
-	tristate "AMD Elan SC400 and SC410"
-	depends on MELAN
-	help
-	  This adds the CPUFreq driver for AMD Elan SC400 and SC410
-	  processors.
-
-	  You need to specify the processor maximum speed as boot
-	  parameter: elanfreq=maxspeed (in kHz) or as module
-	  parameter "max_freq".
-
-	  For details, take a look at <file:Documentation/cpu-freq/>.
-
-	  If in doubt, say N.
-
  config X86_POWERNOW_K6
  	tristate "AMD Mobile K6-2/K6-3 PowerNow!"
  	depends on X86_32
drivers/cpufreq/Makefile +0 -1
index 96196edf79d5..6c7a39b7f8d2 100644
@@ -40,7 +40,6 @@ obj-$(CONFIG_X86_POWERNOW_K6)		+= powernow-k6.o
  obj-$(CONFIG_X86_POWERNOW_K7)		+= powernow-k7.o
  obj-$(CONFIG_X86_LONGHAUL)		+= longhaul.o
  obj-$(CONFIG_X86_E_POWERSAVER)		+= e_powersaver.o
-obj-$(CONFIG_ELAN_CPUFREQ)		+= elanfreq.o
  obj-$(CONFIG_X86_LONGRUN)		+= longrun.o
  obj-$(CONFIG_X86_GX_SUSPMOD)		+= gx-suspmod.o
  obj-$(CONFIG_X86_SPEEDSTEP_ICH)		+= speedstep-ich.o
drivers/cpufreq/elanfreq.c deleted +0 -226
deleted file mode 100644
index fc5a58088b35..000000000000
@@ -1,226 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- *	elanfreq:	cpufreq driver for the AMD ELAN family
- *
- *	(c) Copyright 2002 Robert Schwebel <[email protected]>
- *
- *	Parts of this code are (c) Sven Geggus <[email protected]>
- *
- *      All Rights Reserved.
- *
- *	2002-02-13: - initial revision for 2.4.18-pre9 by Robert Schwebel
- */
-
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/init.h>
-
-#include <linux/delay.h>
-#include <linux/cpufreq.h>
-
-#include <asm/cpu_device_id.h>
-#include <linux/timex.h>
-#include <linux/io.h>
-
-#define REG_CSCIR 0x22		/* Chip Setup and Control Index Register    */
-#define REG_CSCDR 0x23		/* Chip Setup and Control Data  Register    */
-
-/* Module parameter */
-static int max_freq;
-
-struct s_elan_multiplier {
-	int clock;		/* frequency in kHz                         */
-	int val40h;		/* PMU Force Mode register                  */
-	int val80h;		/* CPU Clock Speed Register                 */
-};
-
-/*
- * It is important that the frequencies
- * are listed in ascending order here!
- */
-static struct s_elan_multiplier elan_multiplier[] = {
-	{1000,	0x02,	0x18},
-	{2000,	0x02,	0x10},
-	{4000,	0x02,	0x08},
-	{8000,	0x00,	0x00},
-	{16000,	0x00,	0x02},
-	{33000,	0x00,	0x04},
-	{66000,	0x01,	0x04},
-	{99000,	0x01,	0x05}
-};
-
-static struct cpufreq_frequency_table elanfreq_table[] = {
-	{0, 0,	1000},
-	{0, 1,	2000},
-	{0, 2,	4000},
-	{0, 3,	8000},
-	{0, 4,	16000},
-	{0, 5,	33000},
-	{0, 6,	66000},
-	{0, 7,	99000},
-	{0, 0,	CPUFREQ_TABLE_END},
-};
-
-
-/**
- *	elanfreq_get_cpu_frequency: determine current cpu speed
- *
- *	Finds out at which frequency the CPU of the Elan SOC runs
- *	at the moment. Frequencies from 1 to 33 MHz are generated
- *	the normal way, 66 and 99 MHz are called "Hyperspeed Mode"
- *	and have the rest of the chip running with 33 MHz.
- */
-
-static unsigned int elanfreq_get_cpu_frequency(unsigned int cpu)
-{
-	u8 clockspeed_reg;    /* Clock Speed Register */
-
-	local_irq_disable();
-	outb_p(0x80, REG_CSCIR);
-	clockspeed_reg = inb_p(REG_CSCDR);
-	local_irq_enable();
-
-	if ((clockspeed_reg & 0xE0) == 0xE0)
-		return 0;
-
-	/* Are we in CPU clock multiplied mode (66/99 MHz)? */
-	if ((clockspeed_reg & 0xE0) == 0xC0) {
-		if ((clockspeed_reg & 0x01) == 0)
-			return 66000;
-		else
-			return 99000;
-	}
-
-	/* 33 MHz is not 32 MHz... */
-	if ((clockspeed_reg & 0xE0) == 0xA0)
-		return 33000;
-
-	return (1<<((clockspeed_reg & 0xE0) >> 5)) * 1000;
-}
-
-
-static int elanfreq_target(struct cpufreq_policy *policy,
-			    unsigned int state)
-{
-	/*
-	 * Access to the Elan's internal registers is indexed via
-	 * 0x22: Chip Setup & Control Register Index Register (CSCI)
-	 * 0x23: Chip Setup & Control Register Data  Register (CSCD)
-	 *
-	 */
-
-	/*
-	 * 0x40 is the Power Management Unit's Force Mode Register.
-	 * Bit 6 enables Hyperspeed Mode (66/100 MHz core frequency)
-	 */
-
-	local_irq_disable();
-	outb_p(0x40, REG_CSCIR);		/* Disable hyperspeed mode */
-	outb_p(0x00, REG_CSCDR);
-	local_irq_enable();		/* wait till internal pipelines and */
-	udelay(1000);			/* buffers have cleaned up          */
-
-	local_irq_disable();
-
-	/* now, set the CPU clock speed register (0x80) */
-	outb_p(0x80, REG_CSCIR);
-	outb_p(elan_multiplier[state].val80h, REG_CSCDR);
-
-	/* now, the hyperspeed bit in PMU Force Mode Register (0x40) */
-	outb_p(0x40, REG_CSCIR);
-	outb_p(elan_multiplier[state].val40h, REG_CSCDR);
-	udelay(10000);
-	local_irq_enable();
-
-	return 0;
-}
-/*
- *	Module init and exit code
- */
-
-static int elanfreq_cpu_init(struct cpufreq_policy *policy)
-{
-	struct cpuinfo_x86 *c = &cpu_data(0);
-	struct cpufreq_frequency_table *pos;
-
-	/* capability check */
-	if ((c->x86_vendor != X86_VENDOR_AMD) ||
-	    (c->x86 != 4) || (c->x86_model != 10))
-		return -ENODEV;
-
-	/* max freq */
-	if (!max_freq)
-		max_freq = elanfreq_get_cpu_frequency(0);
-
-	/* table init */
-	cpufreq_for_each_entry(pos, elanfreq_table)
-		if (pos->frequency > max_freq)
-			pos->frequency = CPUFREQ_ENTRY_INVALID;
-
-	policy->freq_table = elanfreq_table;
-	return 0;
-}
-
-
-#ifndef MODULE
-/**
- * elanfreq_setup - elanfreq command line parameter parsing
- *
- * elanfreq command line parameter.  Use:
- *  elanfreq=66000
- * to set the maximum CPU frequency to 66 MHz. Note that in
- * case you do not give this boot parameter, the maximum
- * frequency will fall back to _current_ CPU frequency which
- * might be lower. If you build this as a module, use the
- * max_freq module parameter instead.
- */
-static int __init elanfreq_setup(char *str)
-{
-	max_freq = simple_strtoul(str, &str, 0);
-	pr_warn("You're using the deprecated elanfreq command line option. Use elanfreq.max_freq instead, please!\n");
-	return 1;
-}
-__setup("elanfreq=", elanfreq_setup);
-#endif
-
-
-static struct cpufreq_driver elanfreq_driver = {
-	.get		= elanfreq_get_cpu_frequency,
-	.flags		= CPUFREQ_NO_AUTO_DYNAMIC_SWITCHING,
-	.verify		= cpufreq_generic_frequency_table_verify,
-	.target_index	= elanfreq_target,
-	.init		= elanfreq_cpu_init,
-	.name		= "elanfreq",
-};
-
-static const struct x86_cpu_id elan_id[] = {
-	X86_MATCH_VENDOR_FAM_MODEL(AMD, 4, 10, NULL),
-	{}
-};
-MODULE_DEVICE_TABLE(x86cpu, elan_id);
-
-static int __init elanfreq_init(void)
-{
-	if (!x86_match_cpu(elan_id))
-		return -ENODEV;
-	return cpufreq_register_driver(&elanfreq_driver);
-}
-
-
-static void __exit elanfreq_exit(void)
-{
-	cpufreq_unregister_driver(&elanfreq_driver);
-}
-
-
-module_param(max_freq, int, 0444);
-
-MODULE_LICENSE("GPL");
-MODULE_AUTHOR("Robert Schwebel <[email protected]>, "
-		"Sven Geggus <[email protected]>");
-MODULE_DESCRIPTION("cpufreq driver for AMD's Elan CPUs");
-
-module_init(elanfreq_init);
-module_exit(elanfreq_exit);
Signature · 2 lines
Thx and BRs,
Zhongqiu Han
maintainer Applied
#16 lore raw
In reply to Sean Young
Quoted 9 lines · Sean Young

Now that AMD Elan support has been removed[1], remove the AMD Elan specific drivers too. I had a Technology Systems 5500 back in the early 2000's and it was pretty slow back then - no need to support such ancient slow device. I wrote and patched some of these drivers so nice to see them removed at the end of their life cycle.

1. commit 8b793a92d862 ("x86/cpu: Remove M486/M486SX/ELAN support")

[...]

Applied to mtd/next, thanks!

[1/8] x86/platform: Remove Technology Systems 5500 board
(no commit info)
[2/8] mtd: ts5500_flash: Remove mapping since board is no longer supported

      commit: 801f11633d5eb2021dd1a4b6a4c14479c54af244
[3/8] mtd: netsc520: Remove mapping since board is no longer supported
      commit: b60e5b5738d86735ebdb8b952054194b636b1cf6
[4/8] mtd: sc520cdp: Remove mapping since board is no longer supported
      commit: f4aeb151b8b025202a3cc55fabc45234700ed470

[5/8] gpio: ts5500: Remove gpio driver as board no longer supported
(no commit info)
[6/8] watchdog: sc520: Drop AMD Elan SC520 support
(no commit info)
[7/8] cpufreq: sc520_freq: Drop support for AMD Elan SC520
(no commit info)
[8/8] cpufreq: elanfreq: Drop support for AMD Elan SC4*
(no commit info)

Patche(s) should be available on mtd/linux.git and will be part of the next PR (provided that no robot complains by then).

Kind regards,
Miquèl