On Mon, 18 Feb 2019, Geert Uytterhoeven wrote:
> >
> > I did some more investigation. When I tested macfb in qemu, I found
> > that dafb_setpalette() is actually being called.
> >
> > And with this patch to add the missing call to fb_invert_cmaps(), the
> > dafb_setpalette() parameters change accordingly. So I'll submit this
> > patch again with signed-off-by.
> >
> > (The problem remains that dafb_setpalette() doesn't seem to have the
> > desired effect on the hardware, but that's a separate issue.)
>
> Could it be the hardware CLUT pointer is out of sync? Given lastreg is
> initialized to -1, if the first write is to regno 0, the code will
> assume the CLUT pointer is pointing to the right register.
>
> Initializing lastreg to e.g. -2 would fix that.
>
Well, Stan found that the 'inverse' option didn't work on his LC III,
which involves v8_brazil_setpalette() and not dafb_setpalette(). The bug
you found only affects the latter function. I will send a patch for the
bug though it doesn't seem to help on qemu (quadra 800). On qemu I was
able to get 'inverse' to work by switching to 2 bpp. So there seems to be
some other driver issue at work here that I'll have to look into.
> > On some powerbooks with greyscale LCD panels, the the black background
> > is actually white, due to the backlight, and the white text is opaque
> > black. This may or may not be optimal, depending on conditions etc. so
> > I prefer not to remove macfb's 'inverse' option.
>
> You can always use a higher layer to configure that, e.g. "setterm
> --inversescreen on". Won't help for the initial kernel log, though.
>
> Originally (before git history), the inverse parameter also affected
> display.inverse. While this field still exists (see fbcon.h), there is
> no code left that uses it.
>
> The last user was removed in full-history-linux commit 25e5e3c795bcf408
> ("[PATCH] fbdev: support for bold attribute for monochrome
> framebuffers").
>
> Probably reviving that, and getting rid of the fb_invert_cmaps() calls,
> is the best solution, as display.inverse does not affect other frame
> buffers.
>
Maybe. It seems like an enhancement, or at best a theoretical bug. Can I
leave that one in your hands?
--
> Gr{oetje,eeting}s,
>
> Geert
>
>