Since it's difficult for me to x-compile strace for arm-linux, I made strace-like utility(attached) to observe syscalls.
"eips -g ." updates e-ink by ioctl request of MXCFB_SEND_UPDATE with following commented values:
(Structures and definitions are written in kernel-source-root/include/linux/mxcfb.h)
Code:
struct mxcfb_update_data {
struct mxcfb_rect {
__u32 top; // 0x0000
__u32 left; // 0x0000
__u32 width; // 0x0258 = 600
__u32 height; // 0x0320 = 800
} update_region;
__u32 waveform_mode; // 0x0002 = WAVEFORM_MODE_GC16
__u32 update_mode; // 0x0000 = UPDATE_MODE_PARTIAL
__u32 update_marker; // 0x002a
int temp; // 0x1001 = TEMP_USE_PAPYRUS
uint flags; // 0x0000
struct mxcfb_alt_buffer_data alt_buffer_data; // must not used when flags is 0
};
I confirmed that:
Partial update request and full update request works,
WAVEFORM_MODE_GC16 and WAVEFORM_MODE_GC4 works but WAVEFORM_MODE_A2 seems not to work,
and no problem with another update_marker value but update_marker = 0 makes kernel panic.