diff mbox series

[1/7] um: allow disabling NO_IOMEM

Message ID 20210223161449.5fbbdace8fea.I7b2fad8378e4fde7f26ef06a03980ae2807d81c9@changeid
State Superseded
Headers show
Series PCI support for UML | expand

Commit Message

Johannes Berg Feb. 23, 2021, 3:27 p.m. UTC
From: Johannes Berg <johannes.berg@intel.com>

Adjust the kconfig a little to allow disabling NO_IOMEM in UML. To
make an "allyesconfig" with CONFIG_NO_IOMEM=n build, adjust a few
Kconfig things elsewhere and add dummy asm/fb.h and asm/vga.h files.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
 arch/um/Kconfig                |  4 ++++
 arch/um/include/asm/fb.h       | 15 +++++++++++++++
 arch/um/include/asm/vga.h      |  9 +++++++++
 drivers/input/Kconfig          |  1 -
 drivers/input/gameport/Kconfig |  1 +
 drivers/input/joystick/Kconfig |  1 +
 drivers/tty/Kconfig            |  5 ++---
 drivers/video/console/Kconfig  |  2 +-
 8 files changed, 33 insertions(+), 5 deletions(-)
 create mode 100644 arch/um/include/asm/fb.h
 create mode 100644 arch/um/include/asm/vga.h

Comments

Geert Uytterhoeven Feb. 23, 2021, 3:44 p.m. UTC | #1
Hi Johannes,

On Tue, Feb 23, 2021 at 4:27 PM Johannes Berg <johannes@sipsolutions.net> wrote:
> From: Johannes Berg <johannes.berg@intel.com>
>
> Adjust the kconfig a little to allow disabling NO_IOMEM in UML. To
> make an "allyesconfig" with CONFIG_NO_IOMEM=n build, adjust a few
> Kconfig things elsewhere and add dummy asm/fb.h and asm/vga.h files.
>
> Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Thanks for your patch!

> --- /dev/null
> +++ b/arch/um/include/asm/fb.h
> @@ -0,0 +1,15 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#ifndef _ASM_UM_FB_H
> +#define _ASM_UM_FB_H
> +
> +static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma,
> +                                unsigned long off)
> +{
> +}
> +
> +static inline int fb_is_primary_device(struct fb_info *info)
> +{
> +       return 0;
> +}
> +
> +#endif /* _ASM_UM_FB_H */
> diff --git a/arch/um/include/asm/vga.h b/arch/um/include/asm/vga.h
> new file mode 100644
> index 000000000000..0b0e73ccdb28
> --- /dev/null
> +++ b/arch/um/include/asm/vga.h
> @@ -0,0 +1,9 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#ifndef _ASM_UM_VGA_H
> +#define _ASM_UM_VGA_H
> +
> +#define VGA_MAP_MEM(x, s)      ((unsigned long) ioremap(x, s))
> +#define vga_readb(a)           readb((u8 __iomem *)(a))
> +#define vga_writeb(v,a)                writeb(v, (u8 __iomem *)(a))
> +
> +#endif /* _ASM_UM_VGA_H */

Can't you just use the asm-generic versions instead?

Gr{oetje,eeting}s,

                        Geert
Johannes Berg Feb. 23, 2021, 3:46 p.m. UTC | #2
Hi,

> Can't you just use the asm-generic versions instead?

Hmm, yes, for fb.h and vga.h that should work, since they should never
be used. For vga.h it would be wrong since it assumes the VGA memory is
mapped into the CPU memory, but since it should never run it would still
address the compilation issues I needed this for.

So yeah, I guess we could just use the asm-generic versions of these
two.

johannes
diff mbox series

Patch

diff --git a/arch/um/Kconfig b/arch/um/Kconfig
index c3030db3325f..20b0640e01b8 100644
--- a/arch/um/Kconfig
+++ b/arch/um/Kconfig
@@ -26,6 +26,10 @@  config MMU
 	default y
 
 config NO_IOMEM
+	bool "disable IOMEM" if EXPERT
+	default y
+
+config NO_IOPORT_MAP
 	def_bool y
 
 config ISA
diff --git a/arch/um/include/asm/fb.h b/arch/um/include/asm/fb.h
new file mode 100644
index 000000000000..f8fa5a6b43b5
--- /dev/null
+++ b/arch/um/include/asm/fb.h
@@ -0,0 +1,15 @@ 
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_UM_FB_H
+#define _ASM_UM_FB_H
+
+static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma,
+                                unsigned long off)
+{
+}
+
+static inline int fb_is_primary_device(struct fb_info *info)
+{
+	return 0;
+}
+
+#endif /* _ASM_UM_FB_H */
diff --git a/arch/um/include/asm/vga.h b/arch/um/include/asm/vga.h
new file mode 100644
index 000000000000..0b0e73ccdb28
--- /dev/null
+++ b/arch/um/include/asm/vga.h
@@ -0,0 +1,9 @@ 
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _ASM_UM_VGA_H
+#define _ASM_UM_VGA_H
+
+#define VGA_MAP_MEM(x, s)	((unsigned long) ioremap(x, s))
+#define vga_readb(a)		readb((u8 __iomem *)(a))
+#define vga_writeb(v,a)		writeb(v, (u8 __iomem *)(a))
+
+#endif /* _ASM_UM_VGA_H */
diff --git a/drivers/input/Kconfig b/drivers/input/Kconfig
index ec0e861f185f..5baebf62df33 100644
--- a/drivers/input/Kconfig
+++ b/drivers/input/Kconfig
@@ -4,7 +4,6 @@ 
 #
 
 menu "Input device support"
-	depends on !UML
 
 config INPUT
 	tristate "Generic input layer (needed for keyboard, mouse, ...)" if EXPERT
diff --git a/drivers/input/gameport/Kconfig b/drivers/input/gameport/Kconfig
index 4761795cb49f..5a2c2fb3217d 100644
--- a/drivers/input/gameport/Kconfig
+++ b/drivers/input/gameport/Kconfig
@@ -4,6 +4,7 @@ 
 #
 config GAMEPORT
 	tristate "Gameport support"
+	depends on !UML
 	help
 	  Gameport support is for the standard 15-pin PC gameport. If you
 	  have a joystick, gamepad, gameport card, a soundcard with a gameport
diff --git a/drivers/input/joystick/Kconfig b/drivers/input/joystick/Kconfig
index b080f0cfb068..6a03a1f0cd5f 100644
--- a/drivers/input/joystick/Kconfig
+++ b/drivers/input/joystick/Kconfig
@@ -4,6 +4,7 @@ 
 #
 menuconfig INPUT_JOYSTICK
 	bool "Joysticks/Gamepads"
+	depends on !UML
 	help
 	  If you have a joystick, 6dof controller, gamepad, steering wheel,
 	  weapon control system or something like that you can say Y here
diff --git a/drivers/tty/Kconfig b/drivers/tty/Kconfig
index e15cd6b5bb99..26648daaaee2 100644
--- a/drivers/tty/Kconfig
+++ b/drivers/tty/Kconfig
@@ -12,9 +12,8 @@  if TTY
 
 config VT
 	bool "Virtual terminal" if EXPERT
-	depends on !UML
 	select INPUT
-	default y
+	default y if !UML
 	help
 	  If you say Y here, you will get support for terminal devices with
 	  display and keyboard devices. These are called "virtual" because you
@@ -78,7 +77,7 @@  config VT_CONSOLE_SLEEP
 
 config HW_CONSOLE
 	bool
-	depends on VT && !UML
+	depends on VT
 	default y
 
 config VT_HW_CONSOLE_BINDING
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
index ee33b8ec62bb..840d9813b0bc 100644
--- a/drivers/video/console/Kconfig
+++ b/drivers/video/console/Kconfig
@@ -9,7 +9,7 @@  config VGA_CONSOLE
 	bool "VGA text console" if EXPERT || !X86
 	depends on !4xx && !PPC_8xx && !SPARC && !M68K && !PARISC &&  !SUPERH && \
 		(!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) && \
-		!ARM64 && !ARC && !MICROBLAZE && !OPENRISC && !NDS32 && !S390
+		!ARM64 && !ARC && !MICROBLAZE && !OPENRISC && !NDS32 && !S390 && !UML
 	default y
 	help
 	  Saying Y here will allow you to use Linux in text mode through a