Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c2d64c7e authored by Masahiro Yamada's avatar Masahiro Yamada Committed by Ingo Molnar
Browse files

x86/io_delay: Define IO_DELAY macros in C instead of Kconfig



CONFIG_IO_DELAY_TYPE_* are not kernel configuration at all. They just
define constant values, 0, 1, 2, and 3. Define them by #define in C.

CONFIG_DEFAULT_IO_DELAY_TYPE can also be defined in C by using #ifdef
and #define directives.

Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/20190521072211.21014-2-yamada.masahiro@socionext.com


Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent e62a4239
Loading
Loading
Loading
Loading
+0 −44
Original line number Diff line number Diff line
@@ -179,26 +179,6 @@ config X86_DECODER_SELFTEST
	 decoder code.
	 If unsure, say "N".

#
# IO delay types:
#

config IO_DELAY_TYPE_0X80
	int
	default "0"

config IO_DELAY_TYPE_0XED
	int
	default "1"

config IO_DELAY_TYPE_UDELAY
	int
	default "2"

config IO_DELAY_TYPE_NONE
	int
	default "3"

choice
	prompt "IO delay type"
	default IO_DELAY_0X80
@@ -229,30 +209,6 @@ config IO_DELAY_NONE

endchoice

if IO_DELAY_0X80
config DEFAULT_IO_DELAY_TYPE
	int
	default IO_DELAY_TYPE_0X80
endif

if IO_DELAY_0XED
config DEFAULT_IO_DELAY_TYPE
	int
	default IO_DELAY_TYPE_0XED
endif

if IO_DELAY_UDELAY
config DEFAULT_IO_DELAY_TYPE
	int
	default IO_DELAY_TYPE_UDELAY
endif

if IO_DELAY_NONE
config DEFAULT_IO_DELAY_TYPE
	int
	default IO_DELAY_TYPE_NONE
endif

config DEBUG_BOOT_PARAMS
	bool "Debug boot parameters"
	depends on DEBUG_KERNEL
+26 −11
Original line number Diff line number Diff line
@@ -13,7 +13,22 @@
#include <linux/dmi.h>
#include <linux/io.h>

int io_delay_type __read_mostly = CONFIG_DEFAULT_IO_DELAY_TYPE;
#define IO_DELAY_TYPE_0X80	0
#define IO_DELAY_TYPE_0XED	1
#define IO_DELAY_TYPE_UDELAY	2
#define IO_DELAY_TYPE_NONE	3

#if defined(CONFIG_IO_DELAY_0X80)
#define DEFAULT_IO_DELAY_TYPE	IO_DELAY_TYPE_0X80
#elif defined(CONFIG_IO_DELAY_0XED)
#define DEFAULT_IO_DELAY_TYPE	IO_DELAY_TYPE_0XED
#elif defined(CONFIG_IO_DELAY_UDELAY)
#define DEFAULT_IO_DELAY_TYPE	IO_DELAY_TYPE_UDELAY
#elif defined(CONFIG_IO_DELAY_NONE)
#define DEFAULT_IO_DELAY_TYPE	IO_DELAY_TYPE_NONE
#endif

int io_delay_type __read_mostly = DEFAULT_IO_DELAY_TYPE;

static int __initdata io_delay_override;

@@ -24,13 +39,13 @@ void native_io_delay(void)
{
	switch (io_delay_type) {
	default:
	case CONFIG_IO_DELAY_TYPE_0X80:
	case IO_DELAY_TYPE_0X80:
		asm volatile ("outb %al, $0x80");
		break;
	case CONFIG_IO_DELAY_TYPE_0XED:
	case IO_DELAY_TYPE_0XED:
		asm volatile ("outb %al, $0xed");
		break;
	case CONFIG_IO_DELAY_TYPE_UDELAY:
	case IO_DELAY_TYPE_UDELAY:
		/*
		 * 2 usecs is an upper-bound for the outb delay but
		 * note that udelay doesn't have the bus-level
@@ -40,7 +55,7 @@ void native_io_delay(void)
		 */
		udelay(2);
		break;
	case CONFIG_IO_DELAY_TYPE_NONE:
	case IO_DELAY_TYPE_NONE:
		break;
	}
}
@@ -48,9 +63,9 @@ EXPORT_SYMBOL(native_io_delay);

static int __init dmi_io_delay_0xed_port(const struct dmi_system_id *id)
{
	if (io_delay_type == CONFIG_IO_DELAY_TYPE_0X80) {
	if (io_delay_type == IO_DELAY_TYPE_0X80) {
		pr_notice("%s: using 0xed I/O delay port\n", id->ident);
		io_delay_type = CONFIG_IO_DELAY_TYPE_0XED;
		io_delay_type = IO_DELAY_TYPE_0XED;
	}

	return 0;
@@ -116,13 +131,13 @@ static int __init io_delay_param(char *s)
		return -EINVAL;

	if (!strcmp(s, "0x80"))
		io_delay_type = CONFIG_IO_DELAY_TYPE_0X80;
		io_delay_type = IO_DELAY_TYPE_0X80;
	else if (!strcmp(s, "0xed"))
		io_delay_type = CONFIG_IO_DELAY_TYPE_0XED;
		io_delay_type = IO_DELAY_TYPE_0XED;
	else if (!strcmp(s, "udelay"))
		io_delay_type = CONFIG_IO_DELAY_TYPE_UDELAY;
		io_delay_type = IO_DELAY_TYPE_UDELAY;
	else if (!strcmp(s, "none"))
		io_delay_type = CONFIG_IO_DELAY_TYPE_NONE;
		io_delay_type = IO_DELAY_TYPE_NONE;
	else
		return -EINVAL;