On Mon, Apr 26, 2021 at 02:18:05PM +0200, Thomas Zimmermann wrote: > Hi > > Am 20.04.21 um 10:46 schrieb Daniel Vetter: > > On Mon, Apr 19, 2021 at 10:00:56AM +0200, Geert Uytterhoeven wrote: > > > Hi Thomas, > > > > > > On Fri, Apr 16, 2021 at 11:00 AM Thomas Zimmermann <tzimmermann@xxxxxxx> wrote: > > > > This patchset adds support for simple-framebuffer platform devices and > > > > a handover mechanism for native drivers to take-over control of the > > > > hardware. > > > > > > > > The new driver, called simpledrm, binds to a simple-frambuffer platform > > > > device. The kernel's boot code creates such devices for firmware-provided > > > > framebuffers, such as EFI-GOP or VESA. Typically the BIOS, UEFI or boot > > > > loader sets up the framebuffers. Description via device tree is also an > > > > option. > > > > > > I guess this can be used as a replacement for offb, too... > > > > > > > Patches 4 to 8 add the simpledrm driver. It's build on simple DRM helpers > > > > and SHMEM. It supports 16-bit, 24-bit and 32-bit RGB framebuffers. During > > > > > > .... if support for 8-bit frame buffers would be added? > > Offb doesn't seem to be tied to the simple-framebuffer support. So adding a > new driver or extending the simple-framebuffer code would be required. Not a > big deal, though. Patch 3 of this patchset adds the ability to create > generic drivers within DRM. > > > > > Is that 8-bit greyscale or 8-bit indexed with 256 entry palette? Former > > shouldn't be a big thing, but the latter is only really supported by the > > overall drm ecosystem in theory. Most userspace assumes that xrgb8888 > > works, and we keep that illusion up by emulating it in kernel for hw which > > just doesn't support it. But reformatting xrgb8888 to c8 is tricky at > > best. The uapis are all there for setting the palette, and C8 is a defined > > format even with atomic kms interface, but really there's not much > > userspace for it. In other words, it would work as well as current offb > > would, but that's at least that. > > I think we can just use a shadow palette in the drm driver: If the drm > framebuffer is in C8, use the userspace's palette. If the drm framebuffer is > in XRGB, use a palette that represents RGB332. The driver would do > on-the-fly conversion; just like cirrus does. Hm yeah rgb332 palette sounds like a reasonable idea. Could even have that palette defined/generated in format conversion helpers, and then an xrgb8888->rgb332 converter. Lower palettes probably stop making sense as rgb, maybe there we just do greyscale or something like that for the xrgb8888 emulation. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch