2018-02-22 16:24:55

by Farhan Ali

[permalink] [raw]
Subject: [PATCH v4 0/3] Enable CONFIG_VT support for S390

Hi,

This series of patches add support for an additional tty
and console for a S390 KVM guest using a virtio-gpu device[1].

Patch 1 enables the "Graphics support" menu which is
needed to enable dummy console, since the VT layer needs it.
The dependency is moved to sub menu items and console
drivers now.

Patch 2 fixes few linker issues.

Patch 3 add support for enabling VT layer for S390.


ChangeLog
---------
v3 -> v4
- Add r-b's.
- Move HAS_IOMEM dependency in drivers/video/Kconfig to cover
from config HAVE_FB_ATMEL to config HDMI (patch 1).
- Add HAS_IOMEM for VGA_CONSOLE (patch 1).

v2 -> v3
- Move HAS_IOMEM dependency to sub menu items and console
drivers (patch 1)

v1 -> v2

v1 was posted under a different subject and here is a link to it:
https://www.spinics.net/lists/linux-s390/msg18175.html

- Combine patch 1 and 2 from v1 into one patch (patch 1).
- Additional patches to enable CONFIG_VT for S390.


Thanks
Farhan

Farhan Ali (3):
Kconfig : Remove HAS_IOMEM dependency for Graphics support
s390/char : Rename EBCDIC keymap variables
s390/setup : enable display support for KVM guest

arch/s390/kernel/setup.c | 2 ++
drivers/s390/char/defkeymap.c | 66 ++++++++++++++++++++++---------------------
drivers/s390/char/keyboard.c | 32 ++++++++++-----------
drivers/s390/char/keyboard.h | 11 ++++++++
drivers/tty/Kconfig | 2 +-
drivers/video/Kconfig | 5 +++-
drivers/video/console/Kconfig | 6 ++--
7 files changed, 71 insertions(+), 53 deletions(-)

--
2.7.4



2018-02-22 16:24:23

by Farhan Ali

[permalink] [raw]
Subject: [PATCH v4 1/3] Kconfig : Remove HAS_IOMEM dependency for Graphics support

The 'commit e25df1205f37 ("[S390] Kconfig: menus with depends on HAS_IOMEM.")'
added the HAS_IOMEM dependecy for "Graphics support". This disabled the
"Graphics support" menu for S390. But if we enable VT layer for S390,
we would also need to enable the dummy console. So let's remove the
HAS_IOMEM dependency.

Move this dependency to sub menu items and console drivers that use
io memory.

Signed-off-by: Farhan Ali <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
---
drivers/video/Kconfig | 5 ++++-
drivers/video/console/Kconfig | 6 +++---
2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 3c20af9..4f950c6 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -3,7 +3,8 @@
#

menu "Graphics support"
- depends on HAS_IOMEM
+
+if HAS_IOMEM

config HAVE_FB_ATMEL
bool
@@ -36,6 +37,8 @@ config VIDEOMODE_HELPERS
config HDMI
bool

+endif # HAS_IOMEM
+
if VT
source "drivers/video/console/Kconfig"
endif
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
index 7f1f1fb..9485857 100644
--- a/drivers/video/console/Kconfig
+++ b/drivers/video/console/Kconfig
@@ -9,7 +9,7 @@ config VGA_CONSOLE
depends on !4xx && !PPC_8xx && !SPARC && !M68K && !PARISC && !FRV && \
!SUPERH && !BLACKFIN && !AVR32 && !MN10300 && !CRIS && \
(!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) && \
- !ARM64 && !ARC && !MICROBLAZE && !OPENRISC
+ !ARM64 && !ARC && !MICROBLAZE && !OPENRISC && HAS_IOMEM
default y
help
Saying Y here will allow you to use Linux in text mode through a
@@ -85,7 +85,7 @@ config MDA_CONSOLE

config SGI_NEWPORT_CONSOLE
tristate "SGI Newport Console support"
- depends on SGI_IP22
+ depends on SGI_IP22 && HAS_IOMEM
select FONT_SUPPORT
help
Say Y here if you want the console on the Newport aka XL graphics
@@ -153,7 +153,7 @@ config FRAMEBUFFER_CONSOLE_ROTATION

config STI_CONSOLE
bool "STI text console"
- depends on PARISC
+ depends on PARISC && HAS_IOMEM
select FONT_SUPPORT
default y
help
--
2.7.4


2018-02-22 16:24:58

by Farhan Ali

[permalink] [raw]
Subject: [PATCH v4 2/3] s390/char : Rename EBCDIC keymap variables

The Linux Virtual Terminal (VT) layer provides a default keymap
which is compiled when VT layer is enabled. But at the same time
we are also compiling the EBCDIC keymap and this causes the linker
to complain.

So let's rename the EBCDIC keymap variables to prevent linker
conflict.

Signed-off-by: Farhan Ali <[email protected]>
Acked-by: Christian Borntraeger <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
---
drivers/s390/char/defkeymap.c | 66 ++++++++++++++++++++++---------------------
drivers/s390/char/keyboard.c | 32 ++++++++++-----------
drivers/s390/char/keyboard.h | 11 ++++++++
3 files changed, 61 insertions(+), 48 deletions(-)

diff --git a/drivers/s390/char/defkeymap.c b/drivers/s390/char/defkeymap.c
index 98a5c45..193142c 100644
--- a/drivers/s390/char/defkeymap.c
+++ b/drivers/s390/char/defkeymap.c
@@ -9,7 +9,9 @@
#include <linux/kbd_kern.h>
#include <linux/kbd_diacr.h>

-u_short plain_map[NR_KEYS] = {
+#include "keyboard.h"
+
+u_short ebc_plain_map[NR_KEYS] = {
0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000,
0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000,
0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000,
@@ -85,12 +87,12 @@ static u_short shift_ctrl_map[NR_KEYS] = {
0xf20a, 0xf108, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
};

-ushort *key_maps[MAX_NR_KEYMAPS] = {
- plain_map, shift_map, NULL, NULL,
+ushort *ebc_key_maps[MAX_NR_KEYMAPS] = {
+ ebc_plain_map, shift_map, NULL, NULL,
ctrl_map, shift_ctrl_map, NULL,
};

-unsigned int keymap_count = 4;
+unsigned int ebc_keymap_count = 4;


/*
@@ -99,7 +101,7 @@ unsigned int keymap_count = 4;
* the default and allocate dynamically in chunks of 512 bytes.
*/

-char func_buf[] = {
+char ebc_func_buf[] = {
'\033', '[', '[', 'A', 0,
'\033', '[', '[', 'B', 0,
'\033', '[', '[', 'C', 0,
@@ -123,37 +125,37 @@ char func_buf[] = {
};


-char *funcbufptr = func_buf;
-int funcbufsize = sizeof(func_buf);
-int funcbufleft = 0; /* space left */
-
-char *func_table[MAX_NR_FUNC] = {
- func_buf + 0,
- func_buf + 5,
- func_buf + 10,
- func_buf + 15,
- func_buf + 20,
- func_buf + 25,
- func_buf + 31,
- func_buf + 37,
- func_buf + 43,
- func_buf + 49,
- func_buf + 55,
- func_buf + 61,
- func_buf + 67,
- func_buf + 73,
- func_buf + 79,
- func_buf + 85,
- func_buf + 91,
- func_buf + 97,
- func_buf + 103,
- func_buf + 109,
+char *ebc_funcbufptr = ebc_func_buf;
+int ebc_funcbufsize = sizeof(ebc_func_buf);
+int ebc_funcbufleft = 0; /* space left */
+
+char *ebc_func_table[MAX_NR_FUNC] = {
+ ebc_func_buf + 0,
+ ebc_func_buf + 5,
+ ebc_func_buf + 10,
+ ebc_func_buf + 15,
+ ebc_func_buf + 20,
+ ebc_func_buf + 25,
+ ebc_func_buf + 31,
+ ebc_func_buf + 37,
+ ebc_func_buf + 43,
+ ebc_func_buf + 49,
+ ebc_func_buf + 55,
+ ebc_func_buf + 61,
+ ebc_func_buf + 67,
+ ebc_func_buf + 73,
+ ebc_func_buf + 79,
+ ebc_func_buf + 85,
+ ebc_func_buf + 91,
+ ebc_func_buf + 97,
+ ebc_func_buf + 103,
+ ebc_func_buf + 109,
NULL,
};

-struct kbdiacruc accent_table[MAX_DIACR] = {
+struct kbdiacruc ebc_accent_table[MAX_DIACR] = {
{'^', 'c', 0003}, {'^', 'd', 0004},
{'^', 'z', 0032}, {'^', 0012, 0000},
};

-unsigned int accent_table_size = 4;
+unsigned int ebc_accent_table_size = 4;
diff --git a/drivers/s390/char/keyboard.c b/drivers/s390/char/keyboard.c
index 5b505fd..db1fbf9 100644
--- a/drivers/s390/char/keyboard.c
+++ b/drivers/s390/char/keyboard.c
@@ -54,24 +54,24 @@ kbd_alloc(void) {
kbd = kzalloc(sizeof(struct kbd_data), GFP_KERNEL);
if (!kbd)
goto out;
- kbd->key_maps = kzalloc(sizeof(key_maps), GFP_KERNEL);
+ kbd->key_maps = kzalloc(sizeof(ebc_key_maps), GFP_KERNEL);
if (!kbd->key_maps)
goto out_kbd;
- for (i = 0; i < ARRAY_SIZE(key_maps); i++) {
- if (key_maps[i]) {
- kbd->key_maps[i] = kmemdup(key_maps[i],
+ for (i = 0; i < ARRAY_SIZE(ebc_key_maps); i++) {
+ if (ebc_key_maps[i]) {
+ kbd->key_maps[i] = kmemdup(ebc_key_maps[i],
sizeof(u_short) * NR_KEYS,
GFP_KERNEL);
if (!kbd->key_maps[i])
goto out_maps;
}
}
- kbd->func_table = kzalloc(sizeof(func_table), GFP_KERNEL);
+ kbd->func_table = kzalloc(sizeof(ebc_func_table), GFP_KERNEL);
if (!kbd->func_table)
goto out_maps;
- for (i = 0; i < ARRAY_SIZE(func_table); i++) {
- if (func_table[i]) {
- kbd->func_table[i] = kstrdup(func_table[i],
+ for (i = 0; i < ARRAY_SIZE(ebc_func_table); i++) {
+ if (ebc_func_table[i]) {
+ kbd->func_table[i] = kstrdup(ebc_func_table[i],
GFP_KERNEL);
if (!kbd->func_table[i])
goto out_func;
@@ -81,22 +81,22 @@ kbd_alloc(void) {
kzalloc(sizeof(fn_handler_fn *) * NR_FN_HANDLER, GFP_KERNEL);
if (!kbd->fn_handler)
goto out_func;
- kbd->accent_table = kmemdup(accent_table,
+ kbd->accent_table = kmemdup(ebc_accent_table,
sizeof(struct kbdiacruc) * MAX_DIACR,
GFP_KERNEL);
if (!kbd->accent_table)
goto out_fn_handler;
- kbd->accent_table_size = accent_table_size;
+ kbd->accent_table_size = ebc_accent_table_size;
return kbd;

out_fn_handler:
kfree(kbd->fn_handler);
out_func:
- for (i = 0; i < ARRAY_SIZE(func_table); i++)
+ for (i = 0; i < ARRAY_SIZE(ebc_func_table); i++)
kfree(kbd->func_table[i]);
kfree(kbd->func_table);
out_maps:
- for (i = 0; i < ARRAY_SIZE(key_maps); i++)
+ for (i = 0; i < ARRAY_SIZE(ebc_key_maps); i++)
kfree(kbd->key_maps[i]);
kfree(kbd->key_maps);
out_kbd:
@@ -112,10 +112,10 @@ kbd_free(struct kbd_data *kbd)

kfree(kbd->accent_table);
kfree(kbd->fn_handler);
- for (i = 0; i < ARRAY_SIZE(func_table); i++)
+ for (i = 0; i < ARRAY_SIZE(ebc_func_table); i++)
kfree(kbd->func_table[i]);
kfree(kbd->func_table);
- for (i = 0; i < ARRAY_SIZE(key_maps); i++)
+ for (i = 0; i < ARRAY_SIZE(ebc_key_maps); i++)
kfree(kbd->key_maps[i]);
kfree(kbd->key_maps);
kfree(kbd);
@@ -131,7 +131,7 @@ kbd_ascebc(struct kbd_data *kbd, unsigned char *ascebc)
int i, j, k;

memset(ascebc, 0x40, 256);
- for (i = 0; i < ARRAY_SIZE(key_maps); i++) {
+ for (i = 0; i < ARRAY_SIZE(ebc_key_maps); i++) {
keymap = kbd->key_maps[i];
if (!keymap)
continue;
@@ -158,7 +158,7 @@ kbd_ebcasc(struct kbd_data *kbd, unsigned char *ebcasc)
int i, j, k;

memset(ebcasc, ' ', 256);
- for (i = 0; i < ARRAY_SIZE(key_maps); i++) {
+ for (i = 0; i < ARRAY_SIZE(ebc_key_maps); i++) {
keymap = kbd->key_maps[i];
if (!keymap)
continue;
diff --git a/drivers/s390/char/keyboard.h b/drivers/s390/char/keyboard.h
index a074d97..c467589 100644
--- a/drivers/s390/char/keyboard.h
+++ b/drivers/s390/char/keyboard.h
@@ -14,6 +14,17 @@

struct kbd_data;

+extern int ebc_funcbufsize, ebc_funcbufleft;
+extern char *ebc_func_table[MAX_NR_FUNC];
+extern char ebc_func_buf[];
+extern char *ebc_funcbufptr;
+extern unsigned int ebc_keymap_count;
+
+extern struct kbdiacruc ebc_accent_table[];
+extern unsigned int ebc_accent_table_size;
+extern unsigned short *ebc_key_maps[MAX_NR_KEYMAPS];
+extern unsigned short ebc_plain_map[NR_KEYS];
+
typedef void (fn_handler_fn)(struct kbd_data *);

/*
--
2.7.4


2018-02-22 16:25:44

by Farhan Ali

[permalink] [raw]
Subject: [PATCH v4 3/3] s390/setup : enable display support for KVM guest

The S390 architecture does not support any graphics hardware,
but with the latest support for Virtio GPU in Linux and Virtio
GPU emulation in QEMU, it's possible to enable graphics for
S390 using the Virtio GPU device.

To enable display we need to enable the Linux Virtual Terminal (VT)
layer for S390. But the VT subsystem initializes quite early
at boot so we need a dummy console driver till the Virtio GPU
driver is initialized and we can run the framebuffer console.

The framebuffer console over a Virtio GPU device can be run
in combination with the serial SCLP console (default on S390).
The SCLP console can still be accessed by management applications
(eg: via Libvirt's virsh console).

Signed-off-by: Farhan Ali <[email protected]>
Acked-by: Christian Borntraeger <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
---
arch/s390/kernel/setup.c | 2 ++
drivers/tty/Kconfig | 2 +-
drivers/video/console/Kconfig | 2 +-
3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index a6a91f0..f98a0f3 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -221,6 +221,8 @@ static void __init conmode_default(void)
SET_CONSOLE_SCLP;
#endif
}
+ if (IS_ENABLED(CONFIG_VT) && IS_ENABLED(CONFIG_DUMMY_CONSOLE))
+ conswitchp = &dummy_con;
}

#ifdef CONFIG_CRASH_DUMP
diff --git a/drivers/tty/Kconfig b/drivers/tty/Kconfig
index b811442..5ca53fa 100644
--- a/drivers/tty/Kconfig
+++ b/drivers/tty/Kconfig
@@ -11,7 +11,7 @@ if TTY

config VT
bool "Virtual terminal" if EXPERT
- depends on !S390 && !UML
+ depends on !UML
select INPUT
default y
---help---
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
index 9485857..b9c2c91 100644
--- a/drivers/video/console/Kconfig
+++ b/drivers/video/console/Kconfig
@@ -9,7 +9,7 @@ config VGA_CONSOLE
depends on !4xx && !PPC_8xx && !SPARC && !M68K && !PARISC && !FRV && \
!SUPERH && !BLACKFIN && !AVR32 && !MN10300 && !CRIS && \
(!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) && \
- !ARM64 && !ARC && !MICROBLAZE && !OPENRISC && HAS_IOMEM
+ !ARM64 && !ARC && !MICROBLAZE && !OPENRISC && HAS_IOMEM && !S390
default y
help
Saying Y here will allow you to use Linux in text mode through a
--
2.7.4


2018-02-27 09:24:55

by Christian Borntraeger

[permalink] [raw]
Subject: Re: [PATCH v4 1/3] Kconfig : Remove HAS_IOMEM dependency for Graphics support

This one has been in linux-next for some days. I can carry this via the kvm/s390
tree, but I would like to get ack from at least Bartlomiej. Please also look at
patch 3 which also touches drivers/video/console/Kconfig.

Adding Greg, as I would like an ack from him for patch 3.

On 02/22/2018 05:22 PM, Farhan Ali wrote:
> The 'commit e25df1205f37 ("[S390] Kconfig: menus with depends on HAS_IOMEM.")'
> added the HAS_IOMEM dependecy for "Graphics support". This disabled the
> "Graphics support" menu for S390. But if we enable VT layer for S390,
> we would also need to enable the dummy console. So let's remove the
> HAS_IOMEM dependency.
>
> Move this dependency to sub menu items and console drivers that use
> io memory.
>
> Signed-off-by: Farhan Ali <[email protected]>
> Reviewed-by: Thomas Huth <[email protected]>
> ---
> drivers/video/Kconfig | 5 ++++-
> drivers/video/console/Kconfig | 6 +++---
> 2 files changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
> index 3c20af9..4f950c6 100644
> --- a/drivers/video/Kconfig
> +++ b/drivers/video/Kconfig
> @@ -3,7 +3,8 @@
> #
>
> menu "Graphics support"
> - depends on HAS_IOMEM
> +
> +if HAS_IOMEM
>
> config HAVE_FB_ATMEL
> bool
> @@ -36,6 +37,8 @@ config VIDEOMODE_HELPERS
> config HDMI
> bool
>
> +endif # HAS_IOMEM
> +
> if VT
> source "drivers/video/console/Kconfig"
> endif
> diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
> index 7f1f1fb..9485857 100644
> --- a/drivers/video/console/Kconfig
> +++ b/drivers/video/console/Kconfig
> @@ -9,7 +9,7 @@ config VGA_CONSOLE
> depends on !4xx && !PPC_8xx && !SPARC && !M68K && !PARISC && !FRV && \
> !SUPERH && !BLACKFIN && !AVR32 && !MN10300 && !CRIS && \
> (!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) && \
> - !ARM64 && !ARC && !MICROBLAZE && !OPENRISC
> + !ARM64 && !ARC && !MICROBLAZE && !OPENRISC && HAS_IOMEM
> default y
> help
> Saying Y here will allow you to use Linux in text mode through a
> @@ -85,7 +85,7 @@ config MDA_CONSOLE
>
> config SGI_NEWPORT_CONSOLE
> tristate "SGI Newport Console support"
> - depends on SGI_IP22
> + depends on SGI_IP22 && HAS_IOMEM
> select FONT_SUPPORT
> help
> Say Y here if you want the console on the Newport aka XL graphics
> @@ -153,7 +153,7 @@ config FRAMEBUFFER_CONSOLE_ROTATION
>
> config STI_CONSOLE
> bool "STI text console"
> - depends on PARISC
> + depends on PARISC && HAS_IOMEM
> select FONT_SUPPORT
> default y
> help
>


2018-02-27 09:25:16

by Christian Borntraeger

[permalink] [raw]
Subject: Re: [PATCH v4 3/3] s390/setup : enable display support for KVM guest

Greg FYI, I plan to carry this patch via the s390/kvm tree.
As it drivers/tty/Kconfig, can you give an ack for this part?


On 02/22/2018 05:22 PM, Farhan Ali wrote:
> The S390 architecture does not support any graphics hardware,
> but with the latest support for Virtio GPU in Linux and Virtio
> GPU emulation in QEMU, it's possible to enable graphics for
> S390 using the Virtio GPU device.
>
> To enable display we need to enable the Linux Virtual Terminal (VT)
> layer for S390. But the VT subsystem initializes quite early
> at boot so we need a dummy console driver till the Virtio GPU
> driver is initialized and we can run the framebuffer console.
>
> The framebuffer console over a Virtio GPU device can be run
> in combination with the serial SCLP console (default on S390).
> The SCLP console can still be accessed by management applications
> (eg: via Libvirt's virsh console).
>
> Signed-off-by: Farhan Ali <[email protected]>
> Acked-by: Christian Borntraeger <[email protected]>
> Reviewed-by: Thomas Huth <[email protected]>
> ---
> arch/s390/kernel/setup.c | 2 ++
> drivers/tty/Kconfig | 2 +-
> drivers/video/console/Kconfig | 2 +-
> 3 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
> index a6a91f0..f98a0f3 100644
> --- a/arch/s390/kernel/setup.c
> +++ b/arch/s390/kernel/setup.c
> @@ -221,6 +221,8 @@ static void __init conmode_default(void)
> SET_CONSOLE_SCLP;
> #endif
> }
> + if (IS_ENABLED(CONFIG_VT) && IS_ENABLED(CONFIG_DUMMY_CONSOLE))
> + conswitchp = &dummy_con;
> }
>
> #ifdef CONFIG_CRASH_DUMP
> diff --git a/drivers/tty/Kconfig b/drivers/tty/Kconfig
> index b811442..5ca53fa 100644
> --- a/drivers/tty/Kconfig
> +++ b/drivers/tty/Kconfig
> @@ -11,7 +11,7 @@ if TTY
>
> config VT
> bool "Virtual terminal" if EXPERT
> - depends on !S390 && !UML
> + depends on !UML
> select INPUT
> default y
> ---help---
> diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
> index 9485857..b9c2c91 100644
> --- a/drivers/video/console/Kconfig
> +++ b/drivers/video/console/Kconfig
> @@ -9,7 +9,7 @@ config VGA_CONSOLE
> depends on !4xx && !PPC_8xx && !SPARC && !M68K && !PARISC && !FRV && \
> !SUPERH && !BLACKFIN && !AVR32 && !MN10300 && !CRIS && \
> (!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) && \
> - !ARM64 && !ARC && !MICROBLAZE && !OPENRISC && HAS_IOMEM
> + !ARM64 && !ARC && !MICROBLAZE && !OPENRISC && HAS_IOMEM && !S390
> default y
> help
> Saying Y here will allow you to use Linux in text mode through a
>


Subject: Re: [PATCH v4 1/3] Kconfig : Remove HAS_IOMEM dependency for Graphics support

On Tuesday, February 27, 2018 10:23:37 AM Christian Borntraeger wrote:
> This one has been in linux-next for some days. I can carry this via the kvm/s390
> tree, but I would like to get ack from at least Bartlomiej. Please also look at
> patch 3 which also touches drivers/video/console/Kconfig.
>
> Adding Greg, as I would like an ack from him for patch 3.
>
> On 02/22/2018 05:22 PM, Farhan Ali wrote:
> > The 'commit e25df1205f37 ("[S390] Kconfig: menus with depends on HAS_IOMEM.")'
> > added the HAS_IOMEM dependecy for "Graphics support". This disabled the
> > "Graphics support" menu for S390. But if we enable VT layer for S390,
> > we would also need to enable the dummy console. So let's remove the
> > HAS_IOMEM dependency.
> >
> > Move this dependency to sub menu items and console drivers that use
> > io memory.
> >
> > Signed-off-by: Farhan Ali <[email protected]>
> > Reviewed-by: Thomas Huth <[email protected]>

Acked-by: Bartlomiej Zolnierkiewicz <[email protected]>

> > ---
> > drivers/video/Kconfig | 5 ++++-
> > drivers/video/console/Kconfig | 6 +++---
> > 2 files changed, 7 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
> > index 3c20af9..4f950c6 100644
> > --- a/drivers/video/Kconfig
> > +++ b/drivers/video/Kconfig
> > @@ -3,7 +3,8 @@
> > #
> >
> > menu "Graphics support"
> > - depends on HAS_IOMEM
> > +
> > +if HAS_IOMEM
> >
> > config HAVE_FB_ATMEL
> > bool
> > @@ -36,6 +37,8 @@ config VIDEOMODE_HELPERS
> > config HDMI
> > bool
> >
> > +endif # HAS_IOMEM
> > +
> > if VT
> > source "drivers/video/console/Kconfig"
> > endif
> > diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig
> > index 7f1f1fb..9485857 100644
> > --- a/drivers/video/console/Kconfig
> > +++ b/drivers/video/console/Kconfig
> > @@ -9,7 +9,7 @@ config VGA_CONSOLE
> > depends on !4xx && !PPC_8xx && !SPARC && !M68K && !PARISC && !FRV && \
> > !SUPERH && !BLACKFIN && !AVR32 && !MN10300 && !CRIS && \
> > (!ARM || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_NETWINDER) && \
> > - !ARM64 && !ARC && !MICROBLAZE && !OPENRISC
> > + !ARM64 && !ARC && !MICROBLAZE && !OPENRISC && HAS_IOMEM
> > default y
> > help
> > Saying Y here will allow you to use Linux in text mode through a
> > @@ -85,7 +85,7 @@ config MDA_CONSOLE
> >
> > config SGI_NEWPORT_CONSOLE
> > tristate "SGI Newport Console support"
> > - depends on SGI_IP22
> > + depends on SGI_IP22 && HAS_IOMEM
> > select FONT_SUPPORT
> > help
> > Say Y here if you want the console on the Newport aka XL graphics
> > @@ -153,7 +153,7 @@ config FRAMEBUFFER_CONSOLE_ROTATION
> >
> > config STI_CONSOLE
> > bool "STI text console"
> > - depends on PARISC
> > + depends on PARISC && HAS_IOMEM
> > select FONT_SUPPORT
> > default y
> > help

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics


2018-02-27 12:40:45

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH v4 3/3] s390/setup : enable display support for KVM guest

On Tue, Feb 27, 2018 at 10:23:34AM +0100, Christian Borntraeger wrote:
> Greg FYI, I plan to carry this patch via the s390/kvm tree.
> As it drivers/tty/Kconfig, can you give an ack for this part?
>
>
> On 02/22/2018 05:22 PM, Farhan Ali wrote:
> > The S390 architecture does not support any graphics hardware,
> > but with the latest support for Virtio GPU in Linux and Virtio
> > GPU emulation in QEMU, it's possible to enable graphics for
> > S390 using the Virtio GPU device.
> >
> > To enable display we need to enable the Linux Virtual Terminal (VT)
> > layer for S390. But the VT subsystem initializes quite early
> > at boot so we need a dummy console driver till the Virtio GPU
> > driver is initialized and we can run the framebuffer console.
> >
> > The framebuffer console over a Virtio GPU device can be run
> > in combination with the serial SCLP console (default on S390).
> > The SCLP console can still be accessed by management applications
> > (eg: via Libvirt's virsh console).
> >
> > Signed-off-by: Farhan Ali <[email protected]>
> > Acked-by: Christian Borntraeger <[email protected]>
> > Reviewed-by: Thomas Huth <[email protected]>
> > ---
> > arch/s390/kernel/setup.c | 2 ++
> > drivers/tty/Kconfig | 2 +-
> > drivers/video/console/Kconfig | 2 +-
> > 3 files changed, 4 insertions(+), 2 deletions(-)


Acked-by: Greg Kroah-Hartman <[email protected]>