So I was trying to use WIO Terminal as a small display for my raspberry pi 4. And I was following the official setup from here. And during the making of the display driver I'm encountering an error.
make -C /lib/modules/`uname -r`/build KCPPFLAGS="-I/home/pi/seeed-linux-usbdisp/drivers/linux-driver/src -I/home/pi/seeed-linux-usbdisp/drivers/linux-driver/../common" M=/home/pi/seeed-linux-usbdisp/drivers/linux-driver modules
make[1]: Entering directory '/usr/src/linux-headers-6.1.21-v8+'
CC [M] /home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/fbhandlers.o
In file included from ./include/linux/list.h:5,
from ./include/linux/module.h:12,
from /home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/inc/common.h:19,
from /home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/fbhandlers.c:15:
/home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/fbhandlers.c: In function ‘_display_defio_handler’:
/home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/fbhandlers.c:265:40: error: ‘struct fb_deferred_io’ has no member named ‘pagelist’; did you mean ‘pagereflist’?
265 | list_for_each_entry(cur, &fbdefio->pagelist, lru) {
| ^~~~~~~~
./include/linux/container_of.h:18:26: note: in definition of macro ‘container_of’
18 | void *__mptr = (void *)(ptr); \
| ^~~
./include/linux/list.h:531:2: note: in expansion of macro ‘list_entry’
531 | list_entry((ptr)->next, type, member)
| ^~~~~~~~~~
./include/linux/list.h:674:13: note: in expansion of macro ‘list_first_entry’
674 | for (pos = list_first_entry(head, typeof(*pos), member); \
| ^~~~~~~~~~~~~~~~
/home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/fbhandlers.c:265:5: note: in expansion of macro ‘list_for_each_entry’
265 | list_for_each_entry(cur, &fbdefio->pagelist, lru) {
| ^~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/container_of.h:5,
from ./include/linux/list.h:5,
from ./include/linux/module.h:12,
from /home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/inc/common.h:19,
from /home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/fbhandlers.c:15:
/home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/fbhandlers.c:265:40: error: ‘struct fb_deferred_io’ has no member named ‘pagelist’; did you mean ‘pagereflist’?
265 | list_for_each_entry(cur, &fbdefio->pagelist, lru) {
| ^~~~~~~~
./include/linux/build_bug.h:78:56: note: in definition of macro ‘__static_assert’
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
./include/linux/container_of.h:19:2: note: in expansion of macro ‘static_assert’
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~~~
./include/linux/container_of.h:19:16: note: in expansion of macro ‘__same_type’
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~
./include/linux/list.h:520:2: note: in expansion of macro ‘container_of’
520 | container_of(ptr, type, member)
| ^~~~~~~~~~~~
./include/linux/list.h:531:2: note: in expansion of macro ‘list_entry’
531 | list_entry((ptr)->next, type, member)
| ^~~~~~~~~~
./include/linux/list.h:674:13: note: in expansion of macro ‘list_first_entry’
674 | for (pos = list_first_entry(head, typeof(*pos), member); \
| ^~~~~~~~~~~~~~~~
/home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/fbhandlers.c:265:5: note: in expansion of macro ‘list_for_each_entry’
265 | list_for_each_entry(cur, &fbdefio->pagelist, lru) {
| ^~~~~~~~~~~~~~~~~~~
/home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/fbhandlers.c:265:40: error: ‘struct fb_deferred_io’ has no member named ‘pagelist’; did you mean ‘pagereflist’?
265 | list_for_each_entry(cur, &fbdefio->pagelist, lru) {
| ^~~~~~~~
./include/linux/build_bug.h:78:56: note: in definition of macro ‘__static_assert’
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
./include/linux/container_of.h:19:2: note: in expansion of macro ‘static_assert’
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~~~
./include/linux/container_of.h:20:9: note: in expansion of macro ‘__same_type’
20 | __same_type(*(ptr), void), \
| ^~~~~~~~~~~
./include/linux/list.h:520:2: note: in expansion of macro ‘container_of’
520 | container_of(ptr, type, member)
| ^~~~~~~~~~~~
./include/linux/list.h:531:2: note: in expansion of macro ‘list_entry’
531 | list_entry((ptr)->next, type, member)
| ^~~~~~~~~~
./include/linux/list.h:674:13: note: in expansion of macro ‘list_first_entry’
674 | for (pos = list_first_entry(head, typeof(*pos), member); \
| ^~~~~~~~~~~~~~~~
/home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/fbhandlers.c:265:5: note: in expansion of macro ‘list_for_each_entry’
265 | list_for_each_entry(cur, &fbdefio->pagelist, lru) {
| ^~~~~~~~~~~~~~~~~~~
././include/linux/compiler_types.h:298:27: error: expression in static assertion is not an integer
298 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/linux/build_bug.h:78:56: note: in definition of macro ‘__static_assert’
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
./include/linux/container_of.h:19:2: note: in expansion of macro ‘static_assert’
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~~~
./include/linux/container_of.h:19:16: note: in expansion of macro ‘__same_type’
19 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~
./include/linux/list.h:520:2: note: in expansion of macro ‘container_of’
520 | container_of(ptr, type, member)
| ^~~~~~~~~~~~
./include/linux/list.h:531:2: note: in expansion of macro ‘list_entry’
531 | list_entry((ptr)->next, type, member)
| ^~~~~~~~~~
./include/linux/list.h:674:13: note: in expansion of macro ‘list_first_entry’
674 | for (pos = list_first_entry(head, typeof(*pos), member); \
| ^~~~~~~~~~~~~~~~
/home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/fbhandlers.c:265:5: note: in expansion of macro ‘list_for_each_entry’
265 | list_for_each_entry(cur, &fbdefio->pagelist, lru) {
| ^~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/module.h:12,
from /home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/inc/common.h:19,
from /home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/fbhandlers.c:15:
/home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/fbhandlers.c:265:40: error: ‘struct fb_deferred_io’ has no member named ‘pagelist’; did you mean ‘pagereflist’?
265 | list_for_each_entry(cur, &fbdefio->pagelist, lru) {
| ^~~~~~~~
./include/linux/list.h:665:20: note: in definition of macro ‘list_entry_is_head’
665 | (&pos->member == (head))
| ^~~~
/home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/fbhandlers.c:265:5: note: in expansion of macro ‘list_for_each_entry’
265 | list_for_each_entry(cur, &fbdefio->pagelist, lru) {
| ^~~~~~~~~~~~~~~~~~~
make[2]: *** [scripts/Makefile.build:250: /home/pi/seeed-linux-usbdisp/drivers/linux-driver/src/fbhandlers.o] Error 1
make[1]: *** [Makefile:2012: /home/pi/seeed-linux-usbdisp/drivers/linux-driver] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-6.1.21-v8+'
make: *** [Makefile:30: modules] Error 2
This is the error I'm getting. This is official github repo of the display driver.