I found @kallisti5 DRM port attempt: https://gitlab.com/kallisti5/haikugpu. I tried to compile but it failed for both x86 and x86_64:
> scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
Install directory: "/Haiku/data/packages/linux-5.5.2/include/asm-generic" as "target-x86_64/include/asm-generic"
Install directory: "/Haiku/data/packages/linux-5.5.2/include/video" as "target-x86_64/include/video"
gcc -o /Haiku/data/packages/linux-5.5.2/drivers/gpu/drm/cirrus/cirrus.os -c -fPIC -Isrc -Iinclude -I/Haiku/data/packages/linux-5.5.2/arch/x86/include -I/Haiku/data/packages/linux-5.5.2/arch/x86/include/uapi -Itarget-x86_64/include -Isrc/include /Haiku/data/packages/linux-5.5.2/drivers/gpu/drm/cirrus/cirrus.c
In file included from /Haiku/data/packages/linux-5.5.2/arch/x86/include/asm/vga.h:11,
from target-x86_64/include/video/vga.h:22,
from /Haiku/data/packages/linux-5.5.2/drivers/gpu/drm/cirrus/cirrus.c:24:
/Haiku/data/packages/linux-5.5.2/arch/x86/include/asm/set_memory.h:50:31: warning: 'struct page' declared inside parameter list will not be visible outside of this definition or declaration
int set_pages_array_uc(struct page **pages, int addrinarray);
^~~~
/Haiku/data/packages/linux-5.5.2/arch/x86/include/asm/set_memory.h:51:31: warning: 'struct page' declared inside parameter list will not be visible outside of this definition or declaration
int set_pages_array_wc(struct page **pages, int addrinarray);
^~~~
/Haiku/data/packages/linux-5.5.2/arch/x86/include/asm/set_memory.h:52:31: warning: 'struct page' declared inside parameter list will not be visible outside of this definition or declaration
int set_pages_array_wt(struct page **pages, int addrinarray);
^~~~
/Haiku/data/packages/linux-5.5.2/arch/x86/include/asm/set_memory.h:53:31: warning: 'struct page' declared inside parameter list will not be visible outside of this definition or declaration
int set_pages_array_wb(struct page **pages, int addrinarray);
^~~~
/Haiku/data/packages/linux-5.5.2/arch/x86/include/asm/set_memory.h:75:25: warning: 'struct page' declared inside parameter list will not be visible outside of this definition or declaration
int set_pages_uc(struct page *page, int numpages);
^~~~
/Haiku/data/packages/linux-5.5.2/arch/x86/include/asm/set_memory.h:76:25: warning: 'struct page' declared inside parameter list will not be visible outside of this definition or declaration
int set_pages_wb(struct page *page, int numpages);
^~~~
/Haiku/data/packages/linux-5.5.2/arch/x86/include/asm/set_memory.h:77:25: warning: 'struct page' declared inside parameter list will not be visible outside of this definition or declaration
int set_pages_ro(struct page *page, int numpages);
^~~~
/Haiku/data/packages/linux-5.5.2/arch/x86/include/asm/set_memory.h:78:25: warning: 'struct page' declared inside parameter list will not be visible outside of this definition or declaration
int set_pages_rw(struct page *page, int numpages);
^~~~
/Haiku/data/packages/linux-5.5.2/arch/x86/include/asm/set_memory.h:80:43: warning: 'struct page' declared inside parameter list will not be visible outside of this definition or declaration
int set_direct_map_invalid_noflush(struct page *page);
^~~~
/Haiku/data/packages/linux-5.5.2/arch/x86/include/asm/set_memory.h:81:43: warning: 'struct page' declared inside parameter list will not be visible outside of this definition or declaration
int set_direct_map_default_noflush(struct page *page);
^~~~
In file included from /Haiku/data/packages/linux-5.5.2/drivers/gpu/drm/cirrus/cirrus.c:24:
target-x86_64/include/video/vga.h:183:15: error: expected ':', ',', ';', '}' or '__attribute__' before ' token
void __iomem *vgabase; /* mmio base, if supported */
^
target-x86_64/include/video/vga.h: In function 'vga_io_r':
target-x86_64/include/video/vga.h:204:9: warning: implicit declaration of function 'inb_p' [-Wimplicit-function-declaration]
return inb_p(port);
^~~~~
target-x86_64/include/video/vga.h: In function 'vga_io_w':
target-x86_64/include/video/vga.h:209:2: warning: implicit declaration of function 'outb_p' [-Wimplicit-function-declaration]
outb_p(val, port);
^~~~~~
target-x86_64/include/video/vga.h: In function 'vga_io_w_fast':
target-x86_64/include/video/vga.h:215:2: warning: implicit declaration of function 'outw' [-Wimplicit-function-declaration]
outw(VGA_OUT16VAL (val, reg), port);
^~~~
target-x86_64/include/video/vga.h: At top level:
target-x86_64/include/video/vga.h:218:52: error: expected ';', ',' or ')' before '*' token
static inline unsigned char vga_mm_r (void __iomem *regbase, unsigned short port)
^
target-x86_64/include/video/vga.h:223:43: error: expected ';', ',' or ')' before '*' token
static inline void vga_mm_w (void __iomem *regbase, unsigned short port, unsigned char val)
^
target-x86_64/include/video/vga.h:228:48: error: expected ';', ',' or ')' before '*' token
static inline void vga_mm_w_fast (void __iomem *regbase, unsigned short port,
^
target-x86_64/include/video/vga.h:234:49: error: expected ';', ',' or ')' before '*' token
static inline unsigned char vga_r (void __iomem *regbase, unsigned short port)
^
target-x86_64/include/video/vga.h:242:40: error: expected ';', ',' or ')' before '*' token
static inline void vga_w (void __iomem *regbase, unsigned short port, unsigned char val)
^
target-x86_64/include/video/vga.h:251:45: error: expected ';', ',' or ')' before '*' token
static inline void vga_w_fast (void __iomem *regbase, unsigned short port,
^
target-x86_64/include/video/vga.h:265:52: error: expected ';', ',' or ')' before '*' token
static inline unsigned char vga_rcrt (void __iomem *regbase, unsigned char reg)
^
target-x86_64/include/video/vga.h:271:43: error: expected ';', ',' or ')' before '*' token
static inline void vga_wcrt (void __iomem *regbase, unsigned char reg, unsigned char val)
^
target-x86_64/include/video/vga.h:297:55: error: expected ';', ',' or ')' before '*' token
static inline unsigned char vga_mm_rcrt (void __iomem *regbase, unsigned char reg)
^
target-x86_64/include/video/vga.h:303:46: error: expected ';', ',' or ')' before '*' token
static inline void vga_mm_wcrt (void __iomem *regbase, unsigned char reg, unsigned char val)
^
target-x86_64/include/video/vga.h:318:52: error: expected ';', ',' or ')' before '*' token
static inline unsigned char vga_rseq (void __iomem *regbase, unsigned char reg)
^
target-x86_64/include/video/vga.h:324:43: error: expected ';', ',' or ')' before '*' token
static inline void vga_wseq (void __iomem *regbase, unsigned char reg, unsigned char val)
^
target-x86_64/include/video/vga.h:350:55: error: expected ';', ',' or ')' before '*' token
static inline unsigned char vga_mm_rseq (void __iomem *regbase, unsigned char reg)
^
target-x86_64/include/video/vga.h:356:46: error: expected ';', ',' or ')' before '*' token
static inline void vga_mm_wseq (void __iomem *regbase, unsigned char reg, unsigned char val)
^
target-x86_64/include/video/vga.h:370:52: error: expected ';', ',' or ')' before '*' token
static inline unsigned char vga_rgfx (void __iomem *regbase, unsigned char reg)
^
target-x86_64/include/video/vga.h:376:43: error: expected ';', ',' or ')' before '*' token
static inline void vga_wgfx (void __iomem *regbase, unsigned char reg, unsigned char val)
^
target-x86_64/include/video/vga.h:402:55: error: expected ';', ',' or ')' before '*' token
static inline unsigned char vga_mm_rgfx (void __iomem *regbase, unsigned char reg)
^
target-x86_64/include/video/vga.h:408:46: error: expected ';', ',' or ')' before '*' token
static inline void vga_mm_wgfx (void __iomem *regbase, unsigned char reg, unsigned char val)
^
target-x86_64/include/video/vga.h:423:53: error: expected ';', ',' or ')' before '*' token
static inline unsigned char vga_rattr (void __iomem *regbase, unsigned char reg)
^
target-x86_64/include/video/vga.h:429:44: error: expected ';', ',' or ')' before '*' token
static inline void vga_wattr (void __iomem *regbase, unsigned char reg, unsigned char val)
^
target-x86_64/include/video/vga.h:447:56: error: expected ';', ',' or ')' before '*' token
static inline unsigned char vga_mm_rattr (void __iomem *regbase, unsigned char reg)
^
target-x86_64/include/video/vga.h:453:47: error: expected ';', ',' or ')' before '*' token
static inline void vga_mm_wattr (void __iomem *regbase, unsigned char reg, unsigned char val)
^
/Haiku/data/packages/linux-5.5.2/drivers/gpu/drm/cirrus/cirrus.c:26:10: fatal error: drm/drm_atomic_helper.h: No such file or directory
#include <drm/drm_atomic_helper.h>
^~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
scons: *** [/Haiku/data/packages/linux-5.5.2/drivers/gpu/drm/cirrus/cirrus.os] Error 1
scons: building terminated because of errors.
What Linux version and target architecture (x86 or x86_64) was used?