Hello, Jorge.

On Sat, Sep 18, 2021 at 21:40:46 +0100, Jorge Almeida wrote:
> Hello, gentooers in general and Alan in particular

> I've been using Alan Mackenzie's patch until kernel 5.13, with
> success. It failed with 5.14.4 --yes, I know, but it doesn't hurt to
> try :)

I'm happy to know my patch is still useful.

I must confess that somebody told me by private email that it fails on
systems which change their screen geometry during boot-up.  For example,
a system which first boots into 80x25, then changes to a frame buffer.
I know why this is happening, but I don't have a machine to debug it on,
so the debugging is happening slowly, with the help of my correspondent.

It also doesn't seem to work on machines with kernel parameters such as
vga=791.

That said, I'm hoping that the failure of the patch on 5.14.4 is just a
simple struct change in 5.14, which I hope to have corrected (but in
5.14.5).  What used to be

    while (!tty->stopped ...

has now become

    while (!tty->flow.stopped ...

I'm assuming that the patch you tried to apply was
5.10.49-scroll.20210715.diff.  If so, please leave it applied (with the
one failed hunk), and additionally apply this:



--- ./drivers/tty/vt/vt.c.orig  2020-12-13 22:41:30.000000000 +0000
+++ ./drivers/tty/vt/vt.c       2021-04-05 16:20:32.624563241 +0000
@@ -3208,6 +3208,12 @@
 
        param.vc = vc;
 
+#ifdef CONFIG_FRAMEBUFFER_CONSOLE_SOFT_SCROLLBACK
+       /* Undo any soft scrolling - <Alt><Fn> and <Shift><PgUp/Down> do
+          not pass through this function.  */
+       concon_set_origin (vc);
+#endif
+
        while (!tty->flow.stopped && count) {
                int orig = *buf;
                buf++;


As always, there are no guarantees.  Please let me know whether or not
the above hunk applies, and if so, whether or not the scrolling still
works.  (Also, feel free to send me private email if there're any
problems with the mechanics of applying the patch.)

Thanks!

> Jorge Almeida

> Just in case it is useful:

It was, thanks!

[ .... ]

>         param.vc = vc;

> +       /* NEW STOUGH, 2021-04-03 */
> +#ifdef CONFIG_FRAMEBUFFER_CONSOLE_SOFT_SCROLLBACK
> +       /* Undo any soft scrolling - <Alt><Fn> and <Shift><PgUp/Down> do
> +          not pass through this function.  */
> +       concon_set_origin (vc);
> +#endif
> +       /* END OF NEW STOUGH */
> +
>         while (!tty->stopped && count) {  <==========================
>                 int orig = *buf;
>                 buf++;

-- 
Alan Mackenzie (Nuremberg, Germany).

Reply via email to